Ketergantungan Fungsional Penuh dalam Normalisasi Database

Ketergantungan fungsional penuh adalah keadaan normalisasi database yang setara dengan standar normalisasi dari Bentuk Normal Kedua (2NF) . Singkatnya, ini berarti bahwa ia memenuhi persyaratan Bentuk Normal Pertama (1NF), dan semua atribut non-kunci secara fungsional sepenuhnya tergantung pada kunci primer.

Ini tidak serumit kedengarannya. Mari kita lihat ini lebih detail.

Ringkasan Bentuk Normal Pertama

Sebelum database dapat sepenuhnya bergantung pada fungsi, pertama-tama harus mematuhi First First Form .

Semua ini berarti bahwa setiap atribut harus memiliki satu nilai atom.

Sebagai contoh, tabel berikut tidak sesuai dengan 1NF, karena karyawan Tina terhubung ke dua lokasi, keduanya dalam satu sel:

Bentuk Non-Kepatuhan Normal Pertama
Karyawan Lokasi
John Los Angeles
Tina Los Angeles, Chicago

Mengizinkan desain ini dapat berdampak negatif terhadap pembaruan atau entri data. Untuk memastikan kepatuhan 1NF, atur ulang tabel sehingga semua atribut (atau sel kolom) memiliki satu nilai:

Kepatuhan Bentuk Normal Pertama
Karyawan Lokasi
John Los Angeles
Tina Los Angeles
Tina Chicago

Tetapi 1NF masih belum cukup untuk menghindari masalah dengan data.

Bagaimana 2NF Bekerja untuk Memastikan Ketergantungan Penuh

Agar sepenuhnya bergantung, semua atribut kunci non-kandidat harus bergantung pada kunci primer. (Ingat, atribut kunci kandidat adalah kunci apa saja (misalnya kunci utama atau asing) yang digunakan untuk mengidentifikasi secara unik catatan basis data.

Perancang database menggunakan notasi untuk menggambarkan hubungan dependen antara atribut:

Jika atribut A menentukan nilai B, kita menulis A -> B - yang berarti bahwa B secara fungsional bergantung pada A. Dalam hubungan ini, A menentukan nilai B, sedangkan B bergantung pada A.

Misalnya, dalam tabel Departemen Karyawan berikut, EmployeeID dan DeptID keduanya kunci kandidat: EmployeeID adalah kunci utama tabel sementara DeptID adalah kunci asing.

Atribut lainnya - dalam hal ini, EmployeeName dan DeptName - harus bergantung pada kunci utama untuk mendapatkan nilainya.

Departemen Karyawan
Identitas pegawai Nama karyawan DeptID DeptName
Emp1 John Dept001 Keuangan
Emp2 Tina Dept003 Penjualan
Emp3 Carlos Dept001 Keuangan

Dalam hal ini, tabel tidak sepenuhnya bergantung karena, sementara EmployeeName bergantung pada kunci utama EmployeeID, DeptName bergantung pada DeptID. Ini disebut ketergantungan parsial .

Untuk membuat tabel ini sesuai dengan 2NF, kita perlu memisahkan data menjadi dua tabel:

Para karyawan
Identitas pegawai Nama karyawan DeptID
Emp1 John Dept001
Emp2 Tina Dept003
Emp3 Carlos Dept001

Kami menghapus atribut DeptName dari tabel Karyawan dan membuat Tabel baru. Departemen :

Departemen
DeptID DeptName
Dept001 Keuangan
Dept002 Sumber daya manusia
Dept003 Penjualan

Sekarang hubungan antar tabel sepenuhnya bergantung, atau dalam 2NF.

Mengapa Ketergantungan Penuh Itu Penting

Ketergantungan penuh antara atribut database membantu memastikan integritas data dan menghindari anomali data.

Misalnya, perhatikan tabel di bagian atas yang hanya mematuhi 1NF. Ini dia, lagi:

Kepatuhan Bentuk Normal Pertama
Karyawan Lokasi
John Los Angeles
Tina Los Angeles
Tina Chicago

Tina memiliki dua catatan. Jika kami memperbarui satu tanpa menyadari bahwa ada dua, hasilnya akan menjadi data yang tidak konsisten.

Atau, bagaimana jika kita ingin menambahkan karyawan ke tabel ini, tetapi kita belum tahu Lokasinya? Kami mungkin tidak diizinkan untuk bahkan menambahkan karyawan baru jika atribut Lokasi tidak memungkinkan nilai NULL.

Ketergantungan penuh bukanlah gambaran keseluruhan, ketika datang ke normalisasi. Anda harus memastikan bahwa database Anda ada di Third Normal Form (3NF).