Ketergantungan fungsional sing kebak yaiku sawijining pangaturan normalisasi database sing padha karo standar normalisasi Formulir Normal Kapindho (2NF) . Ing ringkesan, iki tegese kudu memenuhi syarat-syarat First Normal Form (1NF), lan kabeh atribut non-key gumantung ing fungsi utama.
Iki ora rumit amarga bisa uga dienggo. Ayo ndeleng iki luwih rinci.
Ringkesan Formulir Normal Kapisan
Sadurunge basis data bisa gumantung sacara fungsional, kudu pisanan tundhuk Formulir Normal .
Kabeh iki ateges saben atribut kudu nduwe siji, nilai atom.
Contone, tabel ing ngisor iki ora sesuai karo 1NF, amarga karyawan Tina disambung menyang rong lokasi, loro ing sawijining sel:
Karyawan | Lokasi |
---|---|
Yohanes | Los Angeles |
Tina | Los Angeles, Chicago |
Ngidini desain iki bisa nyebabake pangaruh anyar utawa entri data. Kanggo mesthine tundhuk 1NF, ndandani ulang tabel supaya kabeh kawicaksanan (utawa kolom kolom) nahan nilai siji:
Karyawan | Lokasi |
---|---|
Yohanes | Los Angeles |
Tina | Los Angeles |
Tina | Chicago |
Nanging 1NF isih ora cukup kanggo ngatasi masalah karo data.
Carane 2NF Dianggo kanggo Mriksa Dependency Full
Kanggo dadi gumantung banget, kabeh atribut tombol non-calon kudu gumantung ing tombol utama. (Elinga, atribut kunci calon kunci apa wae (umpamane, kunci utama utawa manca) digunakake kanggo ngenali rekaman basis data kanthi unik.
Desainer basis data nggunakake notasi kanggo njelasake hubungan gumantung antara atribut:
Yen atribut A nemtokake nilai B, kita nulis iki A -> B - artine B gumantung sacara fungsional. A. Ing hubungan iki, A nemtokake nilai B, dene B gumantung marang A.
Contone, ing tabel EmployeeID lan DeptID ana loro tombol calon: EmployeeID yaiku kunci utama meja nalika DeptID minangka kunci asing.
Sembarang atribut liyane - ing kasus iki, EmployeeName lan DeptName - kudu gumantung saka tombol utama kanggo entuk manfaat.
EmployeeID | EmployeeName | DeptID | DeptName |
---|---|---|---|
Emp1 | Yohanes | Dept001 | Keuangan |
Emp2 | Tina | Dept003 | Sales |
Emp3 | Carlos | Dept001 | Keuangan |
Ing kasus iki, tabel ora gumantung banget amarga, nalika EmployeeName gumantung marang kunci utama EmployeeID, DeptName gumantung ing DeptID. Iki diarani ketergantungan parsial .
Kanggo nggawe tabel iki kanggo 2NF, kita kudu misahake data dadi rong tabel:
EmployeeID | EmployeeName | DeptID |
---|---|---|
Emp1 | Yohanes | Dept001 |
Emp2 | Tina | Dept003 |
Emp3 | Carlos | Dept001 |
Kita mbusak atribut DeptName saka meja Karyawan lan gawe departemen Tabel anyar:
DeptID | DeptName |
---|---|
Dept001 | Keuangan |
Dept002 | Sumber Daya Manusia |
Dept003 | Sales |
Saiki hubungan antarane tabel iki gumantung banget, utawa ing 2NF.
Kenapa Gabungan Full Penting
Katergantungan kanthi lengkap antarane atribut basis data mbantu njamin integritas data lan supaya data anomali.
Contone, nimbang tabel ing ndhuwur sing mung adhedhasar 1NF. Punika, maneh:
Karyawan | Lokasi |
---|---|
Yohanes | Los Angeles |
Tina | Los Angeles |
Tina | Chicago |
Tina nduweni 2 cathetan. Yen kita ngupdate siji tanpa mangerteni yen ana loro, asil bakal dadi data ora konsisten.
Utawa, apa yen kita pengin nambah karyawan menyang tabel iki, nanging durung ngerti lokasi? Kita bisa uga ora diijini malah nambah karyawan anyar yen atribut Lokasi ora ngidini NULL nilai.
Dhuwure ora sakabehe ora sakabehe gambar, sanajan, nalika nerangake normalisasi. Sampeyan kudu nggawe manawa database sampeyan ana ing Formulir Normal Katelu (3NF).