Dependència multivalorada en el disseny de bases de dades

La dependència multivalorida trenca quarta forma normal

En una base de dades relacional, es produeix una dependència quan la informació emmagatzemada a la mateixa taula de base de dades determina únicament la resta d'informació emmagatzemada a la mateixa taula. Una dependència multivalor es produeix quan la presència d'una o més files en una taula implica la presència d'una o més files en la mateixa taula. Dit d'una altra manera, dos atributs (o columnes) d'una taula són independents entre si, però tots dos depenen d'un tercer atribut.

Una dependència multivalor impedeix la normalització de la norma quarta forma normal (4NF). Les bases de dades relacionals segueixen cinc formularis normals que representen pautes per al disseny de registres. Eviten les anomalies d'actualització i les incongruències en les dades. La quarta forma normal tracta de moltes relacions en una base de dades .

Dependència funcional vs dependència multivalor

Per comprendre una dependència multivalorada, és útil revisar quina és la dependència funcional.

Si un atribut X determina únicament un atribut Y, llavors Y depèn funcionalment de X. Això s'escriu com X -> Y. Per exemple, a la taula Estudiants a continuació, el Student_Name determina el Major:

Estudiants
Nom de l'estudiant Major
Ravi Història de l'Art
Beth Química


Aquesta dependència funcional es pot escriure: Student_Name -> Major . Cada Student_Name determina exactament un Major, i no més.

Si voleu que la base de dades també faci un seguiment dels esports que realitzen aquests estudiants, podeu pensar que la forma més senzilla de fer-ho és simplement afegir una altra columna titulada Esport:

Estudiants
Nom de l'estudiant Major Esport
Ravi Història de l'Art Futbol
Ravi Història de l'Art Voleibol
Ravi Història de l'Art Tennis
Beth Química Tennis
Beth Química Futbol


El problema aquí és que tant Ravi com Beth tenen múltiples esports. Cal afegir una nova fila per a cada esport addicional.

Aquesta taula ha introduït una dependència multivalorada perquè el major i l'esport són independents els uns dels altres, però tots dos depenen de l'estudiant.

Aquest és un exemple senzill i fàcilment identificable, però una dependència multivalor podria convertir-se en un problema en una base de dades àmplia i complexa.

Escriu una dependència multivalor X -> -> Y. En aquest cas:

Student_Name -> -> Major
Student_Name -> -> Esport

Això es llegeix com "Student_Name multidetermines Major" i "Student_Name multidetermina l'esport".

Una dependència multivalor sempre requereix d'almenys tres atributs, ja que consisteix en almenys dos atributs que depenen d'un tercer.

Dependència multivalorada i normalització

Una taula amb una dependència multivalor viola l'estàndard de normalització de Fourth Normal Form (4NK) perquè crea redundàncies innecessàries i pot contribuir a dades incongruents. Per portar això a 4NF, cal trencar aquesta informació en dues taules.

La taula de sota ara té una dependència funcional de Student_Name -> Major i no hi ha dependències multivalorades:

Estudiants i majors
Nom de l'estudiant Major
Ravi Història de l'Art
Ravi Història de l'Art
Ravi Història de l'Art
Beth Química
Beth Química

Encara que aquesta taula també té una dependència funcional única de Student_Name -> Esport:

Estudiants i esports
Nom de l'estudiant Esport
Ravi Futbol
Ravi Voleibol
Ravi Tennis
Beth Tennis
Beth Futbol

Està clar que la normalització sovint s'adreça mitjançant la simplificació de taules complexes perquè continguin informació relacionada amb una sola idea o tema en lloc d'intentar que una sola taula contingui massa informació dispar.