Dependència funcional completa en la normalització de bases de dades

Una dependència funcional completa és un estat de normalització de la base de dades que s'aproxima a l'estàndard de normalització de Second Normal Form (2NF) . En resum, això significa que compleix els requisits de First Normal Form (1NF), i tots els atributs que no siguin de la clau són totalment dependents funcionalment de la clau principal.

Això no és tan complicat com sona. Vegem això amb més detall.

Resum del primer formulari normal

Abans que una base de dades pugui dependre de manera funcional, primer ha de complir amb First Normal Form .

Tot això vol dir que cada atribut ha de tenir un valor atòmic únic.

Per exemple, la taula següent no compleix amb 1NF, ja que l'empleat Tina està enllaçat a dues ubicacions, totes dues d'una cel·la:

Primer incompliment de la forma normal
Empleat Ubicació
John Els angels
Tina Los Angeles, Chicago

Permetre que aquest disseny pogués afectar negativament les actualitzacions de dades o les entrades. Per garantir el compliment de 1NF, reordeneu la taula perquè tots els atributs (o columnes) tinguin un valor únic:

Primer compliment del formulari normal
Empleat Ubicació
John Els angels
Tina Els angels
Tina Chicago

Però 1NF encara no és suficient per evitar problemes amb les dades.

Com funciona 2NF per garantir la dependència completa

Per ser totalment dependents, tots els atributs de claus no candidats han de dependre de la clau principal. (Recordeu que un atribut de clau candidat és qualsevol clau (per exemple, una clau principal o estrangera) que s'utilitza per identificar de forma exclusiva un registre de la base de dades.

Els dissenyadors de bases de dades utilitzen una notació per descriure les relacions depenents entre atributs:

Si l'atribut A determina el valor de B, escrivim aquest A -> B - el que significa que B depèn funcionalment de A. En aquesta relació, A determina el valor de B, mentre que B depèn de A.

Per exemple, en la següent taula de Departaments dels empleats , EmployeeID i DeptID són les dues claus candidates: EmployeeID és la clau principal de la taula mentre que el DeptID és una clau externa.

Qualsevol altre atribut, en aquest cas, EmployeeName i DeptName, ha de dependre de la clau principal per obtenir el seu valor.

Departaments d'empleats
EmployeeID Nom d'empleat DeptID DeptName
Emp1 John Dept001 Finances
Emp2 Tina Dept003 Vendes
Emp3 Carlos Dept001 Finances

En aquest cas, la taula no depèn del tot perquè, mentre el EmployeeName depèn de la clau principal EmployeeID, el DeptName depèn, en canvi, del DeptID. Això s'anomena dependència parcial .

Per fer que aquesta taula s'ajusti a 2NF, necessitem separar les dades en dues taules:

Empleats
EmployeeID Nom d'empleat DeptID
Emp1 John Dept001
Emp2 Tina Dept003
Emp3 Carlos Dept001

Treureem l'atribut DeptName de la taula Empleats i creeu una taula nova Departaments :

Departaments
DeptID DeptName
Dept001 Finances
Dept002 Recursos humans
Dept003 Vendes

Ara les relacions entre les taules són totalment dependents, o en 2NF.

La dependència completa és important

La dependència completa entre els atributs de la base de dades ajuda a garantir la integritat de les dades i evitar les anomalies de dades.

Per exemple, consideri la taula a la secció anterior que s'adhereix només a 1NF. Aquí està, de nou:

Primer compliment del formulari normal
Empleat Ubicació
John Els angels
Tina Els angels
Tina Chicago

Tina té dos registres. Si actualitzem un sense adonar-nos que hi ha dos, el resultat seria dades incongruents.

O, què passa si volem afegir un empleat a aquesta taula, però encara no coneixem la ubicació? Podríem evitar que, fins i tot, afegiu un nou empleat si l'atribut Location no permet els valors NULL.

La dependència total no és tota la imatge, però, quan es tracta de la normalització. Heu d'assegurar-vos que la vostra base de dades es troba en el Tercer formulari normal (3NF).