Curso
En las bases de datos, la dependencia transitiva se produce cuando un atributo de una tabla depende de otro atributo, que también depende de la clave primaria. La dependencia transitiva es un problema en la normalización de bases de datos porque provoca problemas en los datos, como anomalías de actualización, inserción y eliminación, que exploraremos en este artículo.
Si, después de este artículo, quieres saber más, te recomiendo que sigas el curso de Diseño de Bases de Datos de DataCamp para familiarizarte con las bases de datos relacionales y el almacenamiento de datos en una base de datos. También te recomiendo que consultes nuestro tutorial Normalización en SQL para aprender sobre las formas normales en SQL, que es el lenguaje más común para gestionar bases de datos relacionales en este contexto.
Comprender la dependencia transitiva en las bases de datos
En las bases de datos relacionales, la dependencia transitiva se produce cuando un atributo depende indirectamente de otro a través de un atributo intermedio. Este problema significa que el valor de una columna puede determinarse indirectamente a partir de los valores de otras dos columnas. Considera la siguiente tabla, llamada DataCamp_Programs:
| Course_or_Skill_Track | Instructor | Instructor_Title |
|---|---|---|
| Manipulación de datos en SQL | Mona Khalil | Científico de datos |
| Fundamentos de SQL | Mona Khalil | Científico de datos |
| Introducción a SQL | Izzy Weber | Entrenador de datos |
De esta tabla:
-
Course_or_Skill_Track→Instructor: Si conocemos el curso o la pista de habilidad, conocemos al instructor. -
Instructorno →Course_or_Skill_Track: A veces, los instructores enseñan más de uno. -
Instructor→Instructor_Title: Cada instructor tiene un título.
Por tanto, Course_or_Skill_Track → Instructor_Title es una dependencia transitiva.
Por qué las dependencias transitivas causan problemas
Las dependencias transitivas pueden causar problemas en la base de datos, principalmente relacionados con la redundancia de datos, las anomalías y la incoherencia.
Redundancia de datos
La redundancia de datos se produce cuando los mismos datos se repiten innecesariamente en la base de datos, lo que provoca ineficiencias. En el ejemplo de la tabla DataCamp_Programs, el título del instructor se almacena varias veces por cada curso que imparte. Esta repetición desperdicia espacio de almacenamiento y dificulta el mantenimiento de la base de datos.
Anomalías en los datos
Veamos ahora los problemas de actualización, inserción y eliminación.
Actualizar anomalías
Las anomalías de actualización se producen cuando los cambios en los datos deben aplicarse en varios lugares debido a la redundancia. Esto da lugar a incoherencias si algunas instancias se actualizan mientras otras se pasan por alto. Imagina, por ejemplo, que utilizamos una consulta SQL para actualizar la tabla DataCamp_Programs porque el título de Mona Khalil ha cambiado a Lead Data Scientist. Tendrías que actualizar manualmente cada fila en la que aparezca su título. Si falta un solo caso, la base de datos contendrá información contradictoria sobre su título actual.
| Course_or_Skill_Track | Instructor | Instructor_Title |
|---|---|---|
| Manipulación de datos en SQL | Mona Khalil | Científico Jefe de Datos |
| Fundamentos de SQL | Mona Khalil | Científico de datos |
| Introducción a SQL | Izzy Weber | Entrenador de datos |
Anomalías de inserción
Las anomalías de inserción se producen cuando no puedes insertar datos en la base de datos porque faltan otros datos necesarios. En otros casos, es posible que puedas insertar datos, pero la estructura de la tabla te obliga a incluir información irrelevante, redundante o que falta, como en el ejemplo siguiente:
| Course_or_Skill_Track | Instructor | Instructor_Title |
|---|---|---|
| Manipulación de datos en SQL | Mona Khalil | Científico de datos |
| Fundamentos de SQL | Mona Khalil | Científico de datos |
| Introducción a SQL | Izzy Weber | Entrenador de datos |
| TBD | Liam Cooper | Analista de datos |
Anomalías de supresión
Las anomalías de borrado se producen cuando al borrar un registro se elimina inadvertidamente información valiosa de la base de datos. Por ejemplo, eliminar el registro que contiene a Izzy Weber eliminaría también el título de instructor, lo que podría provocar una pérdida de datos, ya que podrías dejar de tener toda la gama de títulos en el sistema. En este caso, puede que hayamos eliminado por completo Data Coach del sistema sin pretender ese comportamiento.
| Course_or_Skill_Track | Instructor | Instructor_Title |
|---|---|---|
| Manipulación de datos en SQL | Mona Khalil | Científico de datos |
| Fundamentos de SQL | Mona Khalil | Científico de datos |
Eliminar dependencias transitivas con 3NF
En el contexto de las bases de datos, la normalización organiza los datos para minimizar la redundancia y mejorar su integridad. Por esta razón, las dependencias transitivas se discuten a menudo en el contexto de la tercera forma normal (3NF), una técnica de normalización de bases de datos que elimina las dependencias para abordar el problema de la dependencia transitiva.
La tercera forma normal es un nivel de normalización de la base de datos que elimina las dependencias transitivas y garantiza que todo atributo que no sea clave sólo dependa de la clave primaria. Esto ayuda a evitar la redundancia y los errores causados por las dependencias transitivas. Ten en cuenta los siguientes pasos a la hora de normalizar un esquema de base de datos.
Identificar las dependencias transitivas
Para detectar dependencias transitivas en tu base de datos, desglosa el proceso:
- Comprueba las Dependencias Funcionales de la Clave Primaria: Empieza por identificar todas las dependencias funcionales en las que los atributos dependen directamente de la clave primaria. Este paso te ayuda a centrarte en las relaciones principales de tu tabla.
- Busca Dependencias Indirectas: A continuación, comprueba si algún atributo no clave (los que no forman parte de la clave primaria) depende de otros atributos no clave. Si descubres que un atributo no clave depende de otro, que a su vez depende de la clave primaria, habrás identificado una dependencia transitiva.
- Prueba de redundancia o anomalías: Por último, piensa si esta dependencia indirecta introduce redundancia de datos o complica las actualizaciones.
Dividir tablas
Una vez identificadas las dependencias transitivas, tienes que dividir las tablas para eliminarlas. Dividirás la tabla en tablas más pequeñas cuyos atributos no clave dependan directamente de la clave primaria. También conservarás la relación entre las tablas vinculándolas mediante claves foráneas.
He aquí cómo podrías dividir la tabla DataCamp_Programs en dos tablas para normalizarla y eliminar la dependencia transitiva. Como verás, dividimos la tabla en dos. instructor se convierte en la clave para unir las dos.
Tabla 1: cursos_tabla
| Curso o Habilidad | Instructor |
|---|---|
| Manipulación de datos en SQL | Mona Khalil |
| Fundamentos de SQL | Mona Khalil |
| Introducción a SQL | Izzy Weber |
Tabla 1: instructores_tabla
| Instructor | Instructor_Title |
|---|---|
| Mona Khalil | Científico de datos |
| Izzy Weber | Entrenador de datos |
Esta estructura elimina la dependencia transitiva, en la que Instructor_Title dependía antes de Course_or_Skill_Track a través de Instructor. Ahora, Instructor_Title sólo depende de Instructor.
Cómo evitar las dependencias transitivas
Al diseñar tu base de datos, es importante evitar las dependencias transitivas para mantener la eficacia, escalabilidad e integridad de los datos. A continuación se indican las mejores prácticas para minimizar los riesgos de redundancia, anomalías e incoherencia.
- Normalización durante el diseño del esquema: Si estás diseñando tu base de datos a partir del esquema, es importante tener en cuenta la tercera forma normal (3NF) en las primeras etapas. Este enfoque ayudará a reducir la dependencia transitiva aplicando la técnica de normalización.
- Auditorías periódicas de esquemas: Después de crear tu base de datos, es importante realizar auditorías periódicas para asegurarte de que permanece libre de dependencias transitivas.
- Evitar la simplificación excesiva de las relaciones: Asigna siempre las relaciones y separa adecuadamente las entidades en tablas distintas para almacenar información diferente.
Conclusión
Las dependencias transitivas en las bases de datos se producen cuando un atributo de una tabla depende de otro atributo, que depende de la clave primaria. La dependencia transitiva siempre afecta a la eficacia de la base de datos al introducir redundancia, incoherencias y anomalías. Como desarrollador, es importante identificar y eliminar las dependencias transitivas para la integridad de los datos. También debes identificar y eliminar las dependencias transitivas durante el diseño de la base de datos. Alcanzar la tercera forma normal (3NF) te ayudará a optimizar las bases de datos y a mejorar la eficacia.
Si quieres mejorar tus conocimientos de diseño de bases de datos, te recomiendo que sigas el curso de DataCamp Creación de bases de datos PostgreSQL para aprender más sobre diseño de esquemas y controles de acceso a bases de datos. Por último, si quieres avanzar en tus conocimientos de gestión de bases de datos para big data, te recomiendo que sigas nuestro curso Introducción al modelado de datos en Snowflake para aprender más sobre relaciones, modelado dimensional y bóvedas de datos para crear almacenes de datos en la nube eficientes.
Obtén una Certificación Top SQL
Preguntas frecuentes sobre la dependencia transitiva
¿Qué diferencia hay entre las dependencias funcionales y las dependencias transitivas?
Una dependencia funcional se produce cuando un atributo depende directamente de la clave primaria. Una dependencia transitiva se produce cuando un atributo no clave depende de otro atributo no clave, que a su vez depende de la clave primaria.
¿Por qué son problemáticas las dependencias transitivas?
Las dependencias transitivas provocan redundancia de datos y anomalías, como anomalías de actualización, inserción y eliminación.
¿Qué es la normalización de datos?
La normalización de datos es el proceso de organizar una base de datos en tablas y columnas para reducir la redundancia de datos y mejorar su integridad.
¿Qué es la tercera forma normal (3NF)?
La tercera forma normal (3NF) es una técnica de normalización sin dependencias transitivas. En 3NF, cada atributo no primo debe depender sólo de la clave primaria, garantizando que no existan dependencias indirectas.

