Kebergantungan pangkalan data adalah topik yang sering membingungkan kedua-dua pelajar dan profesional pangkalan data. Nasib baik, mereka tidak begitu rumit dan boleh digambarkan dengan baik melalui penggunaan beberapa contoh. Dalam artikel ini, kami memeriksa jenis ketergantungan pangkalan data biasa.
Dependensi pangkalan data / Dependencies fungsian
Ketergantungan berlaku dalam pangkalan data apabila maklumat yang disimpan di dalam jadual pangkalan data yang sama unik menentukan maklumat lain yang disimpan dalam jadual yang sama. Anda juga boleh menggambarkan ini sebagai hubungan di mana mengetahui nilai satu atribut (atau satu set atribut) cukup untuk memberitahu anda nilai atribut lain (atau set atribut) dalam jadual yang sama.
Mengatakan bahawa terdapat pergantungan antara atribut dalam jadual adalah sama dengan mengatakan bahawa terdapat pergantungan fungsional antara atribut tersebut. Sekiranya terdapat kebergantungan dalam pangkalan data, maka atribut B bergantung pada sifat A, anda akan menulis ini sebagai "A -> B".
Contohnya, Dalam ciri senarai pekerja termasuk nama dan nombor nama keselamatan sosial (SSN), nama boleh bergantung kepada SSN (atau SSN -> nama) kerana nama pekerja boleh ditentukan secara spesifik daripada SSN mereka. Walau bagaimanapun, kenyataan sebaliknya (nama -> SSN) tidak benar kerana lebih daripada seorang pekerja boleh mempunyai nama yang sama tetapi SSN yang berbeza.
Ketergantungan fungsian yang remeh
Ketergantungan fungsi remeh berlaku apabila anda menerangkan kebergantungan fungsi atribut pada koleksi atribut yang merangkumi atribut asal. Sebagai contoh, "{A, B} -> B" adalah kebergantungan fungsi yang remeh, seperti "{name, SSN} -> SSN". Jenis ketergantungan berfungsi dipanggil remeh kerana ia boleh diperoleh dari akal fikiran. Jelas sekali jika anda sudah mengetahui nilai B, maka nilai B dapat ditentukan secara unik oleh pengetahuan itu.
Dependensi Fungsian Penuh
Kebergantungan fungsi penuh berlaku apabila anda telah memenuhi keperluan untuk kebergantungan yang berfungsi dan set atribut di sebelah kiri penyataan pergantungan berfungsi tidak dapat dikurangkan lagi. Sebagai contoh, "{SSN, age} -> nama" adalah kebergantungan yang berfungsi, tetapi ia bukan merupakan pergantungan fungsional sepenuhnya kerana anda boleh mengeluarkan umur dari sebelah kiri kenyataan tanpa mempengaruhi hubungan ketergantungan.
Dependensi Transitif
Ketergantungan transitif berlaku apabila terdapat hubungan tidak langsung yang menyebabkan kebergantungan berfungsi. Sebagai contoh, "A -> C" adalah ketergantungan transitif apabila ia benar hanya kerana kedua-dua "A -> B" dan "B -> C" adalah benar.
Ketergantungan multivalued
Kebergantungan multivaluasi berlaku apabila kehadiran satu atau lebih baris dalam jadual menunjukkan kehadiran satu atau lebih banyak baris lain dalam jadual yang sama. Sebagai contoh, bayangkan syarikat kereta yang mengeluarkan banyak model kereta, tetapi selalu membuat warna merah dan biru setiap model. Sekiranya anda mempunyai jadual yang mengandungi nama model, warna dan tahun setiap kereta yang dikeluarkan oleh syarikat, terdapat pergantungan multivaluasi dalam jadual itu. Sekiranya terdapat satu baris untuk nama model tertentu dan tahun dalam warna biru, mesti ada juga barisan yang serupa dengan versi merah kereta yang sama.
Kepentingan Dependencies
Kebergantungan pangkalan data adalah penting untuk difahami kerana mereka menyediakan blok bangunan asas yang digunakan dalam penataan pangkalan data . Sebagai contoh:
- Untuk jadual yang akan berada dalam bentuk biasa kedua (2NF) , tidak ada kes bagi atribut bukan utama dalam jadual yang secara fungsinya bergantung pada subset kunci utama .
- Untuk jadual di dalam bentuk normal ketiga (3NF) , setiap atribut bukan utama mesti mempunyai kebergantungan fungsian bukan transitif pada setiap kunci calon.
- Untuk jadual yang ada dalam Boyce-Codd Normal Form (BCNF) , setiap pergantungan fungsional (selain daripada ketergantungan remeh) mestilah pada superkey .
- Untuk jadual di dalam bentuk normal keempat (4NF) , ia tidak boleh mempunyai kebergantungan multivalu.