3NF lwn BCNF
Normalization ialah proses yang dijalankan untuk meminimumkan redundansi yang terdapat dalam data dalam pangkalan data hubungan. Proses ini terutamanya akan membahagikan jadual besar kepada jadual yang lebih kecil dengan lebihan yang lebih sedikit. Jadual yang lebih kecil ini akan dikaitkan antara satu sama lain melalui perhubungan yang jelas. Dalam pangkalan data yang dinormalisasi dengan baik, sebarang pengubahsuaian atau pengubahsuaian dalam data akan memerlukan pengubahsuaian hanya satu jadual. Bentuk Normal Ketiga (3NF) telah diperkenalkan pada tahun 1971 oleh Edgar F. Codd, yang juga pencipta model hubungan dan konsep normalisasi. Boyce-Codd Normal Form (BCNF) telah diperkenalkan pada tahun 1974 oleh Codd dan Raymond F. Boyce.
Apakah itu 3NF?
3NF ialah bentuk normal Ketiga yang digunakan dalam penormalan pangkalan data hubungan. Menurut definisi Codd, jadual dikatakan dalam 3NF, jika dan hanya jika, jadual itu dalam bentuk normal kedua (2NF), dan setiap atribut dalam jadual yang bukan milik kunci calon harus bergantung secara langsung pada setiap kunci calon jadual itu. Pada tahun 1982 Carlo Zaniolo menghasilkan definisi yang dinyatakan secara berbeza untuk 3NF. Jadual yang mematuhi 3NF biasanya tidak mengandungi anomali yang berlaku apabila memasukkan, memadam atau mengemas kini rekod dalam jadual.
Apakah itu BCNF?
BCNF (juga dikenali sebagai 3.5NF) ialah satu lagi bentuk biasa yang digunakan dalam penormalan pangkalan data hubungan. Ia diperkenalkan untuk menangkap beberapa anomali yang tidak ditangani oleh 3NF. Jadual dikatakan berada dalam BCNF, jika dan hanya jika, untuk setiap kebergantungan bentuk A → B yang bukan remeh, A ialah kunci super. Mengurai jadual yang bukan dalam bentuk biasa BCNF tidak menjamin penghasilan jadual dalam bentuk BCNF (sambil mengekalkan kebergantungan yang terdapat dalam jadual asal).
Apakah perbezaan antara 3NF dan BCNF?
Kedua-dua 3NF dan BCNF adalah bentuk biasa yang digunakan dalam pangkalan data hubungan untuk meminimumkan lebihan dalam jadual. Dalam jadual yang dalam bentuk biasa BCNF, untuk setiap kebergantungan fungsi bukan remeh dalam bentuk A → B, A ialah kunci super manakala, jadual yang mematuhi 3NF harus berada dalam 2NF, dan setiap bukan utama. atribut harus bergantung secara langsung pada setiap kunci calon jadual itu. BCNF dianggap sebagai bentuk normal yang lebih kuat daripada 3NF dan ia dibangunkan untuk menangkap beberapa anomali yang tidak dapat ditangkap oleh 3NF. Mendapatkan jadual yang mematuhi borang BCNF memerlukan penguraian jadual yang ada dalam 3NF. Penguraian ini akan menghasilkan operasi gabungan tambahan (atau produk Cartesian) apabila melaksanakan pertanyaan. Ini akan meningkatkan masa pengiraan. Sebaliknya, jadual yang mematuhi BCNF akan mempunyai lebihan kurang daripada jadual yang hanya mematuhi 3NF. Tambahan pula, pada kebanyakan masa, adalah mungkin untuk mendapatkan jadual yang mematuhi 3NF tanpa menghalang pemeliharaan pergantungan dan penyertaan tanpa kerugian. Tetapi ini tidak selalu boleh dilakukan dengan BCNF.