Dependencia multivalor no deseño de bases de datos

A dependencia multivalor rompe a cuarta forma normal

Nunha base de datos relacional, prodúcese unha dependencia cando a información almacenada na mesma táboa de base de datos determina de forma exclusiva outra información almacenada na mesma táboa. Unha dependencia multivalúvel ocorre cando a presenza dunha ou máis filas nunha táboa implica a presenza dunha ou máis outras filas nesa mesma táboa. Dito doutra forma, dous atributos (ou columnas) nunha táboa son independentes entre si, pero ambos dependen dun terceiro atributo.

Unha dependencia multivalor impide a normalización estándar cuarta forma normal (4NF). As bases de datos relacionalas seguen cinco formas normais que representan directrices para o deseño de discos. Evitan as anomalías de actualización e as inconsistencias nos datos. A cuarta forma normal trata de relacións de moitos a un nunha base de datos .

Dependencia funcional vs dependencia multivalor

Para comprender unha dependencia multivalor, é útil revisitar o que é unha dependencia funcional.

Se un atributo X determina exclusivamente un atributo Y, entón Y depende funcionalmente de X. Isto escríbese como X -> Y. Por exemplo, na táboa de estudantes a continuación, o Student_Name determina o Maior:

Estudantes
Student_Name Maior
Ravi Historia da arte
Beth Química


Esta dependencia funcional pode escribirse: Student_Name -> Major . Cada Student_Name determina exactamente un Maior, e non máis.

Se queres que a base de datos tamén faga seguimento dos deportes que estes estudantes levan, podes pensar que o xeito máis sinxelo de facelo é engadir outra columna titulada Deporte:

Estudantes
Student_Name Maior Deporte
Ravi Historia da arte Fútbol
Ravi Historia da arte Voleibol
Ravi Historia da arte Tenis
Beth Química Tenis
Beth Química Fútbol


O problema aquí é que tanto Ravi como Beth xogan múltiples deportes. É necesario engadir unha nova fila para cada deporte adicional.

Esta táboa introduciu unha dependencia multivalor porque o maior eo deporte son independentes entre si pero ambos dependen do alumno.

Este é un exemplo sinxelo e fácil de identificar, pero unha dependencia multivalor podería converterse nun problema nunha base de datos grande e complexa.

Depende da dependencia multivalor X -> -> Y. Neste caso:

Student_Name -> -> Maior
Student_Name -> -> Deporte

Isto é lido como "Student_Name multidetermines Major" e "Student_Name multidetermines Sport".

Unha dependencia multivalor sempre require polo menos tres atributos porque consta de polo menos dous atributos que dependen dunha terceira.

Dependencia e normalización multivalor

Unha táboa cunha dependencia multivalor viola o estándar de normalización do Cuarto Formulario Normal (4NK) porque crea despedimentos innecesarios e pode contribuír a datos inconsistentes. Para levar isto a 4NF, é necesario romper esta información en dúas táboas.

A táboa de abaixo agora ten unha dependencia funcional de Student_Name -> Major e sen dependencias multivaloradas:

Estudantes e maiores
Student_Name Maior
Ravi Historia da arte
Ravi Historia da arte
Ravi Historia da arte
Beth Química
Beth Química

Aínda que esta táboa tamén ten unha dependencia funcional única de Student_Name -> Deporte:

Estudantes e Deportes
Student_Name Deporte
Ravi Fútbol
Ravi Voleibol
Ravi Tenis
Beth Tenis
Beth Fútbol

Está claro que a normalización adoita ser abordada simplificando táboas complexas para que conteñan información relacionada cunha única idea ou tema en vez de tentar facer que unha única táboa conteña demasiada información disparada.