Folsleine funksjonele ôfhinklikheid yn databanknormalisaasje

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:

Earste normale foarformulier non-compliance
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:

Earste Normale Form Compliance
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.

Employee Departments
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:

Employees
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.

Ôfdielingen
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:

Earste Normale Form Compliance
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).