Dependensi database adalah topik yang sering membingungkan mahasiswa dan profesional basis data. Untungnya, mereka tidak begitu rumit dan dapat diilustrasikan dengan baik melalui penggunaan sejumlah contoh. Dalam artikel ini, kami memeriksa jenis ketergantungan database umum.
Dependensi Database / Dependensi Fungsional
Ketergantungan terjadi dalam database ketika informasi yang disimpan dalam tabel database yang sama secara unik menentukan informasi lain yang disimpan dalam tabel yang sama. Anda juga dapat menggambarkan ini sebagai hubungan di mana mengetahui nilai dari satu atribut (atau satu set atribut) cukup untuk memberi tahu Anda nilai atribut lain (atau set atribut) di tabel yang sama.
Mengatakan bahwa ada ketergantungan antara atribut dalam tabel adalah sama dengan mengatakan bahwa ada ketergantungan fungsional antara atribut-atribut tersebut. Jika ada ketergantungan dalam basis data sedemikian rupa sehingga atribut B bergantung pada atribut A, Anda akan menulis ini sebagai "A -> B".
Sebagai contoh, Dalam daftar tabel karakteristik karyawan termasuk Nomor Jaminan Sosial (SSN) dan nama, dapat dikatakan bahwa nama itu tergantung pada SSN (atau SSN -> nama) karena nama karyawan dapat ditentukan secara unik dari SSN mereka. Namun, pernyataan terbalik (nama -> SSN) tidak benar karena lebih dari satu karyawan dapat memiliki nama yang sama tetapi SSN berbeda.
Dependensi Fungsional Trivial
Ketergantungan fungsional yang sepele terjadi ketika Anda mendeskripsikan ketergantungan fungsional suatu atribut pada koleksi atribut yang menyertakan atribut asli. Misalnya, "{A, B} -> B" adalah ketergantungan fungsional yang sepele, seperti "{name, SSN} -> SSN". Jenis ketergantungan fungsional ini disebut sepele karena dapat berasal dari akal sehat. Jelas bahwa jika Anda sudah tahu nilai B, maka nilai B dapat ditentukan secara unik oleh pengetahuan itu.
Dependensi Fungsional Penuh
Ketergantungan fungsional penuh terjadi ketika Anda sudah memenuhi persyaratan untuk ketergantungan fungsional dan kumpulan atribut di sisi kiri pernyataan ketergantungan fungsional tidak dapat dikurangi lebih jauh. Misalnya, "{SSN, usia} -> nama" adalah ketergantungan fungsional, tetapi itu bukan ketergantungan fungsional penuh karena Anda dapat menghapus usia dari sisi kiri pernyataan tanpa memengaruhi hubungan ketergantungan.
Ketergantungan Transitif
Ketergantungan transitif terjadi ketika ada hubungan tidak langsung yang menyebabkan ketergantungan fungsional. Sebagai contoh, "A -> C" adalah ketergantungan transitif ketika itu benar hanya karena "A -> B" dan "B -> C" benar.
Dependensi Multinilai
Dependensi multinilai terjadi ketika kehadiran satu atau lebih baris dalam tabel menyiratkan adanya satu atau lebih baris lain dalam tabel yang sama. Misalnya, bayangkan perusahaan mobil yang memproduksi banyak model mobil, tetapi selalu membuat warna merah dan biru dari masing-masing model. Jika Anda memiliki tabel yang berisi nama model, warna dan tahun dari setiap mobil yang diproduksi perusahaan, ada ketergantungan multinilai dalam tabel itu. Jika ada baris untuk nama model tertentu dan tahun berwarna biru, harus ada baris serupa yang sesuai dengan versi merah dari mobil yang sama.
Pentingnya Ketergantungan
Ketergantungan database penting untuk dipahami karena mereka menyediakan blok bangunan dasar yang digunakan dalam normalisasi database . Sebagai contoh:
- Untuk tabel berada dalam bentuk normal kedua (2NF) , tidak boleh ada kasus atribut non-prima dalam tabel yang secara fungsional tergantung pada subset kunci kandidat .
- Untuk tabel berada dalam bentuk normal ketiga (3NF) , setiap atribut non-prima harus memiliki ketergantungan fungsional non-transitif pada setiap kunci kandidat.
- Untuk tabel berada dalam Bentuk Normal Boyce-Codd (BCNF) , setiap ketergantungan fungsional (selain dari dependensi sepele) harus berada pada superkey .
- Untuk tabel berada dalam bentuk normal keempat (4NF) , itu harus tidak memiliki dependensi multinilai.