Database Normalisasi
Ketergantungan Fungsional
Ketergantungan fungsional (FD) diatur kendala antara dua atribut dalam suatu relasi. Ketergantungan fungsional mengatakan bahwa jika dua tupel memiliki nilai yang sama untuk atribut A1, A2, ..., An kemudian dua tupel harus harus memiliki nilai yang sama untuk atribut B1, B2, ..., Bn.
Ketergantungan fungsional diwakili oleh tanda panah (→), yaitu X → Y, dimana X secara fungsional menentukan atribut Y. Sisi kiri menentukan nilai atribut di sisi kanan.
Armstrong Aksioma
Jika F adalah himpunan dependensi fungsional maka penutupan F, dinotasikan sebagai F +, adalah himpunan semua dependensi fungsional logis tersirat oleh Aksioma F. Armstrong ditetapkan aturan, bila diterapkan berulang kali menghasilkan penutupan dependensi fungsional.
Aturan refleksif: Jika alpha adalah seperangkat atribut dan beta alpha is_subset_of, maka alpha memegang beta.
Aturan Augmentation: jika → b memegang dan y adalah atribut set, maka ay → dengan juga memegang. Itu adalah menambahkan atribut dalam dependensi, tidak mengubah dependensi dasar.
Ketransitifan aturan: Sama seperti aturan transitif dalam aljabar, jika → b memegang dan b → c memegang kemudian → c juga memegang. a → b disebut sebagai fungsional menentukan b.
Ketergantungan Fungsional sepele
Sepele: Jika FD X → Y memegang mana Y subset dari X, maka itu disebut FD sepele. FD sepele selalu terus.
Non-sepele: Jika FD X → Y memegang mana Y tidak subset dari X, maka disebut non-sepele FD.
Benar-benar non-sepele: Jika FD X → Y memegang mana x berpotongan Y = Φ, dikatakan benar-benar non-sepele FD.
Normalisasi
Jika desain database tidak sempurna mungkin berisi anomali, yang seperti mimpi buruk bagi database itu sendiri. Mengelola database dengan anomali adalah nyaris mustahil.
Perbarui anomali: jika item data yang tersebar dan tidak terkait satu sama lain dengan baik, maka mungkin ada contoh ketika kita mencoba untuk memperbarui satu item data yang memiliki salinan itu tersebar di beberapa tempat, beberapa contoh itu bisa diperbarui dengan benar ketika sedikit yang kiri dengan nilai-nilai lama ada. Hal ini membuat database dalam keadaan tidak konsisten.
Penghapusan anomali: kami mencoba untuk menghapus rekor, tapi bagian itu meninggalkan terhapus karena ketidaksadaran, data juga disimpan di tempat lain.
Masukkan anomali: kami mencoba memasukkan data dalam catatan yang tidak ada sama sekali.
Normalisasi adalah suatu metode untuk menghapus semua anomali ini dan membawa database untuk negara dan bebas konsisten dari setiap jenis anomali.
Bentuk Normal Pertama:
Ini didefinisikan dalam definisi hubungan (tabel) itu sendiri. Aturan ini mendefinisikan bahwa semua atribut dalam relasi harus memiliki domain atom. Nilai dalam domain atom adalah unit terpisahkan.
[Gambar: hubungan Terorganisir]
Kami menata kembali hubungan (tabel) seperti di bawah ini, untuk mengubahnya menjadi Bentuk Normal Pertama
[Gambar: Hubungan di 1NF]
Setiap atribut harus hanya berisi nilai tunggal dari domain yang telah ditentukan tersebut.
Bentuk Normal Kedua:
Sebelum kita belajar tentang bentuk normal kedua, kita perlu memahami hal-hal berikut:
Perdana atribut: atribut, yang merupakan bagian dari prime-kunci, adalah Perdana atribut.
Non-prime atribut: atribut, yang bukan merupakan bagian dari prime-key, dikatakan atribut non-prime.
Bentuk normal kedua mengatakan, bahwa setiap atribut non-prime harus sepenuhnya fungsional tergantung pada prime atribut kunci. Artinya, jika X → A memegang, maka tidak boleh ada bagian yang tepat Y dari X, untuk itu Y → A juga memegang.
[Gambar: Hubungan tidak dalam 2NF]
Kami lihat di sini dalam kaitannya Student_Project bahwa atribut kunci utama adalah Stu_ID dan Proj_ID. Menurut aturan, atribut non-key, yaitu Stu_Name dan Proj_Name harus bergantung pada baik, bukan pada salah satu atribut kunci utama secara individual. Tapi kami menemukan bahwa Stu_Name dapat diidentifikasi dengan Stu_ID dan Proj_Name dapat diidentifikasi dengan Proj_ID independen. Hal ini disebut ketergantungan parsial, yang tidak diperbolehkan dalam Bentuk Normal Kedua.
[Gambar: Hubungan dalam 2NF]
Kita melanggar hubungan dua seperti yang digambarkan dalam gambar di atas. Jadi tidak terdapat ketergantungan parsial.
Bentuk Normal Ketiga:
Untuk relasi berada dalam bentuk normal ketiga, itu harus dalam bentuk Normal Kedua dan berikut ini harus memenuhi:
Tidak ada non-prime atribut transitif tergantung pada prime atribut kunci
Untuk setiap dependensi fungsional non-sepele, X → A, maka baik
X adalah superkey atau,
A adalah Perdana atribut.
[Gambar: Hubungan tidak berada dalam 3NF]
Kami menemukan bahwa di atas digambarkan Student_detail hubungan, Stu_ID adalah kunci dan hanya prime atribut kunci. Kami menemukan Kota yang dapat diidentifikasi oleh Stu_ID serta Zip itu sendiri. Zip tidak adalah superkey atau City adalah atribut utama. Selain itu, Stu_ID → Zip → City, sehingga terdapat ketergantungan transitif.
[Gambar: Hubungan dalam 3NF]
Kami pecah relasi seperti di atas digambarkan dua relasi untuk membawa ke 3NF.
Boyce-Codd Normal Form:
BCNF merupakan perpanjangan dari Bentuk Normal Ketiga dengan cara yang ketat. BCNF menyatakan bahwa
Untuk setiap dependensi fungsional non-sepele, X → A, maka X harus merupakan super-kunci.
Dalam digambarkan gambar di atas, Stu_ID super-kunci dalam Student_Detail hubungan dan Zip super-kunci dalam zipcodes hubungan. Jadi,
Stu_ID → Stu_Name, Zip
Dan
Zip → Kota
Menegaskan, bahwa kedua relasi berada dalam BCNF.