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

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.

 
 

1. Étant donné la relation R=(A,B,C,D), trouvez si R est en 3NF ou BCNF par rapport aux DF suivantes (chaque question en chiffres est séparée):
1) B → C, C → A, C → D 
2) ABC → D, D → A 
3) A → C, B → D

1.1) Dépendances fonctionnelles :

B → C
C → A
C → D

Clé candidate: B

En effet : B → C → A,D donc: B⁺ = {A,B,C,D}

Donc B est une clé candidate.

C → A et C → D violent la 3NF, car C n’est pas une super-clé et A/D ne sont pas des attributs premiers.


1.2) Dépendances fonctionnelles :

ABC → D
D → A

Clé candidate:

ABC
BCD

En effet :

  • ABC → D permet d’obtenir tous les attributs.
  • BCD → A grâce à D → A, donc BCD permet également d’obtenir tous les attributs.

Conclusion :

  • D → A ne respecte pas la BCNF car D n’est pas une super-clé.
  • Mais A est un attribut premier, car il appartient à la clé candidate ABC et à BCD.

La dépendance D → A respecte donc la 3NF, mais viole la BCNF.


1.3) Dépendances fonctionnelles :

A → C
B → D

Pour déterminer une clé:

AB → C,D. Donc: AB⁺ = {A,B,C,D}

Clé candidate: AB

Les deux dépendances A → C et B → D violent la 3NF et la BCNF, car A et B ne sont pas des super-clés et C et D ne sont pas des attributs premiers.

 
 

2. Considérons une relation R=(A,B,C,D,E,F) qui satisfait les quatre DF suivantes :
AB → C, BC → AD, D → E, CF → B 

AB → D est-il valide ? Si oui, donnez une preuve structurée; sinon, donnez un contre-exemple.

Oui, AB → D est valide. Voici une preuve :

1. AB → B     Réflexivité 
2. AB → BC    Union : AB → B et AB → C
3. AB → AD    Transitivité : AB → BC et BC → AD
4. AB → D     Décomposition : AB → AD

Vous pouvez également calculer la fermeture {A, B}+.

AB+ = {A, B}
À partir de AB → C on ajoute C: AB+ = {A, B, C}
Puis, avec BC → AD on ajoute D: AB+ = {A, B, C, D}
Enfin D → E permet d'ajouter E: AB+ = {A, B, C, D, E}
On constate que D ∈ AB⁺. Donc: AB → D est valide.
 
 

3. Étant donné une relation R(A,B,C,D,E,F,G) avec les cinq dépendances fonctionnelles F suivantes :
(1) A → BC
(2) E → CF
(3) B → E
(4) CD → EF
(5) A → G

3.1) Trouver la fermeture(clôture) de A

Déterminez A⁺, c’est-à-dire l’ensemble des attributs que A permet de déterminer.

(6) A → B    (puisque (1))
(7) A → C    (puisque (1))
(8) A → E    (propriété transitive (6) et (3))
(9) A → CF   (propriété transitive de (8) et (2))
(10) A → G   (puisque (5))

Donc, {A}+ = {A,B,C,E,F,G}

❌ D n’est pas obtenu.

3.2) Trouver une clé candidate pour R.

Pour obtenir tous les attributs de R, il faut notamment obtenir D, qui n’est déterminé par aucune des DF données.

On ajoute donc D à A: AD+ = {A, B, C, D, E, F, G}

Ainsi, AD détermine tous les attributs de R. De plus:

  • A seul ne détermine pas D.
  • D seul ne détermine pas les autres attributs.

Donc AD est minimale. {A,D} est une clé candidate.

3.3) Quelle est la fermeture de G ?

Aucune dépendance fonctionnelle ne permet de déduire un nouvel attribut à partir de G. Donc: ​{G}+ = {G}

 
 

4. Étant donné une relation R(A,B,C,D,E,G) avec les huit dépendances fonctionnelles suivantes:
AB → C
D → EG
C → A
BE → C
BC → D
CG → BD
ACD → B
CE → AG

Pour les affirmations suivantes, décidez si elles sont vraies ou fausses. Pour les affirmations fausses, expliquez pourquoi vous pensez qu’elles sont fausses.

4.1) La fermeture de BC est {A,D,E,G}

A VRAI

B FAUX

B
La fermeture contient toujours les attributs de départ. La fermeture de BC inclut les éléments eux-mêmes. Il s’agit de {A,B,C,D,E,G}.

4.2) Tous les attributs de R sont dans la fermeture de BC.

A VRAI

B FAUX

A

On a: BC+ = {A, B, C, D, E, G} qui contient tous les attributs de R. Donc BC est une super-clé.

4.3) La fermeture de AC est {A,C}.

A VRAI

B FAUX

A
C → A est la seule dépendance fonctionnelle utilisable.

4.4) ABC est une super clé de R.

A VRAI

B FAUX

A

Puisque: BC+ = {A, B, C, D, E, G} et que BC ⊂ ABC, alors ABC détermine également tous les attributs. Donc: ABC+ = {A, B, C, D, E, G}

✅ ABC est une super-clé.

4.5) ABC est une clé candidate de R.

A VRAI

B FAUX

B

Une clé candidate doit être minimale. Or BC+ = {A, B, C, D, E, G}. Donc BC est déjà une super-clé. Par conséquent, ABC contient une super-clé et n’est pas minimale.

❌ ABC n’est donc pas une clé candidate.

4.6) BC est la seule clé candidate de R.

A VRAI

B FAUX

B
Il existe d’autres clés candidates, par exemple BD et C.
 
 

5. Considérons une base de données relationnelle sur les hôtels, les clients et leurs réservations, gérée par une société de réservation d’hôtels en ligne. La base de données se compose des tables suivantes (dont les clés primaires sont soulignées) :
Hôtel (hId, hNnom, hAdresse, hVille)
Invité (iId, iNnom, iAdresse, iVille)
Chambre (hid, numéroChambre, type, prix)
Réservation (iId, hId, numéroChambre, dateDébut, année, nombreJours) 

Où hId et iId sont les identifiants des hôtels et des clients, et la relation Réservation indique qu’un client a réservé une chambre d’hôtel pour un nombre spécifié de jours (nombreJours) à partir de dateDébut d’une année donnée. Par exemple, un tuple <1001, 5001, 350, Jan08, 2024, 7> dans Réservation indique que le client avec l’id ‘1001’ a réservé la chambre 350 de l’hôtel avec l’id 5001 pendant 7 jours à partir du 8 janvier 2024.

5.1) Ecrivez une expression d’algèbre relationnelle qui renvoie les identifiants des hôtels situés à Paris qui n’ont fait l’objet d’aucune réservation au cours de l’année 2024.

Tout hôtel ayant une réservation pour une année autre que 2024 sera inclus dans le résultat, même si le même hôtel a une autre réservation pour 2024!

5.2) Ecrire une expression d’algèbre relationnelle qui renvoie les identifiants des clients qui ont réservé au moins une chambre de type « Premium » dans chaque hôtel situé à Paris.

Ceci renvoie tous les clients qui ont réservé une chambre « Premium » dans un hôtel de Paris.

 
 

6. Considérons une relation R=(A,B,C). Pour chacune des règles suivantes, déterminez si elle est valide ou non. Si oui, donnez une preuve structurée; sinon, donnez un contre-exemple.
1) Si AB → C, alors A → C ? 
2) Si AB → C, alors B → C ? 
3) Si AB → C, alors (A → C) ou (B → C) ?
1) Non valide, voici un contre-exemple :

+---+---+---+
| A | B | C |
+---+---+---+
| 1 | 1 | 1 | 
| 1 | 2 | 2 | 
+---+---+---+

2) Non valide, voici un contre-exemple :

+---+---+---+
| A | B | C |
+---+---+---+ 
| 1 | 1 | 1 |
| 2 | 1 | 2 |
+---+---+---+

3) Non valide, voici un contre-exemple :

+---+---+---+
| A | B | C |
+---+---+---+ 
| 1 | 1 | 1 |
| 1 | 2 | 2 |
| 2 | 1 | 2 |
+---+---+---+
 

Laisser un commentaire

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