Què és la dependència transitiva en una base de dades

Eviteu dependències transitives per ajudar a garantir la normalització

Una dependència transitiva en una base de dades és una relació indirecta entre valors de la mateixa taula que provoca una dependència funcional . Per aconseguir l'estàndard de normalització del Formulari Tercer Normal (3NF), heu d'eliminar qualsevol dependència transitiva.

Per la seva naturalesa, una dependència transitiva requereix tres o més atributs (o columnes de la base de dades) que tenen una dependència funcional entre ells, el que significa que la columna A d'una taula es basa en la columna B a través d'una columna intermedi C.

Vegem com això pot funcionar.

Exemple de dependència transitiva

AUTORS

Autor_ID Autor Llibre Autor_Nacionalitat
Auth_001 Targeta Orson Scott Ender's Game Estats Units
Auth_001 Targeta Orson Scott Ender's Game Estats Units
Auth_002 Margaret Atwood El conte de la esposa Canadà

A l'exemple d'AUTORS a dalt:

Però aquesta taula introdueix una dependència transitiva:

Evitar les dependències transitives

Per garantir el Formulari Tercer Normal, eliminem la dependència transitiva.

Podem començar eliminant la columna Llibre des de la taula dels autors i creant una taula de llibres separada:

LLIBRES

Book_ID Llibre Autor_ID
Book_001 Ender's Game Auth_001
Book_001 Fills de la ment Auth_001
Book_002 El conte de la esposa Auth_002

AUTORS

Autor_ID Autor Autor_Nacionalitat
Auth_001 Targeta Orson Scott Estats Units
Auth_002 Margaret Atwood Canadà

Ha solucionat això? Anem a examinar les nostres dependències ara:

TAULA DE LLIBRES :

Taula de AUTORS :

Hem d'afegir una tercera taula per normalitzar aquestes dades:

PAÏSOS

Country_ID País
Coun_001 Estats Units
Coun_002 Canadà

AUTORS

Autor_ID Autor Country_ID
Auth_001 Targeta Orson Scott Coun_001
Auth_002 Margaret Atwood Coun_002

Ara tenim tres taules, fent servir claus estrangeres per enllaçar entre les taules:

Per què les dependències transitives són un disseny de base de dades incorrecte?

Quin és el valor d'evitar dependències transitives per ajudar a garantir 3NF? Anem a considerar la nostra primera taula de nou i veure els problemes que crea:

AUTORS

Autor_ID Autor Llibre Autor_Nacionalitat
Auth_001 Targeta Orson Scott Ender's Game Estats Units
Auth_001 Targeta Orson Scott Fills de la ment Estats Units
Auth_002 Margaret Atwood El conte de la esposa Canadà

Aquest tipus de disseny pot contribuir a anomalies de dades i inconsistències, per exemple:

Aquests són només alguns motius pels quals la normalització , i evitant dependències transitoris, protegeixen les dades i asseguren la coherència.