Tujuan dari normalisasi adalah:
- Database memiliki relasi yang baik.
- Lossless join decomposition (bila R di-join-kan, maka akan kembali ke R semula)
- Sebaiknya/akan lebih baik bila dekomposisinya menjaga dependency.
Sebuah relasi R dikatakan berada pada bentuk 3NF apabila A->B pada himpunan Fungsi memenuhi salah satu dari kondisi berikut:
- A -> B adalah trivial.
- A adalah super key dari R.
- Setiap atribut Y (bila B-A = Y) adalah anggota CK(candidate key) dari R. (NB: tiap atribut mungkin berada pada CK yg berbeda)
Relasi dalam bentuk BCNF sudah termasuk dalam 3NF selama salah satu dari syarat di atas terpenuhi.
Contoh kasus:
Bila diketahui relasi R(A,B,C,D,G,H) dan fungsional dependency F={AB->GH , AC ->D, DG->H, CH->AD} serta candidate key CK= {A, H}.1. Tentukan CK yang lain, jika ada yg dapat diturunkan dari FD tersebut.
2. Dekomposisikan R, bila diperlukan, hingga diperoleh relasi-relasi yang masuk dalam 3NF
Penyelesaian:
1. Mencari CK yang mungkin- Karena A dan H adalah CK, maka AB, AC, AD, CH dan GH bukan CK.
- Cek apakah D itu CK:
{D}+ = {D} U {A,B,G,H} U {D,G,H} U {C,H,A,D} = {A,B,C,D,G,H}
karena {D}+ = R, maka D adalah CK.
- Cek apakah G itu CK:
{G}+ = {G} U {A,B,G,H} U {A,C,D} U {C,H,A,D} = {A,B,C,D,G,H}
karena {G}+ = R, maka G adalah CK.
2. Mencari relasi 3NF
- Tentukan F canonical cover dari FD, dengan mencari ektra pada tiap fungsi.
Ditemukan pada {CH ->AD}, D adalah ekstra, sehingga menjadi {CH->A}. Karena tidak ditemukan ekstra pada ketiga fungsi yg lain, maka:
F = {AB->GH , AC ->D, DG->H, CH->A}
-Hilangkan fungsi redundant pada F:
(a) CH->AC (aksioma augmentasi CH->A dengan C)
(b) AC->D
dengan menerapkan aksioma transitif pada (a) dan (b) diperoleh CH->D, maka:
F = {AB -> GH , DG -> H, CH -> D }
- Cek apakah AB->GH adalah 3NF:
{GH}-{AB}={GH}
Karena G dan H adalah anggota dari CK, maka {AB->GH} adalah bentuk 3NF.
- Cek apakah DG->H adalah 3NF:
{H}-{DG}={H}
H adalah anggota dari CK, maka {DG->H} adalah bentuk 3NF.
- Cek apakah CH->D adalah 3NF:
{D}-{CH}={D}
D adalah anggota dari CK, maka { CH->D} adalah bentuk 3NF.
Jadi relasi 3NF-nya adalah R(A,B,G,H), R(D,G,H), R(C,D,H)
Referensi:
Database system concepts 6th edition by silberschatz korth and sudarshan.
Relational database system algorithms and further dependencies.
No comments:
Post a Comment