Functional dependency (FD) atau kebergantungan fungsional adalah constraint atau batasan/ ketentuan antara 2 buah himpunan atribut pada sebuah tabel.
Kebergantungan Fungsional
JIka A dan B adalah himpunan atribut dari tabel T, kebergantungan fungsional antara A dan B biasanya dinyatakan dalam notasi notasi A -> B. Notasi A -> B berarti:
- A menentukan B
- B secara fungsional bergantung kepada A.
A -> B jika memenuhi syarat berikut ini :
Pada sebuah tabel T, jika ada dua baris data atau lebih dengan nilai atribut A yang sama maka baris-baris data tersebut pasti akan memiliki nilai atribut B yang sama Namun hal ini tidak berlaku sebaliknya.
Untuk lebih jelasnya perhatikan tabel berikut ini:
NIM | Nama_Mhs | Kd_Jur | Nama_Jur | Kode_MK | Nama_MK | SKS | Nilai |
1-01 | Tukimin | TE | Elektro | TE-001 | Elektronika | 3 | A |
1-01 | Tukimin | TE | Elektro | DU-001 | English | 2 | A |
2-01 | Jamilah | IF | Informatika | IF-001 | Algoritma | 3 | B |
2-01 | Jamilah | IF | Informatika | DU-001 | English | 2 | C |
2-02 | Maemunah | IF | Informatika | IF-002 | Database | 2 | A |
Contoh kebergantungan fungsional
- NIM -> Nama_mhs
Untuk setiap baris data, jika NIM = 1-01 pasti Nama_mhs = ‘Tukimin’, walaupun belum tentu semua mahasiswa yang bernama Tukimin memiliki NIM = 1-01 - NIM -> Kd_jur
Untuk setiap baris data, jika NIM = 1-01 pasti Kd_jur = ‘TE’, walaupun tidak semua baris data dengan kd_jur ‘TE’ memiliki kolom NIM bernilai 1-01 - NIM -> Nama_Jur
Untuk setiap baris data dengan kolom NIM bernilai 1-01 pasti memiliki kolom Nama_Jur = ‘Elektro’, walaupun tidak semua orang di jurusan Elektro memiliki NIM = 1-01. Demikian pula tidak semua baris data pada tabel dengan kolom Nama_Jur = ‘Elektro’ memiliki kolom NIM = 1-01
Penulisan Kebergantungan Fungsional
Penulisan kebergantungan fungsional dari 3 poin di atas dapat diringkas menjadi (NIM) -> (nama_mhs, kd_jur, nama_jur)
Dengan demikian, dari tabel tersebut dapat kita simpulkan beberapa kebergantungan fungsional (FD) sebagai berikut:
- FD1: (nim) -> (nama_mhs, kd_jur, nama_jur)
- FD2: (kd_jur) -> (nama_jur)
- FD3: (kode_mk) -> (nama_mk, sks)
- FD4: (nim,kode_mk) -> (nilai)
Jenis Kebergantungan Fungsional
Ada beberapa jenis kebergantungan fungsional, di antaranya yaitu:
- Partial Functional dependency
- Transitive Functional dependency
- Multivalued Functional dependency
Ketiganya adalah konsep penting dalam normalisasi.