Functional Dependency (ketergantungan fungsional) : menggambarkan
hubungan, batasan, keterkaitan antara atribut-atribut dalam relasi.
Suatu atribut dikatakan fuctional dependency pada yang lain jika kita
menggunakan harga tersebut untuk menentukan harga atribut lain.
Functional dependency digambarkan dengan tanda panah :
A dan B adalah atribut dari sebuah tabel. Berarti secara fungsional A menentukan B atau B tergantung pada A, jika dan hanya jika ada 2 baris data dengan nilai A yang sama, maka nilai B juga sama.
Macam-macam Dependency :
- Function Dependency
- Full Dependency (ketergantungan penuh) Menunjukkan jika terdapat atribut A dan B
dalam suatu relasi, dimana :
◦ B memiliki ketergantungan fungsional secara penuh pada A,
◦ B bukan memiliki dependensi terhadap subset A
{NIM, nama} -> idRuang bukan Full Dependency jika nama dihilangkan, maka NIM -> idRuang bisa Full dependency
- Partially Dependency (ketergantungan parsial) : B memiliki ketergantungan terhadap subset A.
Contoh : terdapat sebuah tabel seperti dibawah ini
{NIM, Nama} --> idRuang merupakan partially dependency. Dimana jika salah
satu atribut dihilangkan (Nama dihilangkan), maka ketergantungan masih tetap
ada.
- Transitive Dependency : A menentukan B, B menentukan C. Jadi bisa dikatakan A menentukan C melalui B.
NIP --> kdCabang, kdCabang --> almCabang. Jadi NIP menentukan almCabang
melalui kdCabang.
Normalisasi : adalah proses untuk mendapatkan struktur tabel atau relasi
yang efisien dan bebas dari anomali. Sehingga sebagian ambiguitas dalam
struktur data bisa dihilangkan.
Berikut ini ada beberapa alasan mengapa kita melakukan normalisasi :
- Optimalisasi struktur-struktur tabel
- Meningkatkan kecepatan
- Menghilangkan pemasukan data yang sama
- Lebih efisien dalam penggunaan media penyimpanan
- Mengurangi redudansi (penggandaan data)
- Mengindari anomali
- Integritas data yang ditingkatkan
- First normal form (1NF)
- Second normal form (2NF)
- Third normal form (3NF)
- Boyce-codd normal form (BCNF)
- Four normal form (4NF)
- Five normal form (5NF)
1NF (Bentuk normal Pertama)
adalah suatu keadaan yang membuat setiap perpotongan baris dan kolom dalam relasi hanya berisi satu nilai, atau tidak ada dua value dalam satu atribut.
2NF (Bentuk normal kedua)
Bentuk normal 2NF terpenuhi jika memenuhi 1NF, dan semua tribut selain primary key, secara utuh memiliki Functional Dependency pada primary key. Jika ada tribut yang tidak mempunyai ketergantungan pada primary key, maka dihapus.
3NF (Bentuk normal ketiga)
Bentuk normal 3NF terpenuhi jika memenuhi 2NF, dan juga tidak ada atribut non primary key yang tidak memiliki ketergantungan terhadap atribut non primary key yang lainnya ( ketergantungan transitif).