Dependencia multivaluada en bases de datos

Tabla de contenido:

Dependencia multivaluada en bases de datos
Dependencia multivaluada en bases de datos
Anonim

En una base de datos relacional, se produce una dependencia cuando la información almacenada en la misma tabla de la base de datos determina de forma única otra información almacenada en la misma tabla. Una dependencia multivaluada ocurre 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.

Image
Image

Una dependencia multivaluada impide la normalización de la cuarta forma normal estándar. Las bases de datos relacionales siguen cinco formas normales que representan pautas para el diseño de registros. Evitan anomalías de actualización e inconsistencias en los datos. La cuarta forma normal se ocupa de las relaciones de muchos a uno en una base de datos.

Dependencia funcional versus 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 siguiente tabla de Estudiantes, Student_Name determina la Carrera:

Nombre_del_estudiante Mayor
Ravi Historia del Arte
Beth Química

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

Si desea que la base de datos también realice 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:

Nombre_del_estudiante Mayor Deporte
Ravi Historia del Arte Fútbol
Ravi Historia del Arte Voleibol
Ravi Historia del Arte Tenis
Beth Química Tenis
Beth Química Fútbol

El problema aquí es que tanto Ravi como Beth practican varios deportes. Es necesario agregar una nueva fila por cada deporte adicional.

Esta tabla ha introducido una dependencia multivaluada porque la especialidad 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 varios valores podría convertirse en un problema en una base de datos grande y compleja.

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

Nombre_Estudiante ->-> Major

Nombre_Estudiante ->- > Deporte

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

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

Dependencia multivalor y normalización

Una tabla con una dependencia multivaluada viola el estándar de normalización de la cuarta forma normal porque crea redundancias innecesarias y puede contribuir a la inconsistencia de los datos. 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 multivaluadas:

Nombre_del_estudiante Mayor
Ravi Historia del Arte
Ravi Historia del Arte
Ravi Historia del Arte
Beth Química
Beth Química

Si bien esta tabla también tiene una sola dependencia funcional de Student_Name -> Deporte:

Nombre_del_estudiante Deporte
Ravi Fútbol
Ravi Voleibol
Ravi Tenis
Beth Tenis
Beth Fútbol

La normalización a menudo se logra 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.

Recomendado: