Considérons une relation R(A B C). Ici, A, B et C sont connus comme l'attribut de la relation R. Lorsque la condition suivante se présente : alors la dépendance transitive se produit dans le SGBD. Les conditions sont A → B, B → C. Par conséquent, la condition devient A → C. En d'autres termes, on peut dire que lorsque les dépendances sont constituées de deux dépendances fonctionnelles, alors les dépendances fonctionnelles deviennent des dépendances transitives.
Qu’est-ce que la dépendance transitive ?
Considérons une relation R(A B C). Ici, A, B et C sont connus comme l'attribut de la relation R. Lorsque la condition suivante se présente : alors la dépendance transitive se produit dans le SGBD. Les conditions sont A → B, B → C. Par conséquent, la condition devient A → C. dans les dépendances fonctionnelles transitives, une personne à charge dépend directement du déterminant.
Comprenons les dépendances transitives à l'aide de l'exemple suivant.
ID_auteur | Auteur | Livre | Auteur_Nationalité |
---|---|---|---|
A1 | Arundhati Roy | Le Dieu des petites choses | Inde |
A1 | Kiran Desai | L'héritage de la perte | Inde |
A2 | RK Narayan | Le mangeur d'hommes de Malgudy | Inde |
Dans le tableau des auteurs ci-dessus, nous obtenons cela.
Si nous examinons attentivement les dépendances fonctionnelles évoquées ci-dessus, nous trouvons le modèle suivant.
- A → B et B → C B → C ; donc, A → CA → C.
- A → Livre, B → Auteur B → Auteur et C → Auteur_Nationalité C→Auteur_Nationalité
Supposons que nous appliquions la troisième forme normale (3NF) dans le tableau des auteurs ci-dessus. Dans ce cas, la dépendance transitive de la table d'auteur doit être supprimée et le processus de suppression des dépendances transitives de la base de données est appelé processus de normalisation.
Comment éviter les dépendances transitives ?
Examinons à nouveau la table des auteurs ci-dessus et voyons quel type de problème survient lors de la création de la table.
Tableau des auteurs :
ID_auteur | Auteur | Livre | Auteur_Nationalité |
---|---|---|---|
A1 | Arundhati Roy | Le Dieu des petites choses | Inde |
A1 | Kiran Desai | L'héritage de la perte | Inde |
A2 | RK Narayan | Le mangeur d'hommes de Malgudy | Inde |
Les anomalies de données (telles que les anomalies de mise à jour, d'insertion et de suppression) et les incohérences peuvent être apportées par la table des auteurs. Lorsqu’il y a trop de redondance dans la base de données, des anomalies de données sont provoquées dans les données. Des anomalies de données sont également provoquées en cas de problème de mise à jour, de suppression et d'insertion de nouvelles données. Par exemple, dans la table des auteurs-
- Nous ne pouvons pas ajouter un nouvel auteur tant que nous ne pouvons pas ajouter un livre à la table.
- Nous ne pouvons pas supprimer l'auteur tant que nous n'avons pas complètement supprimé le livre de la base de données.
- Si nous voulons supprimer le livre « Le Dieu des petites choses », l'identifiant de l'auteur, l'auteur et la nationalité seront également supprimés.
Les problèmes ci-dessus se produisent dans toute relation contenant des dépendances transitives.
Troisième forme normale en supprimant la dépendance transitive
Considérons le Tableau des auteurs avec trois attributs (Author_ID, Author, Author_Nationality) et essayez de trouver et d'éliminer la dépendance transitive de cette table,
Tableau des auteurs :
ID_auteur | Auteur | Livre | Auteur_Nationalité |
---|---|---|---|
A1 | Arundhati Roy | Le Dieu des petites choses | Inde |
A1 | Kiran Desai | L'héritage de la perte | Inde |
A2 | RK Narayan | Le mangeur d'hommes de Malgudy | Inde |
La table de l'auteur ci-dessus n'est pas en 3NF car elle a une dépendance transitive. Voyons comment
couche réseau dans les réseaux informatiques
- Auteur → Auteur_Nationalité Auteur → Auteur_Nationalité
- Auteur_ID → Auteur
Par conséquent, la dépendance fonctionnelle suivante existe également,
- Authir_ID → Author_Nationality forme un modèle similaire à ce dont nous avons discuté ci-dessus.
Maintenant, pour éliminer la dépendance transitive, tout ce que nous devons faire est de diviser la table Author de telle manière que Author_ID ne dépendra plus fonctionnellement de Author_Nationality.
Créons deux tables, une contenant uniquement {Author_ID, Author} et une autre contenant {Author_Nationality}. Les nouveaux tableaux ressembleront à ceci,
Tableau des auteurs
ID_auteur | Auteur |
---|---|
A1 | Le Dieu des petites choses |
A2 | L'héritage de la perte |
A3 | Le mangeur d'hommes de Malgudy |
Tableau de nationalité des auteurs
Auteur | Auteur_Nationalité |
---|---|
Arundhati Roy | Inde |
Kiran Desai | Inde |
RK Narayan | Inde |
Désormais, les nouvelles tables Auteur et Nationalité de l'auteur ne contiennent aucune dépendance transitive et la relation est désormais en 3NF.