Mari kita bahas perbedaan antara 3NF dan BCNF dengan bantuan grafik perbandingan yang ditunjukkan di bawah ini.
Grafik perbandingan
Dasar untuk Perbandingan | 3NF | BCNF |
---|---|---|
Konsep | Atribut 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. |
Ketergantungan | 3NF dapat diperoleh tanpa mengorbankan semua ketergantungan. | Dependensi mungkin tidak disimpan dalam BCNF. |
Penguraian | Dekomposisi 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.
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.
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.
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.
Perbedaan Utama Antara 3NF dan BCNF
- 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.
- 3NF dapat diperoleh tanpa mengorbankan ketergantungan relasi. Namun, ketergantungan mungkin tidak dipertahankan saat memperoleh BCNF.
- 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.