Disyorkan, 2024

Pilihan Editor

Perbezaan Antara 3NF dan BCNF

Normalisasi adalah satu kaedah yang menghilangkan redundansi dari hubungan dengan itu meminimumkan pemasukan, pemadaman dan mengemas kini anomali yang merendahkan prestasi pangkalan data. Dalam artikel ini, kita akan membezakan antara dua bentuk normal yang lebih tinggi iaitu 3NF dan BCNF. Perbezaan asas antara 3NF dan BCNF ialah 3NF menghilangkan ketergantungan transitif dari perhubungan dan jadual untuk BCNF, kebergantungan fungsi remeh-temeh X-> Y dalam hubungan mesti dipegang, hanya jika X adalah kunci super.

Marilah kita membincangkan perbezaan antara 3NF dan BCNF dengan bantuan carta perbandingan yang ditunjukkan di bawah.

Carta Perbandingan

Asas untuk Perbandingan3NFBCNF
KonsepTiada atribut bukan perdana mestilah bergantung kepada kunci Calon.Untuk apa-apa kebergantungan remeh dalam hubungan R berkata X-> Y, X harus menjadi kunci utama hubungan R.
Ketergantungan3NF boleh didapati tanpa mengorbankan semua kebergantungan.Ketergantungan tidak boleh dipelihara di BCNF.
PenguraianPenguraian yang tidak dapat dicapai dapat dicapai dalam 3NF.Penguraian yang tidak dapat dilupakan sukar diperolehi dalam BCNF.

Definisi 3NF

Jadual atau hubungan dianggap sebagai dalam Form Normal Ketiga hanya jika jadual sudah di 2NF dan tidak ada atribut non-utama secara transit bergantung kepada kunci calon hubungan.

Jadi, sebelum saya menangani proses menormalkan jadual dalam 3NF, izinkan saya membincangkan kunci calon. Kunci Calon adalah kunci super minima iaitu kunci super dengan atribut minima yang dapat menentukan semua atribut hubungan. Oleh itu, dalam proses menormalkan jadual anda, pertama, anda mengiktiraf kunci calon hubungan tertentu. Atribut-atribut yang menjadi sebahagian daripada kunci calon adalah atribut utama, dan sifat-sifat yang bukan sebahagian daripada kunci calon adalah sifat-sifat bukan utama .

Sekarang jika kita mempunyai hubungan R (A, B, C, D, E, F) dan kita mempunyai fungsi dependensi berikut untuk hubungan R.

Melihat kebergantungan yang berfungsi, kita dapat menyimpulkan bahawa AB adalah kunci calon untuk hubungan R kerana menggunakan AB utama kita boleh mencari nilai untuk semua atribut dalam hubungan R. Jadi A, B menjadi sifat utama ketika mereka bersama-sama membuat kunci calon. Atribut C, D, E, F menjadi atribut bukan utama kerana tidak ada satu pun dari mereka yang menjadi kunci calon.

Jadual di 2NF kerana tiada atribut bukan utama bergantung sebahagiannya pada kunci calon

Tetapi, pergantungan transitif diperhatikan di antara kebergantungan berfungsi yang disediakan, kerana atribut F tidak bergantung kepada kunci utama calon. Sebaliknya, atribut F secara transitif bergantung kepada kunci utama AB melalui atribut D. Sehingga atribut D mempunyai nilai yang dapat kita jangkau ke nilai atribut F, dari kunci utama AB. Sekiranya nilai atribut D adalah NULL kita tidak boleh mencari / mencari nilai F dengan bantuan kunci AB calon. Ini adalah sebab mengapa 3NF menuntut untuk menghapuskan pergantungan transitif dari hubungan.

Oleh itu, untuk menghapuskan pergantungan ini, kita perlu membahagikan hubungan R. Semasa membahagikan hubungan selalu meletakkan kunci calon, dan semua sifat yang bergantung pada kunci calon dalam hubungan pertama. Dalam hubungan dibahagikan seterusnya, kami akan meletakkan atribut yang menyebabkan pergantungan transitif dan juga sifat-sifat yang bergantung kepadanya dalam hubungan kedua.

Sekarang, jadual R1 dan R2 berada dalam 3NF kerana ia tidak mempunyai kebergantungan separa dan transitif yang tersisa. Hubungan R1 (A, B, C, D, E) mempunyai calon utama AB sedangkan, hubungan R2 (D, E) mempunyai D sebagai kunci kandidatnya.

Definisi BCNF

BCNF dianggap lebih kuat daripada 3NF. Hubungan R untuk berada di BCNF mestilah dalam 3NF . Dan di mana sahaja pergantungan fungsi bukan- trivial A -> B memegang berkaitan R, maka A mesti menjadi superkey dari hubungan R. Seperti yang kita ketahui, kunci Super adalah kunci yang mempunyai atribut tunggal atau set atribut yang menentukan, keseluruhannya sifat hubungan.

Sekarang, mari kita beralih kepada contoh untuk memahami BCNF dengan cara yang lebih baik. Marilah kita, katakan kita mempunyai hubungan R (A, B, C, D, F), yang mempunyai kebergantungan fungsi berikut.

Dengan memerhati hubungan R, kita boleh mengatakan bahawa A dan BF adalah kunci calon hubungan R, kerana mereka sendiri boleh mencari nilai untuk semua atribut dalam hubungan R. Jadi A, B, F adalah atribut utama sedangkan, C dan D adalah atribut bukan utama . Tiada ketergantungan transitif diperhatikan dalam kebergantungan berfungsi yang terdapat di atas. Oleh itu, jadual R berada dalam 3NF.

Tetapi satu pergantungan fungsional iaitu D -> F melanggar definisi BCNF, mengikut mana, jika D -> F ada maka D harus menjadi kunci super yang tidak demikian di sini. Jadi kita akan membahagikan hubungan R.

Sekarang, jadual R1 nd R2 berada di BCNF. Hubungan R1 mempunyai dua kekunci calon A dan B, kebergantungan fungsi remeh R1 iaitu A-> BCD dan B -> ACD, memegang BCNF sebagai A dan B adalah kunci super untuk hubungan. Hubungan R2 mempunyai D sebagai kunci kandidat dan pergantungan fungsi D -> F juga memegang untuk BCNF kerana D adalah Super Key.

Perbezaan Utama Antara 3NF dan BCNF

  1. 3NF menyatakan bahawa tiada atribut bukan utama yang mesti secara transitif bergantung kepada kunci calon hubungannya. Di sisi lain, BCNF menyatakan bahawa jika kebergantungan fungsi yang remeh X -> Y wujud bagi suatu hubungan; maka X mesti menjadi kunci super.
  2. 3NF boleh diperolehi tanpa mengorbankan pergantungan hubungan. Walau bagaimanapun, pergantungan mungkin tidak dipelihara semasa mendapatkan BCNF.
  3. 3NF boleh dicapai tanpa kehilangan apa-apa maklumat dari meja lama sedangkan, sambil mendapatkan BCNF kita boleh kehilangan beberapa maklumat dari meja lama.

Kesimpulan:

BCNF adalah lebih ketat daripada 3NF yang membantu dalam menormalkan jadual lebih. Hubungan dalam 3NF mempunyai kelebihan minimum yang ditinggalkan yang selanjutnya dikeluarkan oleh BCNF.

Top