Consideremos una relación R(A B C). Aquí A, B y C se conocen como el atributo de la relación R. Cuando surge la siguiente condición; entonces la dependencia transitiva ocurre en el DBMS. Las condiciones son A → B, B → C. Por lo tanto, la condición se convierte en A → C. En otras palabras, podemos decir que cuando las dependencias están formadas por dos dependencias funcionales, entonces las dependencias funcionales se convierten en dependencias transitivas.
¿Qué es la dependencia transitiva?
Considere una relación R(A B C). Aquí A, B y C se conocen como el atributo de la relación R. Cuando surge la siguiente condición; entonces la dependencia transitiva ocurre en el DBMS. Las condiciones son A → B, B → C. Por lo tanto, la condición se convierte en A → C. En dependencias funcionales transitivas, un dependiente depende directamente del determinante.
Entendamos las dependencias transitivas con la ayuda del siguiente ejemplo.
ID_autor | Autor | Libro | Autor_Nacionalidad |
---|---|---|---|
A1 | Arundhati Roy | El Dios de las pequeñas cosas | India |
A1 | Kiran Desai | La herencia de la pérdida | India |
A2 | RK Narayan | El devorador de hombres de Malgudy | India |
En la tabla de autores anterior, obtenemos eso.
Si observamos de cerca las dependencias funcionales discutidas anteriormente, encontramos el siguiente patrón.
- A → B y B → C B → C; por lo tanto, A → CA → C.
- A → Libro, B → Autor B → Autor y C → Autor_Nacionalidad C → Autor_Nacionalidad
Supongamos que aplicamos la Tercera Forma Normal (3NF) en la tabla de autores anterior. En ese caso, se debe eliminar la dependencia transitiva de la tabla de autor y el proceso de eliminación de las dependencias transitivas de la base de datos se conoce como proceso de normalización.
¿Cómo evitar las dependencias transitivas?
Consideremos nuevamente la tabla de autores anterior y veamos qué tipo de problema surge durante la creación de la tabla.
Tabla de autores:
Autor_ID | Autor | Libro | Autor_Nacionalidad |
---|---|---|---|
A1 | Arundhati Roy | El Dios de las pequeñas cosas | India |
A1 | Kiran Desai | La herencia de la pérdida | India |
A2 | RK Narayan | El devorador de hombres de Malgudy | India |
La tabla de autores puede contribuir a las anomalías de los datos (como anomalías de actualización, inserción y eliminación) y la inconsistencia. Cuando hay demasiada redundancia en la base de datos, se producen anomalías en los datos. Las anomalías en los datos también se producen cuando hay un problema al actualizar, eliminar e insertar nuevos datos. Por ejemplo, en la tabla de autores-
- No podemos agregar un nuevo autor hasta que no podamos agregar un libro a la tabla.
- No podemos eliminar al autor hasta que eliminemos completamente el libro de la base de datos.
- Si queremos eliminar el libro 'El Dios de las pequeñas cosas', también se eliminaron la identificación del autor, el autor y la nacionalidad.
Los problemas anteriores ocurren en cualquier relación que contenga dependencias transitivas.
Tercera forma normal eliminando la dependencia transitiva
Consideremos el tabla de autores con tres atributos (Autor_ID, Autor, Autor_Nacionalidad) e intentar encontrar y eliminar la dependencia transitiva de esta tabla,
Tabla de autores:
Autor_ID | Autor | Libro | Autor_Nacionalidad |
---|---|---|---|
A1 | Arundhati Roy | El Dios de las pequeñas cosas | India |
A1 | Kiran Desai | La herencia de la pérdida | India |
A2 | RK Narayan | El devorador de hombres de Malgudy | India |
La tabla del autor anterior no está en 3NF porque tiene una dependencia transitiva. veamos como
escáner.siguiente java
- Autor → Autor_Nacionalidad Autor → Autor_Nacionalidad
- Autor_ID → Autor
Por lo tanto, también existe la siguiente dependencia funcional,
- Authir_ID → Author_Nationality está formando un patrón similar al que comentamos anteriormente.
Ahora, para eliminar la dependencia transitiva, todo lo que tenemos que hacer es dividir la tabla de Autor de tal manera que Author_ID ya no dependa funcionalmente de Author_Nationality.
Creemos dos tablas, una que contenga solo {Autor_ID, Autor} y otra que contenga {Autor_Nacionalidad}. Las nuevas tablas se verán así,
Tabla de autores
Autor_ID | Autor |
---|---|
A1 | El Dios de las pequeñas cosas |
A2 | La herencia de la pérdida |
A3 | El devorador de hombres de Malgudy |
Tabla de nacionalidad de autores
Autor | Autor_Nacionalidad |
---|---|
Arundhati Roy | India |
Kiran Desai | India |
RK Narayan | India |
Ahora la nueva tabla de Autor y la tabla de Nacionalidad del Autor no contienen dependencia transitiva y la relación ahora está en 3NF.