Direkomendasikan, 2024

Pilihan Editor

Perbedaan Antara 3NF dan BCNF

Normalisasi adalah metode yang menghilangkan redundansi dari suatu relasi sehingga meminimalkan penyisipan, penghapusan, dan pembaruan anomali yang menurunkan kinerja basis data. Dalam artikel ini, kami akan membedakan antara dua bentuk normal yang lebih tinggi yaitu 3NF dan BCNF. Perbedaan mendasar antara 3NF dan BCNF adalah bahwa 3NF menghilangkan ketergantungan transitif dari suatu relasi dan tabel berada di BCNF, dependensi fungsional sepele X-> Y dalam relasi harus dipegang, hanya jika X adalah kunci super.

Mari kita bahas perbedaan antara 3NF dan BCNF dengan bantuan grafik perbandingan yang ditunjukkan di bawah ini.

Grafik perbandingan

Dasar untuk Perbandingan3NFBCNF
KonsepAtribut non-prima tidak boleh bergantung secara transitif pada kunci Kandidat.Untuk setiap ketergantungan sepele dalam suatu hubungan R katakan X-> Y, X harus menjadi kunci super dari hubungan R.
Ketergantungan3NF dapat diperoleh tanpa mengorbankan semua ketergantungan.Dependensi mungkin tidak disimpan dalam BCNF.
PenguraianDekomposisi lossless dapat dicapai dalam 3NF.Dekomposisi lossless sulit dicapai di BCNF.

Definisi 3NF

Tabel atau relasi dianggap dalam Bentuk Normal Ketiga hanya jika tabel tersebut sudah ada di 2NF dan tidak ada atribut non-prima yang tergantung secara transitif pada kunci kandidat dari relasi.

Jadi, sebelum saya membahas proses normalisasi tabel di 3NF, izinkan saya untuk membahas kunci kandidat. Candidate Key adalah kunci super minimal yaitu kunci super dengan atribut minimum yang dapat menentukan semua atribut dari suatu relasi. Jadi, dalam proses normalisasi tabel Anda, pertama, Anda mengenali kunci kandidat dari suatu relasi. Atribut yang merupakan bagian dari kunci kandidat adalah atribut prima, dan atribut yang bukan bagian dari kunci kandidat adalah atribut non-prima .

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

Mengamati dependensi fungsional, kita dapat menyimpulkan bahwa AB adalah kunci kandidat untuk hubungan R karena menggunakan kunci AB kita dapat mencari nilai untuk semua atribut dalam suatu relasi R. Jadi A, B menjadi atribut prima ketika mereka bersama-sama membuat kunci kandidat. Atribut C, D, E, F menjadi atribut non-prima karena tidak satupun dari mereka adalah bagian dari kunci kandidat.

Tabel di 2NF karena tidak ada atribut non-prima sebagian tergantung pada kunci kandidat

Tetapi, ketergantungan transitif diamati di antara dependensi fungsional yang disediakan, karena atribut F tidak secara langsung bergantung pada kandidat kunci AB . Sebaliknya, atribut F secara transitif bergantung pada kunci kandidat AB melalui atribut D. Hingga atribut D memiliki beberapa nilai yang dapat kita raih hingga nilai atribut F, dari kunci kandidat AB. Dalam hal nilai atribut D adalah NULL kita tidak pernah dapat menemukan / mencari nilai F dengan bantuan kunci kandidat AB. Inilah alasan mengapa 3NF menuntut untuk menghapus ketergantungan transitif dari hubungan.

Jadi, untuk menghapus ketergantungan transitif ini, kita perlu membagi relasi R. Sementara membagi relasi selalu menempatkan kunci kandidat, dan semua atribut yang bergantung pada kunci kandidat itu di relasi pertama. Dalam relasi terbagi berikutnya, kita akan menempatkan atribut yang menyebabkan ketergantungan transitif dan juga atribut yang bergantung padanya pada relasi kedua.

Sekarang, tabel R1 dan R2 berada di 3NF karena tidak memiliki dependensi parsial dan transitif yang tersisa. Relasi R1 (A, B, C, D, E) memiliki kunci kandidat AB sedangkan relasi R2 (D, E) memiliki D sebagai kunci kandidatnya.

Definisi BCNF

BCNF dianggap lebih kuat dari 3NF. Relasi R berada di BCNF harus dalam 3NF . Dan di mana pun ketergantungan fungsional non-sepele A -> B berlaku dalam relasi R, maka A harus menjadi superkey dari relasi R. Seperti yang kita ketahui, kunci Super adalah kunci yang memiliki atribut tunggal atau sekumpulan atribut yang menentukan, keseluruhan atribut suatu hubungan.

Sekarang, mari kita beralih ke contoh untuk memahami BCNF dengan cara yang lebih baik. Mari kita, misalkan kita memiliki relasi R (A, B, C, D, F), yang memiliki dependensi fungsional berikut.

Dengan mengamati relasi R, kita dapat mengatakan bahwa A dan BF adalah kunci kandidat dari relasi R, karena mereka sendiri dapat mencari nilai untuk semua atribut dalam relasi R. Jadi A, B, F adalah atribut utama sedangkan, C dan D adalah atribut non-prima . Tidak ada ketergantungan transitif yang diamati dalam dependensi fungsional yang ada di atas. Oleh karena itu, tabel R dalam 3NF.

Tapi satu ketergantungan fungsional yaitu D -> F melanggar definisi BCNF, yang menurutnya, jika D -> F ada maka D harus menjadi kunci super yang tidak terjadi di sini. Jadi kita akan membagi relasi R.

Sekarang, tabel R1 dan R2 berada di BCNF. Relasi R1 memiliki dua kunci kandidat A dan B, ketergantungan fungsional sepele dari R1 yaitu A-> BCD dan B -> ACD, tahan untuk BCNF karena A dan B adalah kunci super untuk hubungan. Relation R2 memiliki D sebagai kandidat key dan dependensi fungsional D -> F juga berlaku untuk BCNF karena D adalah Super Key.

Perbedaan Utama Antara 3NF dan BCNF

  1. 3NF menyatakan bahwa tidak ada atribut non-prima yang harus bergantung secara transitif pada kunci kandidat dari relasi. Di sisi lain, BCNF menyatakan bahwa jika ketergantungan fungsional sepele X -> Y ada untuk suatu relasi; maka X harus menjadi kunci super.
  2. 3NF dapat diperoleh tanpa mengorbankan ketergantungan relasi. Namun, ketergantungan mungkin tidak dipertahankan saat memperoleh BCNF.
  3. 3NF dapat dicapai tanpa kehilangan informasi dari tabel lama sedangkan, saat memperoleh BCNF kami dapat kehilangan beberapa informasi dari tabel lama.

Kesimpulan:

BCNF jauh lebih membatasi daripada 3NF yang membantu dalam menormalkan tabel lebih banyak. Relasi dalam 3NF memiliki redundansi minimum yang tersisa yang selanjutnya dihapus oleh BCNF.

Top