Ketergantungan multivaluasi memecah bentuk normal keempat
Dalam database relasional, ketergantungan terjadi ketika informasi yang disimpan dalam tabel database yang sama secara unik menentukan informasi lain yang disimpan dalam tabel yang sama. Ketergantungan multinilai terjadi ketika kehadiran satu atau lebih baris dalam sebuah tabel menyiratkan adanya satu atau lebih baris lain dalam tabel yang sama. Dengan kata lain, dua atribut (atau kolom) dalam tabel tidak bergantung satu sama lain, tetapi keduanya bergantung pada atribut ketiga.
Ketergantungan multinilai mencegah normalisasi standar bentuk normal keempat (4NF). Database relasional mengikuti lima bentuk normal yang mewakili pedoman untuk desain rekaman. Mereka mencegah pembaruan anomali dan inkonsistensi dalam data. Bentuk normal keempat berhubungan dengan hubungan banyak-ke-satu dalam database .
Ketergantungan Fungsional vs. Ketergantungan Berwibawa
Untuk memahami ketergantungan multinilai, ada baiknya untuk meninjau kembali ketergantungan fungsional.
Jika atribut X secara unik menentukan atribut Y, maka Y secara fungsional bergantung pada X. Ini ditulis sebagai X -> Y. Misalnya, dalam tabel Siswa di bawah ini, Student_Name menentukan Major:
Nama siswa | Utama |
---|---|
Ravi | Sejarah seni |
Beth | Kimia |
Ketergantungan fungsional ini dapat ditulis: Student_Name -> Major . Setiap Student_Name menentukan dengan tepat satu Mayor, dan tidak lebih.
Jika Anda ingin database juga melacak olahraga yang diambil siswa ini, Anda mungkin berpikir cara termudah untuk melakukannya adalah dengan menambahkan kolom lain yang berjudul Sport:
Nama siswa | Utama | Olahraga |
---|---|---|
Ravi | Sejarah seni | Sepak bola |
Ravi | Sejarah seni | Bola voli |
Ravi | Sejarah seni | Tenis |
Beth | Kimia | Tenis |
Beth | Kimia | Sepak bola |
Masalahnya di sini adalah bahwa baik Ravi dan Beth memainkan banyak olahraga. Anda perlu menambahkan baris baru untuk setiap olahraga tambahan.
Tabel ini telah memperkenalkan ketergantungan multinilai karena mayor dan olahraga tidak bergantung satu sama lain tetapi keduanya bergantung pada siswa.
Ini adalah contoh sederhana dan mudah diidentifikasi, tetapi ketergantungan multinilai bisa menjadi masalah dalam database yang besar dan rumit.
Ketergantungan multinilai ditulis X -> -> Y. Dalam kasus ini:
Student_Name -> -> Mayor
Student_Name -> -> Sport
Ini dibaca sebagai "Student_Name multidetermines Major" dan "Student_Name multidetermines Sport."
Ketergantungan multinilai selalu membutuhkan setidaknya tiga atribut karena terdiri dari setidaknya dua atribut yang bergantung pada sepertiga.
Ketergantungan dan Normalisasi Multinilai
Sebuah tabel dengan ketergantungan multinilai melanggar standar normalisasi dari Bentuk Normal Keempat (4NK) karena menciptakan redundansi yang tidak perlu dan dapat berkontribusi pada data yang tidak konsisten. Untuk membawa ini ke 4NF, perlu untuk memecah informasi ini menjadi dua tabel.
Tabel di bawah ini sekarang memiliki ketergantungan fungsional Student_Name -> Major, dan tidak ada dependensi multinilai:
Nama siswa | Utama |
---|---|
Ravi | Sejarah seni |
Ravi | Sejarah seni |
Ravi | Sejarah seni |
Beth | Kimia |
Beth | Kimia |
Sementara tabel ini juga memiliki ketergantungan fungsional tunggal dari Student_Name -> Sport:
Nama siswa | Olahraga |
---|---|
Ravi | Sepak bola |
Ravi | Bola voli |
Ravi | Tenis |
Beth | Tenis |
Beth | Sepak bola |
Sudah jelas bahwa normalisasi sering diatasi dengan menyederhanakan tabel-tabel yang rumit sehingga mereka memuat informasi yang terkait dengan satu ide atau tema daripada mencoba membuat satu tabel berisi terlalu banyak informasi yang berlainan.