Ketergantungan multivalued memecah bentuk normal keempat
Dalam pangkalan data hubungan, kebergantungan berlaku apabila maklumat yang disimpan dalam jadual pangkalan data yang sama unik menentukan maklumat lain yang disimpan dalam jadual yang sama. Ketergantungan multivaluasi berlaku apabila kehadiran satu atau lebih baris dalam jadual menunjukkan kehadiran satu atau lebih baris lain dalam jadual yang sama. Berikan cara lain, dua atribut (atau lajur) dalam jadual adalah satu sama lain, tetapi kedua-duanya bergantung pada atribut ketiga.
Ketergantungan multivaluasi menghalang bentuk normalisasi keempat biasa (4NF). Pangkalan data relasi mengikuti lima bentuk normal yang mewakili garis panduan untuk reka bentuk rekod. Mereka menghalang anomali kemas kini dan ketidakkonsistenan dalam data. Bentuk normal keempat berkaitan dengan banyak hubungan antara satu sama lain dalam pangkalan data .
Ketergantungan fungsional vs ketergantungan multivalued
Untuk memahami kebergantungan multivaluasi, adalah berguna untuk mengkaji semula apa kebergantungan yang berfungsi.
Jika atribut X unik menentukan atribut Y, maka Y bergantung kepada fungsi secara fasa. Ini ditulis sebagai X -> Y. Sebagai contoh, dalam jadual Pelajar di bawah, Student_Name menentukan Major:
Nama pelajar | Major |
---|---|
Ravi | Sejarah Seni |
Beth | Kimia |
Kebergantungan fungsi ini boleh ditulis: Student_Name -> Major . Setiap Student_Name menentukan satu Utama, dan tidak lebih.
Jika anda mahukan pangkalan data untuk mengesan sukan yang diambil oleh pelajar ini, anda mungkin berfikir cara yang paling mudah untuk melakukan ini adalah dengan menambah sesuatu yang bertajuk Sport:
Nama pelajar | Major | Sukan |
---|---|---|
Ravi | Sejarah Seni | Bola sepak |
Ravi | Sejarah Seni | Bola tampar |
Ravi | Sejarah Seni | Tenis |
Beth | Kimia | Tenis |
Beth | Kimia | Bola sepak |
Masalahnya ialah Ravi dan Beth bermain pelbagai sukan. Ia perlu menambah baris baharu untuk setiap sukan tambahan.
Jadual ini telah memperkenalkan pergantungan multivaluasi kerana utama dan sukan itu bebas dari satu sama lain tetapi kedua-duanya bergantung kepada pelajar.
Ini adalah contoh mudah dan mudah dikenalpasti, tetapi kebergantungan multivalue boleh menjadi masalah dalam pangkalan data yang besar dan rumit.
Kebergantungan multivaluasi ditulis X -> -> Y. Dalam kes ini:
Student_Name -> -> Major
Student_Name -> -> Sukan
Ini dibaca sebagai "Student_Name multidetermines Major" dan "Student_Name multidetermines Sport."
Kebergantungan multivaluasi sentiasa memerlukan sekurang-kurangnya tiga atribut kerana ia terdiri daripada sekurang-kurangnya dua atribut yang bergantung kepada ketiga.
Ketergantungan dan Normalisasi yang pelbagai
Jadual yang mempunyai kebergantungan multivaluasi melanggar piawaian normalisasi Borang Keempat Keempat (4NK) kerana ia mencipta kelebihan yang tidak perlu dan boleh menyumbang kepada data yang tidak konsisten. Untuk membawa sehingga 4NF, adalah perlu untuk memecahkan maklumat ini ke dalam dua jadual.
Jadual di bawah sekarang mempunyai kebergantungan fungsi Student_Name -> Utama, dan tiada kebergantungan multivalued:
Nama pelajar | Major |
---|---|
Ravi | Sejarah Seni |
Ravi | Sejarah Seni |
Ravi | Sejarah Seni |
Beth | Kimia |
Beth | Kimia |
Walaupun jadual ini juga mempunyai kebergantungan fungsional tunggal Student_Name -> Sukan:
Nama pelajar | Sukan |
---|---|
Ravi | Bola sepak |
Ravi | Bola tampar |
Ravi | Tenis |
Beth | Tenis |
Beth | Bola sepak |
Sudah jelas bahawa normalisasi sering ditangani dengan memudahkan jadual kompleks supaya mereka mengandungi maklumat yang berkaitan dengan satu idea atau tema atau bukannya cuba membuat satu jadual mengandungi terlalu banyak maklumat yang berbeza.