Tujuan Normalisasi Database

0 Shares
0
0

Dalam proses desain basis data, salah satu hal penting adalah memastikan tidak terjadi redudansi data, tujuannya adalah efisiensi penyimpanan, independensi data dan skalabilitas data. 

Misalkan di dalam basis data terdapat tabel buku terdiri dari beberapa atribut:

  • Judul
  • Penulis
  • ISBN
  • Tags
  • Jumlah Halaman
  • Penerbit

Misalkan kita menambahkan data buku yang ditulis oleh Selan Lingam dan Manohar Lal Pahwa. Karena buku-buku tersebut mempunyai dua penulis, maka kita akan menambahkan satu atribut pengarang lagi.

JudulPenulis 1Penulis 2ISBNTagsHalamanPenerbit
PHP dan MySQL Web DevelopmentSelan LingamManohar Lal Pahwa067899986PHP, MySQL867Gram
MySQL TutorialSelan LingamManohar Lal Pahwa067899988MySQL300Gram

Terdapat beberapa masalah dalam skema table di atas.

Pertama, tabel tersebut sangat tidak efisien dalam penyimpanan. Misalkan Selan dan Manohar adalah penulis yang sangat sibuk dan mampu mengarang 500 buah buku. Panjang kombinasi nama mereka berdua adalah 29 karakter, dan karena kita mengulang nama mereka sebanyak 500 baris maka kita boros 29 x 500 = 14,500 bytes ruang penyimpanan.

Kedua, desain ini tidak menjaga independensi data. Misalkan saja Selan dan Manohar mengarang 500 buku, maka akan diinput nama mereka sebanyak 500 baris, hal ini memungkinkan terjadi kesalahan pengetikan sekalipun hanya sekali, missal nama Manohar ditulis Manohara. Maka data kita akan menjadi rusak, akibatnya orang yang mencari buku berdasarkan nama pengarang tidak menemukan semua buku yang dicarinya. Demikian juga apabila terjadi kesalahan input nama penerbit, maka akan ada buku yang tidak ditemukan.

Ketiga, tabel tersebut kurang skalabel. Yaitu hanya terdapat 2 atribut penulis, sementara akan ada beberapa buku ditulis oleh lebih dari 2 orang. Hal ini akan membatasi perkembangan data kedepannya. Keterbatasan skalabilitas lainnya adalah ukuran file akan cepat bertambah besar sementara batasan ukuran file terbatas di sistem operasi komputer.

Selain itu, redudansi data juga akan menimbulkan masalah anomali:

PelajarNoKursusNoNama PelajarAlamat PelajarKursus
S219201SetiaJakartaKalkulus 1
S219267SetiaJakartaKalkulus 2
S249267MaxTangerangBasis Data
S309201SelanBogorKomputer
S309322SelanBogorMatematika

Pertama adalah anomali insert, terjadi apabila suatu atribut tidak dapat diinput ke dalam basis data tanpa adanya atribut lain (dan tidak boleh null). Contohnya adalah kita tidak bisa menambahkan data kursus baru sampai setidaknya ada satu pelajar baru yang mengambil kursus tersebut.

Kedua adalah anomali update, terjadi apabila satu atau beberapa baris data dilakukan perubahan. Misalnya Setia pindah alamat, maka kita harus merubah alamat Setia pada semua baris data. Apabila tidak semua dirubah maka Setia akan mempunyai lebih dari satu alamat yang berbeda.

Ketiga adalah anomali delete, terjadi ketika suatu atribut hilang karena terhapus oleh atribut lainnya. Misalkan kursus Basis Data ditiadakan kemudian dihapus dari basis data, maka data Max akan ikut terhapus.

Untuk mengatasi permasalahan redudansi dan anomali-anomali tersebut, maka normalisasi diperlukan, sehingga akan dihasilkan basis data yang baik, yaitu efisien, independen dan skalabel.

0 Shares
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like

Regresi Linear

Regresi membantu mengetahui hubungan antara dua variabel. Contoh, beberapa pertanyaan yang sering ditanyakan tentang pendidikan adalah, apakah tingkat…

Model OSI

Apa model OSI? Model Open Systems Interconnection (OSI) adalah sebuah model konseptual yang dibuat oleh Organisasi Standar Internasional…

Fungsional Dependensi

Fungsional dependensi merupakan konsep inti terkait dengan normalisasi. Fungsional dependensi menjelaskan hubungan antara atribut dalam relasi. Misalkan, jika…