¿Que é a dependencia transitiva nunha base de datos?

Evite as dependencias transitivas para axudar a garantir a normalización

Unha dependencia transitiva nunha base de datos é unha relación indirecta entre valores na mesma táboa que causa unha dependencia funcional . Para acadar o estándar de normalización do terceiro formulario normal (3NF), debes eliminar calquera dependencia transitiva.

Pola súa natureza, unha dependencia transitiva require tres ou máis atributos (ou columnas de base de datos) que teñen unha dependencia funcional entre eles, o que significa que a columna A nunha táboa depende da columna B a través dunha columna intermedia C.

Vexamos como iso podería funcionar.

Exemplo de dependencia transitiva

AUTORES

Autor_ID Autor Libro Autor_Nacionalidade
Auth_001 Orson Scott Card Xogo de Ender Estados Unidos
Auth_001 Orson Scott Card Xogo de Ender Estados Unidos
Auth_002 Margaret Atwood O Conto da Esma Canadá

No exemplo de AUTORES anterior:

Pero esta táboa introduce unha dependencia transitiva:

Evitando as dependencias transitivas

Para garantir o terceiro formulario normal, eliminemos a dependencia transitiva.

Podemos comezar eliminando a columna Libro da táboa Autores e creando unha táboa de libros separada:

LIBROS

Libro_ID Libro Autor_ID
Libro_001 Xogo de Ender Auth_001
Libro_001 Fillos da mente Auth_001
Libro_002 O Conto da Esma Auth_002

AUTORES

Autor_ID Autor Autor_Nacionalidade
Auth_001 Orson Scott Card Estados Unidos
Auth_002 Margaret Atwood Canadá

¿Fixouse isto? Examinemos agora as nosas dependencias:

TABLA DE LIBROS :

Táboa de autores :

Necesitamos engadir unha terceira táboa para normalizar estes datos:

PAÍSES

País_ID País
Coun_001 Estados Unidos
Coun_002 Canadá

AUTORES

Autor_ID Autor País_ID
Auth_001 Orson Scott Card Coun_001
Auth_002 Margaret Atwood Coun_002

Agora temos tres táboas, facendo uso de chaves estranxeiras para vincular entre as táboas:

Por que as dependencias transitivas son un bo deseño de base de datos

Cal é o valor de evitar dependencias transitivas para axudar a garantir 3NF? Consideremos de novo a nosa primeira mesa e vexa os problemas que crea:

AUTORES

Autor_ID Autor Libro Autor_Nacionalidade
Auth_001 Orson Scott Card Xogo de Ender Estados Unidos
Auth_001 Orson Scott Card Fillos da mente Estados Unidos
Auth_002 Margaret Atwood O Conto da Esma Canadá

Este tipo de deseño pode contribuír a anomalías de datos e inconsistencias, por exemplo:

Estas son só algunhas razóns polas que a normalización e a evitación das dependencias transitivas protexen os datos e aseguran a coherencia.