Considerem una relació R(A B C). Aquí A, B i C es coneixen com l'atribut de la relació R. Quan es produeix la següent condició; aleshores la dependència transitiva es produeix al SGBD. Les condicions són A → B, B → C. Per tant, la condició passa a ser A → C. En altres paraules, podem dir que quan les dependències estan fetes per dues dependències funcionals, aleshores les dependències funcionals es converteixen en dependències transitives.
Què és la dependència transitòria?
Considereu una relació R(A B C). Aquí A, B i C es coneixen com l'atribut de la relació R. Quan es produeix la següent condició; aleshores la dependència transitiva es produeix al SGBD. Les condicions són A → B, B → C. Per tant, la condició es converteix en A → C. en dependències funcionals transitives, un dependent depèn directament del determinant.
Entenem les dependències transitives amb l'ajuda de l'exemple següent.
ID_autor | Autor | Llibre | Autor_Nacionalitat |
---|---|---|---|
A1 | Arundhati Roy | El déu de les petites coses | Índia |
A1 | Kiran Desai | L'herència de la pèrdua | Índia |
A2 | R.K. Narayan | El devorador d'homes de Malgudy | Índia |
A la taula d'autors anterior, ho obtenim.
Si mirem de prop les dependències funcionals comentades anteriorment, trobem el patró següent.
- A → B i B → C B→C; per tant, A → CA → C.
- A → Llibre, B → Autor B → Autor i C → Autor_Nacionalitat C→Autor_Nacionalitat
Suposem que apliquem la tercera forma normal (3NF) a la taula d'autors anterior. En aquest cas, s'ha d'eliminar la dependència transitiva de la taula d'autor i el procés d'eliminació de les dependències transitives de la base de dades es coneix com a procés de normalització.
Com evitar les dependències transitives?
Considerem de nou la taula d'autors anterior i veiem quin tipus de problema sorgeix durant la creació de la taula.
Taula d'autors:
ID_autor | Autor | Llibre | Autor_Nacionalitat |
---|---|---|---|
A1 | Arundhati Roy | El déu de les petites coses | Índia |
A1 | Kiran Desai | L'herència de la pèrdua | Índia |
A2 | R.K. Narayan | El devorador d'homes de Malgudy | Índia |
Les anomalies de les dades (com ara les anomalies d'actualització, inserció i supressió) i la inconsistència poden ser aportades per la taula d'autor. Quan hi ha massa redundància a la base de dades, es produeixen anomalies a les dades. Les anomalies de dades també es produeixen quan hi ha un problema amb l'actualització, la supressió i la inserció de dades noves. Per exemple, a la taula d'autors-
- No podem afegir un autor nou fins que no podem afegir un llibre a la taula.
- No podem eliminar l'autor fins que no eliminem completament el llibre de la base de dades.
- Si volem suprimir el llibre 'El déu de les coses petites', també s'han eliminat l'identificador, l'autor i la nacionalitat de l'autor.
Els problemes anteriors es produeixen en qualsevol relació que contingui dependències transitives.
Tercera forma normal eliminant la dependència transitiva
Considerem el Taula d'autors amb tres atributs (Author_ID, Author, Author_Nationality) i intenteu trobar i eliminar la dependència transitiva d'aquesta taula,
Taula d'autors:
ID_autor | Autor | Llibre | Autor_Nacionalitat |
---|---|---|---|
A1 | Arundhati Roy | El déu de les petites coses | Índia |
A1 | Kiran Desai | L'herència de la pèrdua | Índia |
A2 | R.K. Narayan | El devorador d'homes de Malgudy | Índia |
La taula de l'autor anterior no es troba a 3NF perquè té una dependència transitiva. A veure com
java ordenant una llista
- Autor → Autor_Nacionalitat Autor → Autor_Nacionalitat
- Author_ID → Autor
Per tant, també existeix la següent dependència funcional:
- Authir_ID → Author_Nationality està formant un patró similar al que hem comentat anteriorment.
Ara, per eliminar la dependència transitiva, tot el que hem de fer és dividir la taula de l'autor de tal manera que Author_ID ja no dependrà funcionalment de Author_Nationality.
Creem dues taules, una que conté només { Author_ID, Author} i una altra que contingui {Author_Nationality}. Les noves taules seran així,
Taula d'autors
ID_autor | Autor |
---|---|
A1 | El déu de les petites coses |
A2 | L'herència de la pèrdua |
A3 | El devorador d'homes de Malgudy |
Taula de nacionalitats d'autor
Autor | Autor_Nacionalitat |
---|---|
Arundhati Roy | Índia |
Kiran Desai | Índia |
R.K. Narayan | Índia |
Ara la nova taula d'autors i la taula de nacionalitat de l'autor no conté cap dependència transitiva i la relació es troba ara a 3NF.