Exercices Corrigés Dépendances fonctionnelles(Forme Normale) – Partie 10

La meilleure façon d’apprendre quelque chose est de pratiquer des exercices. Nous avons préparer ces exercices corrigés pour les personnes (débutantes ou intermédiaires) qui sont familières avec les dépendances fonctionnelles et normalisation des bases de données. Nous espérons que ces exercices vous aideront à améliorer vos compétences sur les Dépendances fonctionnelles et Normalisation. Les exercices corrigés suivantes sont actuellement disponibles, nous travaillons dur pour ajouter plus d’exercices. Bon apprentissage!

Vous pouvez lire notre tutoriel sur les dépendances fonctionnelles et normalisation des bases de données avant de résoudre les exercices suivants.

 
 

Rappel:

Vous savez que la dépendance fonctionnelle A -> B signifie que B dépend de A, c’est-à-dire qu’à partir de la valeur de A, nous pouvons trouver la valeur de B dans la relation.

Donc, pour prouver que A -> B est valide dans une relation, l’une des conditions suivantes doit être vraie :

  • Condition1 : toutes les valeurs de A doivent être uniques.
  • Condition2 : toutes les valeurs de B doivent être identiques.
  • Condition3 : Si deux ou plusieurs tuples de la relation ont la même valeur pour l’attribut A, alors il doit également y avoir la même valeur pour l’attribut B.

 
 

1. Dans les diagrammes ER, un ensemble de relations peut exister entre un ensemble d’entités et lui-même.

A VRAI

B FAUX

A
C’est vrai. C’est le cas lorsque nous avons besoin de « rôles » pour les entités.
 
 

2. En algèbre relationnelle, deux tuples de la relation R(a, b) peuvent avoir la même valeur pour a.

A VRAI

B FAUX

A
C’est vrai. Il ne peut cependant pas y avoir de valeurs dupliquées pour l’ensemble de la relation.
 
 

3. Nous utilisons les diagrammes ER pour modéliser logiquement nos données.

A VRAI

B FAUX

B
Faux. Les diagrammes ER modélisent conceptuellement nos données. Les modèles relationnels se chargent de la modélisation logique.
 
 

4. Dans un schéma relationnel, une table peut avoir plus d’une clé.

A VRAI

B FAUX

A
C’est vrai. Il n’est cependant pas possible qu’une table ait plus d’une clé primaire.
 
 

5. Nous pouvons contrôler une instance de base de données pour vérifier qu’une contrainte d’intégrité est respectée.

A VRAI

B FAUX

A
C’est vrai. Il n’est cependant pas possible de connaître les contraintes d’intégrité en examinant l’instance.
 
 

6. Une entité faible nous permet de traiter un ensemble de relations comme un ensemble d’entités à des fins d’implication dans des (autres) relations.

A VRAI

B FAUX

B
Faux. il s’agit d’une agrégation.
 
 

7. Dans un diagramme ER, la clé primaire d’une entité est la clé choisie pour identifier les entités dans un ensemble d’entités.

A VRAI

B FAUX

A
C’est vrai.
 
 

8. Considérons le schéma S(A,B,C,D,E,F) ainsi que les dépendances fonctionnelles suivantes:
ABCE
ABCD
DA
AE
EF

S est-il en BCNF ? Pourquoi ou pourquoi pas ? Si ce n’est pas le cas, décomposez-le en un ensemble de relations BCNF.

Tout d’abord, trouvez les clés.

  • ABC+=ABCDEF
  • D+=DAEF
  • A+=AEF
  • E+=EF

Clés : ABC, BCD. Donc, les trois dernières DF violent la BCNF puisque les côtés gauches de chacune ne sont pas des superclés pour la relation

Ce n’est pas un choix valide de décomposer sur ABC → E ou ABC → D puisque ces DF ne violent pas la BCNF.
Cependant, D → A viole la BCNF car D n’est pas une superclé de S. Décomposons donc R1(AD), R2(BCDEF). R1 est en BCNF (comme toutes les relations à 2 attributs), mais R2 ne l’est pas, car, entre autres, E n’est pas une clé de R2, mais E → F est valide dans R2. Décomposons donc sur E → F. La décomposition de R2 donne R3(EF) et R4(BCDE). R3 est dans la BCNF. R4, cependant, n’est PAS en BCNF, puisque D+ inclut E, et donc D → E (même s’il n’est pas explicitement listé dans les DF), mais D n’est pas une clé de R4. Il faut donc décomposer, ce qui donne R5(BCD) et R6(DE). R6 est en BCNF, et R5 est en BCNF puisqu’il n’y a pas de dépendances fonctionnelles non triviales dans R5. Par conséquent, la décomposition finale est R1(AD), R3(EF), R5(BCD), R6(DE).

 
 

9. Considérons le schéma R(A,B,C,D,E) ainsi que les dépendances fonctionnelles suivantes:
CD
DEB
ABC

S est-il en 3FN ? Pourquoi ou pourquoi pas ? Si ce n’est pas le cas, décomposez-le en un ensemble de relations 3FN.

Tout d’abord, trouvez les clés.

  • C+=CD
  • DE+=BDE
  • AB+=ABCD

Clés : ABE, ACE, ADE. Donc, R est en 3NF puisque le côté droit de chaque dépendance fonctionnelle est en 3NF.

 
 

10. Considérons le schéma R(A,B,C,D,E,F,G) ainsi que les dépendances fonctionnelles suivantes:
ABC
ADE
BF
EG

 
10.1) Listez toutes les clés candidates pour cette relation.

A et B n’apparaissent pas sur la droite d’une DF et doivent donc être présents dans chaque clé.

Vérifiez que (AB)+ = ABCDEFG, donc AB est une super clé. Puisque chaque clé doit contenir A et B, il en résulte que AB est la clé unique du schéma de relation R donné.

 
10.2) Cette relation est-il en 3FN? Justifiez votre réponse.

Non. Toutes les DF, sauf la première, violent la 3NF.

 
10.3) Cette relation est-il en BCNF ? Si vous pensez qu’elle n’est pas en BCNF, décomposez R en un nombre minimum de relations qui sont en BCNF.

Non. Toutes les DF, à l’exception de la première, violent la BCNF. Nécessité de décomposer:

La réponse finale est donc R1(A,D), R2(B,F), R3(A,B,C), R4(A,G), R5(A,E).

 
10.4) Trouvez une décomposition 3FN de R.

Il faut d’abord trouver une couverture minimale de l’ensemble de DF donné. Tout d’abord, écrivez chaque DF sous sa forme standard : AB → C, A → D, A → E, B → F, E → G. Ensuite, essayez d’éliminer des attributs sans modifier la fermeture. On peut constater qu’aucun attribut ne peut être éliminé. Troisièmement, vérifiez si des DF sont redondantes. Aucune DF ne peut être éliminée. L’ensemble des DF ci-dessus est donc minimal.

Pour décomposer jusqu’à la BCNF. C’est la même chose que ci-dessus. Nous devons maintenant vérifier s’il y a des DF que nous avons perdues – R3 a A, B et C. R1 a A et D. R5 a A et E. R2 a B et F. Cependant, il n’y a pas de relation qui contienne à la fois E et G, nous devons donc ajouter une nouvelle relation R6(E,G).

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *