Dalam pangkalan data hubungan, kebergantungan berlaku apabila maklumat yang disimpan dalam jadual pangkalan data yang sama secara unik menentukan maklumat lain yang disimpan dalam jadual yang sama. Kebergantungan berbilang nilai berlaku apabila kehadiran satu atau lebih baris dalam jadual menunjukkan kehadiran satu atau lebih baris lain dalam jadual yang sama. Dengan kata lain, dua atribut (atau lajur) dalam jadual adalah bebas antara satu sama lain, tetapi kedua-duanya bergantung pada atribut ketiga.
Pergantungan berbilang nilai menghalang bentuk normal keempat standard penormalan. Pangkalan data perhubungan mengikut lima bentuk biasa yang mewakili garis panduan untuk reka bentuk rekod. Mereka menghalang anomali kemas kini dan ketidakkonsistenan dalam data. Bentuk normal keempat memperkatakan perhubungan banyak-dengan-satu dalam pangkalan data.
Kebergantungan Fungsional lwn. Ketergantungan Berbilang Nilai
Untuk memahami kebergantungan berbilang nilai, adalah berguna untuk menyemak semula kebergantungan berfungsi.
Jika atribut X secara unik menentukan atribut Y, maka Y bergantung secara fungsi pada X. Ini ditulis sebagai X -> Y. Contohnya, dalam jadual Pelajar di bawah, Nama_Murid menentukan Major:
Nama_Pelajar | Major |
---|---|
Ravi | Sejarah Seni |
Beth | Kimia |
Kebergantungan fungsi ini boleh ditulis: Nama_Pelajar -> Major. Setiap Student_Name menentukan tepat satu Major dan tidak lebih.
Jika anda mahu pangkalan data turut menjejaki sukan yang pelajar ini ambil, anda mungkin fikir cara paling mudah untuk melakukannya ialah dengan hanya menambah satu lagi lajur bertajuk Sukan:
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 di sini ialah Ravi dan Beth bermain beberapa sukan. Anda perlu menambah baris baharu untuk setiap sukan tambahan.
Jadual ini telah memperkenalkan kebergantungan berbilang nilai kerana jurusan dan sukan adalah bebas antara satu sama lain tetapi kedua-duanya bergantung kepada pelajar. Ini adalah contoh mudah dan mudah dikenal pasti, tetapi pergantungan berbilang nilai boleh menjadi masalah dalam pangkalan data yang besar dan kompleks.
Pergantungan berbilang nilai ditulis X ->-> Y. Dalam kes ini:
Nama_Pelajar ->-> Major
Nama_Pelajar -64334 > Sukan
Ini dibaca sebagai "Nama_Pelajar menentukan pelbagai Major" dan "Nama_Pelajar menentukan pelbagai Sukan."
Pergantungan berbilang nilai sentiasa memerlukan sekurang-kurangnya tiga atribut kerana ia terdiri daripada sekurang-kurangnya dua atribut yang bergantung pada satu pertiga.
Kebergantungan Berbilang Nilai dan Normalisasi
Jadual dengan kebergantungan berbilang nilai melanggar piawaian normalisasi bentuk normal keempat kerana ia menghasilkan lebihan yang tidak perlu dan boleh menyumbang kepada data yang tidak konsisten. Untuk membawa ini kepada 4NF, maklumat ini perlu dipecahkan kepada dua jadual.
Jadual di bawah kini mempunyai kebergantungan fungsi Student_Name -> Major, dan tiada kebergantungan berbilang nilai:
Nama_Pelajar | Major |
---|---|
Ravi | Sejarah Seni |
Ravi | Sejarah Seni |
Ravi | Sejarah Seni |
Beth | Kimia |
Beth | Kimia |
Walaupun jadual ini juga mempunyai kebergantungan fungsi tunggal Student_Name -> Sukan:
Nama_Pelajar | Sukan |
---|---|
Ravi | Bola Sepak |
Ravi | Bola Tampar |
Ravi | Tenis |
Beth | Tenis |
Beth | Bola Sepak |
Penormalan selalunya dicapai dengan memudahkan jadual kompleks supaya ia mengandungi maklumat yang berkaitan dengan idea atau tema tunggal daripada cuba menjadikan satu jadual mengandungi terlalu banyak maklumat yang berbeza.