In folsleine funksjonele ôfhinklikheid is in steat fan normalisearring fan databank dy't lykweardich is foar de normalisearringstandert fan Twadde Normale Form (2NF) . Koartsein betsjut dit dat it foldwaan oan de easken fan First Normal Form (1NF), en alle non-key attributen binne folslein funksjonal ôfhinklik fan de primêre kaai.
Dit is net sa komplisearre as it klinkt. Litte wy dit yn detail mear sjogge.
Summary of First Normal Form
Foardat in databank folslein funksjoneel ôfhinklik wêze kin, moat it earst as earste ferwiderje.
Dit alles betsjuttet dat elke attribút in single, atomêre wearde hâldt.
Bygelyks, de neikommende tabel hâldt net oan 1NF, omdat de meiwurker Tina ferbûn is mei twa lokaasjes, beide fan harren yn in single-cell:
Meiwurker | Lokaasje |
---|---|
Johannes | Los Angeles |
Tina | Los Angeles, Chicago |
It ûntwerp kin dizze ûntwerp negatyf ynfloed op gegevensynformaasje of yntekeningen. Om it 1NF-behertiging te garandearjen, set de tabel op 'e nij, sadat alle eigenskippen (of kolomzellen) in ien wearde hâlde:
Meiwurker | Lokaasje |
---|---|
Johannes | Los Angeles |
Tina | Los Angeles |
Tina | Chicago |
Mar 1NF is noch net genôch om problemen mei de gegevens te foarkommen.
Hoe't 2NF wurket om folsleine ôfwikseling te garandearjen
Om folslein ôfhinklik te wêzen moat alle net-kandidaat-attributen fan 'e primêre kaai ôfhinklik wêze. (Tink derom dat in kandidaat as lid fan 'e kandidaat is in kaai (bygelyks in primêr of bûtenlânske kaai) brûkt om ien databank opnij te identifisearjen.
Databest designers brûke in notysje om de ôfhinklike relaasjes tusken attributen te beskriuwen:
As attribus A bepaalt de wearde fan B, skriuwe wy dat A -> B - betsjuttet dat B funksjonal funksjonearret fan A. Yn dizze relaasje is A bepaald de wearde fan B, wylst B hinget op A.
Bygelyks yn de folgjende Tabel Employee Departments , EmployeeID en DeptID binne beide kandidaatskippen: EmployeeID is de primêre kaai fan de tabel, wylst DeptID in frjemde kaai is.
Alle oare attributen - yn dit gefal, EmployeeName en DeptName - moatte ôfhinklik fan de primêre kaai wêze om har wearde te krijen.
EmployeeID | Namme fan in wurknimmer | DeptID | DeptName |
---|---|---|---|
Emp1 | Johannes | Dept001 | Finânsjes |
Emp2 | Tina | Dept003 | Ferkeap |
Emp3 | Carlos | Dept001 | Finânsjes |
Yn dit gefal is de tabel net folslein ôfhinklik omdat, wylst it EmployeeName hinget fan 'e primêre kaai EmployeeID, sil DeptName yn plak fan de DeptID hinget. Dit wurdt dielde ôfhinging neamd .
Om dizze tafel konform te meitsjen oan 2NF, moatte wy de gegevens yn twa tabellen losse:
EmployeeID | Namme fan in wurknimmer | DeptID |
---|---|---|
Emp1 | Johannes | Dept001 |
Emp2 | Tina | Dept003 |
Emp3 | Carlos | Dept001 |
Wy ferwiderje it DeptName-attribút fan 'e tabel Employees en meitsje in nije tafel.
DeptID | DeptName |
---|---|
Dept001 | Finânsjes |
Dept002 | Human Resources |
Dept003 | Ferkeap |
No binne de relaasjes tusken de tabellen folslein ôfhinklik, of yn 2NF.
Wêrom is de folsleine ôfwikseling wichtich
Folsleine ôfhinklikens fan database-attributen soarget foar feiligens fan gegevens en ferwiderje fan data-anomalies.
Sjoch bygelyks de tafel yn 'e haadstik dy't allinich oan 1NF hinget. Hjir is it, wer:
Meiwurker | Lokaasje |
---|---|
Johannes | Los Angeles |
Tina | Los Angeles |
Tina | Chicago |
Tina hat twa record. As wy ien oanpasse sûnder te realisearjen dat der twa binne, dan soe it resultaat wêze dat inkonsistint gegevens binne.
Of, wat as wy in meiwurker oan dizze tafel taheakje wolle, mar wy witte noch net de lokaasje? Wy kinne mislearre wurde om noch in nije meiwurker te foegjen as it Lokaat-attribút gjin NULL-wearden jout.
Folsleine ôfhinklikheid is net it folsleine byld, hoewol it it giet om normalisearring. Jo moatte derfoar soargje dat jo databank is yn Tredde Normal Form (3NF).