Normalisasi adalah teknik reka bentuk pangkalan data yang bertujuan untuk mengurangkan kelebihan data dan meningkatkan integriti data. Terdapat beberapa bentuk normal yang menentukan tahap normalisasi yang berbeza. Mari kita meneroka mereka secara terperinci:
1. Borang Normal Pertama (1NF):
Langkah pertama dalam menormalkan pangkalan data adalah untuk memastikan ia dalam bentuk normal pertama. Jadual berada dalam 1NF jika ia memenuhi syarat -syarat berikut:
2. Borang Normal Kedua (2NF):
Jadual berada dalam 2NF jika ia berada dalam 1NF dan semua lajur bukan kunci sepenuhnya bergantung kepada kunci utama jadual. Ini bermakna jika kunci utama jadual terdiri daripada pelbagai lajur, tiada lajur bukan kunci hanya bergantung pada bahagian kunci tetapi pada keseluruhan kunci.
3. Borang Normal Ketiga (3NF):
Jadual berada dalam 3NF jika ia berada di 2NF dan tidak ada kebergantungan transitif. Ini bermakna jika lajur bukan kunci bergantung pada lajur bukan kunci yang lain, ia harus dipindahkan ke meja yang berasingan. Dalam erti kata lain, setiap lajur bukan kunci mesti memberikan fakta tentang kunci, keseluruhan kunci, dan tiada apa-apa tetapi kunci.
4. BOYCE-CODD Borang Normal (BCNF):
BCNF adalah versi 3NF yang lebih ketat. Jadual adalah dalam BCNF jika ia berada dalam 3nf dan untuk setiap satu daripada kebergantungan fungsionalnya yang tidak remeh x -> y, x adalah superkey -iaitu, x adalah kunci calon atau supersetnya. BCNF direka untuk menghapuskan kemungkinan anomali yang masih boleh timbul dalam jadual 3nf kerana beberapa jenis kebergantungan berfungsi.
Perbezaan utama antara 1NF dan 2NF terletak pada sifat kebergantungan dalam jadual.
Untuk menggambarkan, pertimbangkan jadual dalam 1NF dengan kunci utama komposit. Jika lajur bukan kunci hanya bergantung pada sebahagian daripada kunci utama, ia melanggar 2NF. Sebagai contoh, jika pesanan penjejakan jadual mempunyai kunci utama komposit (OrderID, ProductID) dan lajur untuk ProductPrice yang hanya bergantung pada ProductID, memindahkan Productprice ke jadual berasingan (dengan ProductID sebagai kunci utama) akan membawa jadual asal ke 2NF.
Bentuk normal ketiga (3NF) memainkan peranan penting dalam mengurangkan kelebihan data dengan menghapuskan kebergantungan transitif. Ketergantungan transitif berlaku apabila lajur bukan kunci bergantung pada lajur bukan kunci yang lain, yang seterusnya bergantung pada kunci utama.
Sebagai contoh, pertimbangkan jadual dalam 2NF yang merangkumi lajur untuk Pekerja INTERA (Kunci Utama), Jabatan, dan Nama Jabatan. Jika nama jabatan bergantung kepada jabatan, yang pada gilirannya bergantung kepada pekerja, maka nama jabatan mempunyai kebergantungan transitif terhadap Pekerja INDICH melalui DepartmentID. Persediaan ini boleh membawa kepada redundansi data kerana nama jabatan yang sama boleh diulang beberapa kali dalam jadual.
Untuk menangani masalah ini, 3NF akan memerlukan nama jabatan yang bergerak ke meja jabatan yang berasingan (dengan Jabatan INDICE sebagai kunci utama), menghapuskan kebergantungan transitif. Langkah normalisasi ini memastikan bahawa nama jabatan disimpan hanya sekali, mengurangkan kelebihan dan meningkatkan integriti data. Apabila kemas kini diperlukan, ia mesti dibuat hanya dalam satu tempat, meminimumkan risiko ketidakkonsistenan.
Bentuk normal Boyce-CODD (BCNF) lebih disukai daripada bentuk normal ketiga (3NF) apabila terdapat kebergantungan fungsional di mana penentu (sebelah kiri ketergantungan) bukan superkey. BCNF menyediakan kriteria yang lebih ketat untuk menghapuskan anomali yang dapat bertahan dalam jadual 3NF.
Pertimbangkan contoh yang melibatkan sistem pendaftaran kursus universiti:
Jadual: Courseregistration
Kebergantungan fungsi:
Dalam senario ini, jadual berada dalam 3NF kerana tidak ada kebergantungan transitif. Walau bagaimanapun, ia melanggar BCNF kerana pengajar -> kursus ini bermakna bahawa pengajar, yang bukan superkey, menentukan satu lagi lajur bukan kunci, kursus.
Untuk memuaskan BCNF, kita perlu memecah jadual menjadi dua:
Jadual1: Courseregistration
Table2: Instructorcourse
Dengan melakukan ini, kami memastikan bahawa setiap penentu dalam kebergantungan berfungsi adalah superkey, dengan itu memenuhi kriteria BCNF. Pemisahan ini menghapuskan anomali yang berpotensi seperti penyisipan, penghapusan, dan mengemaskini anomali yang boleh berlaku jika jadual kekal dalam 3NF.
Atas ialah kandungan terperinci Terangkan bentuk normal yang berbeza (1NF, 2NF, 3NF, BCNF).. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!