Normalisasi Perancangan Basis Data
Normalisasi Perancangan Basis Data
Normalisasi adalah sebuah teknik dalam logical desain sebuah basis data yang mengelompokkan atribut dari suatu relasi sehingga membentuk suatu relasi yang baik.
Tujuan Normalisasi
- Untuk menghilangkan kerangkapan data
- Untuk mengurangi kompleksitas
- Untuk mempermudah pemodifikasian data
Tahapan Normalisasi
dimulai dari tahap yang paling ringan (1NF) hingga paling ketat (5NF).Biasanya hanya sampai tingkat (3NF) atau BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik.
Urutannya : 1NF,2NF,3NF,BCNF,4NF,5NF
Jika kriteria ketinga BCNF tidak dapat terpenuhi,maka paling tidak tabel tersebut tidak melanggar bentuk normal tahap ketiga 3NF.
Tabel Universal
Sebuah tabel yang merangkum semua kelompok data yang saling berhubungan,bukan merupakan tabel yang baik
Bentuk-bentuk Normalisasi
- Bentuk normal tahap pertama (1NF)
- Bentuk normal tahap kedua (2NF)
- Bentuk normal tahap ketiga (3NF)
- Boycode normal form (BCNF)
- Bentuk normal tahap keempat (4NF)
- Bentuk normal tahap kelima (5NF)
Bentuk normal tahap pertama
Aturan :
- Tidak adanya atribut multivalue,komposit dan kombinasi lainnya
- Mendefinisikan atribut kunci
- Setiap atribut dalam tabel tersebut harus bernilai atomic
Bentuk normal tahap kedua
Aturan :
- Sudah memenuhi dalam bentuk normal kesatu (1NF)
- Semua atribut bukan kunci hanya boleh tergantung pada atribut kunci
- Jika ada ketergantungan parsial maka atribut tersebut harus dipisah pada tabel yang lain
- Perlu ada tabel penghubung ataupun kehadiran foreign key bagi atribut-atribut yang telah dipisah tadi
Bentuk normal tahap ketiga
Aturan :
- Sudah berada dalam bentuk normal kedua (2NF)
- Tidak ada ketergantungan transitif (dimana atribut bukan kunci tergantung pada atribut bukan kunci Iainnya).
Boycode normal form
Aturan :
- Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap functional dependency terhadap setiap atribut atau gabungan atribut dalam bentuk: X Y maka X adalah super key
- tabel tersebut harus di-dekomposisi berdasarkan functional dependency yang ada, sehingga X menjadi super key dari tabel-tabel hasil dekomposisi
- Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF . Perbedaannya, untuk functional dependency X A, BCNF tidak membolehkan A sebagai bagian dari primary key.
Bentuk normal tahap keempat
Aturan :
- Bentuk normal tahap keempat terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalue atribut
- Untuk setiap multivalue depedencies juga harus functional depedencies.
Bentuk normal tahap kelima
Aturan :
- Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah lossless decomposition menjadi tabel-tabel yg lebih kecil.
- Jika 4 bentuk normal sebelumnya dibentuk berdasarkan functional dependency, 5NF dibentuk berdasarkan konsep join dependence. Yakni apabila sebuah tabel telah di-dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi (join) untuk membentuk tabel semula
Studi kasus normalisasi data
Untuk mendapatkan hasil yang paling normal, maka proses normalisasi dimulai dari normal pertama. Field-field tabel di atas yang merupakan group berulang : NoPegawai, NamaPegawai, Golongan, BesarGaji.Normalisasi pertama
Solusinya hilangkan duplikasi dengan mencari ketergantungan parsial. menjadikan field-field menjadi tergantung pada satu atau beberapa field. Karena yang dapat dijadikan kunci adalah NoProyek dan NoPegawai, maka langkah kemudian dicari field-field mana yang tergantung pada NoProyek dan mana yang tergantung pada NoPegawai.
Normalisasi keduaField-field yang tergantung pada satu field haruslah dipisah dengan tepat, misalnya NoProyek menjelaskan NamaProyek dan NoPegawai menjelaskan NamaPegawai, Golongan dan BesarGaji
Normalisasi ketiga
Pada tabel diatas masih terdapat masalah, bahwa BesarGaji tergantung kepada Golongan nya. Padahal disini Golongan bukan merupakan field kunci.
Artinya kita harus memisahkan field non-kunci Golongan dan BesarGaji yang tadinya tergantung secara parsial kepada field kunci NoPegawai, untuk menghilangkan ketergantungan transitif.
Komentar
Posting Komentar