Bergantung Bergantung pada Reka Bentuk Pangkalan Data

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:

Pelajar
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:

Pelajar
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:

Pelajar & Majors
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:

Pelajar & 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.