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

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. Considérons la relation R=(A,B,C,D) avec les DF suivantes :
A → B, B → C, C → D, et D → A

1.1) Donner la liste de toutes les clés candidates de R.

4 clés candidates pour R: A, B, C, D.

1.2) R est-il en 3NF? BCNF?

R est en BCNF.
 
 

2. Considérons la relation suivante:
Commande(id_produit, nom_produit, id_client, nom_client, date_commande, prix_produit, montant, tva, total_brut, total_net)

Hypothèses :

  • La valeur de la taxe sur les ventes (TVA) peut varier d’un produit à l’autre (par exemple, 8 % pour les produits alimentaires, 16 % pour les produits de luxe).
  • Le total brut est le prix total net plus la taxe sur les ventes.
  • Les commandes de clients passées le même jour sont combinées. Nous n’avons qu’une seule commande par client et par jour.

2.1) Déterminer toutes les dépendances fonctionnelles de la relation Commande.

id_produit -> nom_produit, prix_produit, tva
id_client -> nom_client
id_produit, id_client, date_commande -> montant
prix_produit, montant -> total_net
total_net, tva -> total_brut

2.2) Trouver toutes les clés candidats.

{id_produit, id_client, date_commande}
 
 

3. Considérons le schéma relationnel suivant :
Voiture(marque, modèle, année, couleur, concessionnaire)

Chaque tuple de la relation Voiture spécifie qu’une ou plusieurs voitures d’une marque, d’un modèle et d’une année donnés, d’une couleur donnée, sont disponibles chez un concessionnaire donné. Par exemple, le tuple

(Mercedes, Classe A, 2024, Gris, ShowCars)

Indique que des Mercedes Classe A 2024 de couleur Gris sont disponibles chez le concessionnaire ShowCars.

Pour chacun des énoncés suivants, écrivez une dépendance fonctionnelle qui reflète le mieux l’énoncé.

3.1) Le nom du modèle d’une voiture est une marque déposée par sa marque, c’est-à-dire que deux marques ne peuvent pas utiliser le même nom de modèle.

modèle -> marque

3.2) Chaque concessionnaire ne vend qu’un seul modèle de chaque marque de voiture.

concessionnaire,marque -> modèle

3.3) Si une marque, un modèle et une année de voiture sont disponibles dans une couleur particulière chez un concessionnaire donné, cette couleur est disponible chez tous les concessionnaires qui vendent la même marque, le même modèle et la même année.

marque,modèle,année -> couleur
OU
marque,modèle,année -> concessionnaire

3.4) Sur la base de vos réponses aux questions (3.1)-(3.3), indiquez toutes les clés minimales pour la relation Voiture.

Les clés minimales pour la relation Voiture sont:

(marque,année,couleur,concessionnaire), (modèle,année,couleur,concessionnaire)

 
 

4. Considérons les deux schémas relationnels suivants :
Schéma 1: R(A,B,C,D)
Schéma 2: R1(A,B,C), R2(B,D)

4.1) Considérons le schéma 1 et supposons que les seules dépendances fonctionnelles qui s’appliquent aux relations de ce schéma sont A → B, C → D, et toutes les dépendances qui en découlent. Le schéma 1 est-il en forme normale BCNF?

Non – ni A ni C ne sont des clés, donc A → B et C → D sont des violations de la BCNF.

La forme normale de Boyce-Codd (BCNF) est basée sur des dépendances fonctionnelles qui prennent en compte toutes les clés candidates d’une relation ; toutefois, la BCNF impose également des contraintes supplémentaires par rapport à la forme normale 3FN.

  • Règle 1 : La table doit être en 3FN.
  • Règle 2 : X doit être une super-clé pour chaque dépendance fonctionnelle (DF) X->Y dans une relation donnée.

4.2) Considérez le schéma 2 et supposez que les seules dépendances fonctionnelles qui s’appliquent aux relations de ce schéma sont A → B, A → C, B → A, A → D, et toutes les dépendances qui en découlent. Le schéma 2 est-il en BCNF ?

Oui. Le schéma 2 est en BCNF.

4.3) Supposons que nous ignorions la dépendance A → D de la partie (4.2). Le schéma 2 est-il en BCNF ?

Oui. Le schéma 2 est en BCNF.

4.4) Considérons le schéma 1 et supposons que les seules dépendances fonctionnelles qui s’appliquent aux relations de ce schéma sont A → BC, B → D, B →> CD, et toutes les dépendances qui en découlent. Le schéma 1 est-il en quatrième forme normale (4FN) ?

Non – B n’est pas une clé, donc B → C est une violation de la 4FN.

La quatrième forme normale (4FN) est un niveau de normalisation où il n’y a pas de dépendances multi valeurs non triviales autres qu’une clé candidate. Elle s’appuie sur les trois premières formes normales (1FN, 2FN et 3FN) et sur la forme normale de Boyce-Codd (BCNF). Elle indique que, en plus de satisfaire aux exigences de la BCNF, une base de données ne doit pas contenir plus d’une dépendance à valeurs multiples.

4.5) Considérez le schéma 2 et supposez que les seules dépendances fonctionnelles qui s’appliquent aux relations de ce schéma sont A → BD, D → C, A → C, B → D, et toutes les dépendances qui en découlent. Le schéma 2 est-il en 4FN?

Oui. Le schéma 2 est en 4FN.

 
 

5. Considérons une relation R(A,B,C) et supposons que R contienne les quatre tuples suivants :

5.1) Spécifiez toutes les dépendances fonctionnelles complètement non triviales qui s’appliquent à cette instance de R.

A → B, C → B, AC → B.

Dans le cas d’une dépendance fonctionnelle non triviale, la dépendance n’est strictement pas un sous-ensemble du déterminant, c’est-à-dire que si X → Y et que Y n’est pas un sous-ensemble de X, il s’agit d’une dépendance fonctionnelle non triviale.

5.2) Spécifiez toutes les dépendances multi-valeurs non triviales qui existent dans cette instance de R. N’incluez pas les dépendances multi-valeurs qui sont aussi des dépendances fonctionnelles.

A → C, C → A.

5.3) Cette instance de R est-elle en forme normale BCNF en ce qui concerne les dépendances que vous avez données dans la partie (5.1) ? Si ce n’est pas le cas, indiquez toutes les décompositions BCNF valides.

Non – A n’est pas une clé dans A → B et C n’est pas une clé dans C → B

  • Décomposition 1: R1(A,B), R2(A,C)
  • Décomposition 2: R1(A,C), R2(B,C)
 
 

6. Considérons la base de données suivante :
Table: étudiants

+-------------+-----------------------+--------------------+------------+
| id_etudiant |       adresse         |       cours        | professeur |
+-------------+-----------------------+--------------------+------------+
| 1           | 11, Avenue De Marlioz | Base de données    |  Alex      |
| 2           | 93, rue Jean Vilar    | Gestion de projets |  Ali       |
| 1           | 11, Avenue De Marlioz | Conception UML     |  Jean      |
| 5           | 10, rue des Chaligny  | Gestion de projets |  Emily     |
| 6           | 82, Rue St Ferréol    | Gestion de projets |  Emily     |
+-------------+-----------------------+--------------------+------------+

Supposons qu’il y ait exactement un professeur assistant assigné à chaque étudiant pour chaque cours.

6.1) Déterminer toutes les dépendances fonctionnelles de la relation ci-dessus.

id_etudiant → adresse

id_etudiant, cours → professeur.

6.2) Donnez un exemple de super clé et de clé candidate.

  • L’ensemble de tous les attributs est une super clé triviale.
  • (id_etudiant, cours) est une clé candidate (minimale).
 

Laisser un commentaire

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