Plena Funkcia Dependaĵo en Datumara Normala

Plene funkcia dependeco estas stato de datumbazo normala, kiu egaligas al normala normo de Dua Normala Formo (2NF) . Mallonge, tio signifas, ke ĝi plenumas la kondiĉojn de Unua Normala Formo (1NF), kaj ĉiuj ne-klaraj atributoj tute funkcias dependa de la ĉefa ŝlosilo.

Ĉi tio ne estas tiel komplika kiel ĝi povas soni. Ni rigardu ĉi tion pli detale.

Resumo de Unua Normala Formo

Antaŭ datumbazo povas esti plene funkcie dependa, ĝi devas unue plenumi Unua Normala Formo .

Ĉio tio signifas, ke ĉiu atributo devas teni solan atoman valoron.

Ekzemple, la sekva tabulo ne plenumas kun 1NF, ĉar la oficisto Tina estas ligita al du lokoj, ambaŭ en unu ĉelo:

Unua Normala Formo Ne-Kompleta
Dungito Loko
Johano Los-Anĝeleso
Tina La Anĝeloj, Ĉikago

Permesante ĉi tiu dezajno povus negative efiki datumajn ĝisdatigojn aŭ enirojn. Por certigi 1NF-plenumon, reordigi la tablon por ke ĉiuj atributoj (aŭ kolumnaj ĉeloj) tenu unu valoron:

Unua Normala Forma Kompleto
Dungito Loko
Johano Los-Anĝeleso
Tina Los-Anĝeleso
Tina Ĉikago

Sed 1NF ankoraŭ ne sufiĉas por eviti problemojn kun la datumoj.

Kiel funkcias 2NF por certigi plenan dependecon

Esti plene dependa, ĉiuj ne-kandidaj ŝlosilaj atributoj devas dependi de la ĉefa ŝlosilo. (Memoru, kandidata ŝlosila atributo estas iu ajn ŝlosilo (ekzemple, primara aŭ fremda ŝlosilo) uzita por identigi unikan registron de datumbazo.

Database-diseñistoj uzas notacion por priskribi la dependajn interrilatojn inter atributoj:

Se la atributo A determinas la valoron de B, ni skribas ĉi tiun A -> B - signifante, ke B funkcie dependas de A. En ĉi tiu rilato, Fiksas la valoron de B, dum B dependas de A.

Ekzemple, en la sekva tablo de Oficialaj Fakoj , EmployeeID kaj DeptID estas ambaŭ kandidataj klavoj: EmployeeID estas la ĉefa ŝlosilo de la tablo dum DeptID estas fremda ŝlosilo.

Ajna alia atributo - en ĉi tiu kazo, EmployeeName kaj DeptName - devas dependi de la ĉefa ŝlosilo por akiri ĝian valoron.

Dungitoj
EmployeeID DungitoName DeptID DekretaName
Emp1 Johano Dept001 Financo
Emp2 Tina Dept003 Vendoj
Emp3 Karolo Dept001 Financo

En ĉi tiu kazo, la tablo ne plene dependas ĉar, dum la EmployeeName dependas de la ĉefa ŝlosilo EmployeeID, la DekretaName dependas anstataŭe de la DeptID. Ĉi tio nomas parcial dependeco .

Por ke ĉi tiu tablo laŭigas 2NF, ni devas disigi la datumojn en du tabulojn:

Oficistoj
EmployeeID DungitoName DeptID
Emp1 Johano Dept001
Emp2 Tina Dept003
Emp3 Karolo Dept001

Ni forigas la atributon DeptName de la Oficistoj de la tablo kaj kreas novan tablon Fakoj :

Fakoj
DeptID DekretaName
Dept001 Financo
Dept002 Homaj rimedoj
Dept003 Vendoj

Nun la rilatoj inter la tabloj estas plene dependaj, aŭ en 2NF.

Kial Plena Dependo Estas Grava

Plena dependeco inter datumbazoj atribuas helpojn por certigi la integrecon de datumoj kaj eviti datumajn anomaliojn.

Ekzemple, konsideru la tablon en la sekcio supre, kiu aliĝas nur al 1NF. Jen, denove:

Unua Normala Forma Kompleto
Dungito Loko
Johano Los-Anĝeleso
Tina Los-Anĝeleso
Tina Ĉikago

Tina havas du rekordojn. Se ni ĝisdatigas unu sen rimarki, ke ekzistas du, la rezulto estus nekonsistenta datumo.

Aŭ, kio se ni volas aldoni oficiston al ĉi tiu tablo, sed ni ankoraŭ ne konas la lokon? Oni ne rajtas aldoni novan oficiston, se la atributo de Loko ne permesas alvaloraj valoroj.

Plena dependeco ne estas la tuta bildo, tamen, kiam temas pri normaligo. Vi devas certigi, ke via datumbazo estas en Tria Normala Formo (3NF).