Saltar al contenido principal
InicioTutorialesSQL

¿Qué es la dependencia transitiva?

Una dependencia transitiva se produce cuando un atributo de una base de datos depende indirectamente de otro a través de un tercer atributo, provocando redundancia. Sigue leyendo para aprender a identificar y eliminar las dependencias transitivas en el diseño de bases de datos .
Actualizado 1 oct 2024  · 5 min leer

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_TrackInstructor: Si conocemos el curso o la pista de habilidad, conocemos al instructor.

  • Instructor no → Course_or_Skill_Track: A veces, los instructores enseñan más de uno.

  • InstructorInstructor_Title: Cada instructor tiene un título.

Por tanto, Course_or_Skill_TrackInstructor_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:

  1. 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.
  2. 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.
  3. 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

Demuestra tus conocimientos básicos de SQL y avanza en tu carrera de datos.

Certifícate En SQL

Photo of Allan Ouko
Author
Allan Ouko
LinkedIn
Creo artículos que simplifican la ciencia de los datos y la analítica, haciéndolos fáciles de entender y accesibles.

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.

Temas

Aprende con DataCamp

Course

Database Design

4 hr
74.5K
Learn to design databases in SQL to process, store, and organize data in a more efficient way.
See DetailsRight Arrow
Start Course
Ver másRight Arrow
Relacionado

blog

¿Qué es una base de datos de grafos? Guía para principiantes

Explora el intrincado mundo de las bases de datos de grafos con nuestra guía para principiantes. Comprende las relaciones entre datos, profundiza en la comparación entre bases de datos de grafos y relacionales, y explora casos prácticos de uso.
Kurtis Pykes 's photo

Kurtis Pykes

11 min

blog

5 competencias esenciales en ingeniería de datos

Descubra los conocimientos de ingeniería de datos que necesita para prosperar en el sector. Descubra las funciones y responsabilidades de un ingeniero de datos y cómo puede desarrollar sus propias habilidades.
Joleen Bothma's photo

Joleen Bothma

11 min

tutorial

Cómo utilizar un alias SQL para simplificar tus consultas

Explora cómo el uso de un alias SQL simplifica tanto los nombres de las columnas como los de las tablas. Aprende por qué utilizar un alias SQL es clave para mejorar la legibilidad y gestionar uniones complejas.
Allan Ouko's photo

Allan Ouko

9 min

tutorial

Introducción a los disparadores SQL: Guía para desarrolladores

Aprende a utilizar los disparadores SQL para automatizar tareas, mantener la integridad de los datos y mejorar el rendimiento de la base de datos. Prueba ejemplos prácticos como los comandos CREATE, ALTER y DROP en MySQL y Oracle.
Oluseye Jeremiah's photo

Oluseye Jeremiah

13 min

tutorial

Ejemplos y tutoriales de consultas SQL

Si quiere iniciarse en SQL, nosotros le ayudamos. En este tutorial de SQL, le presentaremos las consultas SQL, una potente herramienta que nos permite trabajar con los datos almacenados en una base de datos. Verá cómo escribir consultas SQL, aprenderá sobre
Sejal Jaiswal's photo

Sejal Jaiswal

21 min

tutorial

Seleccionar varias columnas en SQL

Aprende a seleccionar fácilmente varias columnas de una tabla de base de datos en SQL, o a seleccionar todas las columnas de una tabla en una simple consulta.
DataCamp Team's photo

DataCamp Team

3 min

See MoreSee More