Skip to main content

Dependencia multivalor en bases de datos

Mysql: Entidades, atributos y relación binaria y ternaria. (Abril 2025)

Mysql: Entidades, atributos y relación binaria y ternaria. (Abril 2025)
Anonim

En una base de datos relacional, se produce una dependencia cuando la información almacenada en la misma tabla de base de datos determina de manera única otra información almacenada en la misma tabla. Una dependencia multivaluada se produce cuando la presencia de una o más filas en una tabla implica la presencia de una o más filas en esa misma tabla. Dicho de otra manera, dos atributos (o columnas) en una tabla son independientes entre sí, pero ambos dependen de un tercer atributo.

Una dependencia multivaluada impide la normalización de la cuarta forma normal (4NF). Las bases de datos relacionales siguen cinco formas normales que representan pautas para el diseño de registros. Evitan las anomalías de actualización e inconsistencias en los datos. La cuarta forma normal trata con las relaciones de varios a uno en una base de datos.

Dependencia funcional frente a dependencia multivaluada

Para comprender una dependencia multivaluada, es útil revisar qué es una dependencia funcional.

Si un atributo X determina de forma única un atributo Y, entonces Y depende funcionalmente de X. Esto se escribe como X -> Y. Por ejemplo, en la tabla de estudiantes a continuación, el Student_Name determina el Major:

Estudiantes
Nombre del estudianteMayor
RaviHistoria del Arte
BethQuímica

Esta dependencia funcional se puede escribir: Student_Name -> Major . Cada Student_Name determina exactamente un Major y no más.

Si desea que la base de datos también haga un seguimiento de los deportes que practican estos estudiantes, podría pensar que la forma más sencilla de hacerlo es simplemente agregar otra columna titulada Deporte:

Estudiantes
Nombre del estudianteMayorDeporte
RaviHistoria del ArteFútbol
RaviHistoria del ArteVoleibol
RaviHistoria del ArteTenis
BethQuímicaTenis
BethQuímicaFútbol

El problema aquí es que tanto Ravi como Beth juegan múltiples deportes. Es necesario agregar una nueva fila para cada deporte adicional.

Esta tabla ha introducido una dependencia multivaluada porque el mayor y el deporte son independientes entre sí, pero ambos dependen del estudiante.

Este es un ejemplo simple y fácilmente identificable, pero una dependencia de múltiples valores podría convertirse en un problema en una base de datos grande y compleja.

Una dependencia multivalor se escribe X -> -> Y. En este caso:

Nombre del estudiante ->-> MayorNombre del estudiante->-> Deporte

Esto se lee como "Student_Name multidetermines Major" y "Student_Name multidetermines Sport".

Una dependencia multivaluada siempre requiere al menos tres atributos porque consta de al menos dos atributos que dependen de un tercero.

Dependencia multivaluada y normalización

Una tabla con una dependencia multivaluada viola el estándar de normalización de la Cuarta Forma Normal (4NK) porque crea redundancias innecesarias y puede contribuir a datos inconsistentes. Para llevar esto a 4NF, es necesario dividir esta información en dos tablas.

La siguiente tabla ahora tiene una dependencia funcional de Student_Name -> Major, y no tiene dependencias multivalor:

Estudiantes y Mayores
Nombre del estudianteMayor
RaviHistoria del Arte
RaviHistoria del Arte
RaviHistoria del Arte
BethQuímica
BethQuímica

Si bien esta tabla también tiene una única dependencia funcional de Student_Name -> Sport:

Estudiantes y deportes
Nombre del estudianteDeporte
RaviFútbol
RaviVoleibol
RaviTenis
BethTenis
BethFútbol

Está claro que la normalización suele abordarse simplificando tablas complejas para que contengan información relacionada con una sola idea o tema en lugar de tratar de hacer que una sola tabla contenga demasiada información dispar.