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

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!

 


Exercice 1 — Identifier les dépendances fonctionnelles

On considère la relation:

ETUDIANT(NumEtudiant, Nom, Prenom, DateNaissance)

On sait qu’un numéro d’étudiant identifie un seul étudiant.

 

Questions

1.1) Donner les dépendances fonctionnelles.

NumEtudiant → Nom
NumEtudiant → Prenom
NumEtudiant → DateNaissance

 

1.2) Quelle est la clé primaire ?

La clé primaire est: NumEtudiant

 


Exercice 2 — Reconnaître une dépendance fonctionnelle

On considère la relation:

CLIENT(CodeClient, NomClient, Ville)

On sait que chaque CodeClient correspond à un seul client.

 

Questions

2.1) Les dépendances suivantes sont-elles vraies ?
CodeClient → NomClient
CodeClient → Ville
NomClient → CodeClient
Ville → CodeClient

CodeClient → NomClient ✅
CodeClient → Ville ✅
NomClient → CodeClient ❌
Ville → CodeClient ❌

Un nom ou une ville peuvent correspondre à plusieurs clients.

 


Exercice 3 — Trouver la clé

On considère la relation:

R(A, B, C, D)

avec :

A → B
A → C
A → D

 

Questions

3.1) Quelle est la clé candidate ?

Calculons la fermeture de A:
A+ = {A}
Avec A → B: A+ = {A,B}
Avec A → C: A+ = {A,B,C}
Avec A → D: A+ = {A,B,C,D}

Donc: A+ = {A,B,C,D}

A est une clé candidate.

 


Exercice 4 — Calculer une fermeture simple

On considère la relation:

R(A, B, C, D, E)

avec :

A → B
B → C
C → D
D → E

 

Questions

4.1) Calculer la fermeture de A (A+)

Calculons la fermeture de A:
A+ = {A}
Avec A → B: A+ = {A,B}
Avec B → C: A+ = {A,B,C}
Avec C → D: A+ = {A,B,C,D}
Avec D → E: A+ = {A,B,C,D,E}

Donc: A+ = {A,B,C,D,E}

A est une clé candidate.

 


Exercice 5 — Une relation déjà en 2FN

On considère la relation:

VENTE(NumProduit, NumMagasin, Quantite)

avec :

(NumProduit, NumMagasin) → Quantite
 

Questions

5.1) La relation est-elle en 2FN ?

La clé est: (NumProduit, NumMagasin)

Quantite dépend de toute la clé: (NumProduit, NumMagasin) → Quantite

Il n’existe aucune dépendance partielle.

En supposant la 1FN respectée:

✅ La relation est en 2FN.

 


Exercice 6 — Identifier les dépendances partielles

On considère la relation:

RESULTAT(Etudiant, Matiere, NomEtudiant, NomMatiere, Note)

avec :

Etudiant → NomEtudiant
Matiere → NomMatiere
(Etudiant, Matiere) → Note

 

Questions

6.1) Pourquoi cette relation n’est-elle pas en 2FN ?

La clé est (Etudiant, Matiere) mais: Etudiant → NomEtudiant.

NomEtudiant dépend uniquement de Etudiant.

Et :

Matiere → NomMatiere

NomMatiere dépend uniquement de Matiere.

Ce sont des dépendances partielles.

❌ La relation n’est pas en 2FN.

 


Exercice 9 — Dépendance transitive

On considère la relation:

EMPLOYE(Matricule, Nom, CodeService, NomService)

avec :

Matricule → Nom
Matricule → CodeService
CodeService → NomService

 

Questions

9.1) Quelle est la clé ?

La clé est Matricule.

 

9.2) La relation est-elle en 2FN ?

La clé Matricule est simple. Donc aucune dépendance partielle. ✅ 2FN.

 

9.3) Est-elle en 3FN ?

On a:

Matricule → CodeService
CodeService → NomService

donne :

Matricule → CodeService → NomService

Il existe une dépendance transitive. ❌ Pas en 3FN.

 

9.4) Si non décomposez la en 3FN.

On crée :

EMPLOYE(Matricule, Nom, CodeService)
SERVICE(CodeService, NomService)

Ainsi :

Matricule → Nom
Matricule → CodeService
CodeService → NomService

Chaque dépendance est maintenant correctement représentée.

 


Exercice 10 — Déterminer la forme normale

On considère la relation:

R(A, B, C)

avec :

A → B
B → C

et A comme clé.

 

Questions

10.1) Quelle est la forme normale maximale ?

✅ 1FN. La clé est simple, donc aucune dépendance partielle.

✅ 2FN. Mais :

A → B
B → C

donne :

A → B → C

Dépendance transitive.

3FN : ❌

R est en 2FN mais pas en 3FN.

 


Exercice 11 — Plusieurs clés candidates

On considère la relation:

R(A, B, C, D)

avec :

A → B
B → A
A → C
B → D

 

Questions

11.1) Trouver toutes les clés candidates.

Fermeture de A:
A+ = {A}
Avec A → B: A+ = {A,B}
Avec A → C: A+ = {A,B,C}
Avec B → D: A+ = {A,B,C,D}

Donc A est une clé.

 
Fermeture de B:
B+ = {B}
Avec B → A: B+ = {A,B}
Puis: A → C, donc: B+ = {A,B,C}
Et: B → D, donc: B+ = {A,B,C,D}

Donc B est également une clé.

Donc les clés candidates sont : A et B.

 


Exercice 12 — Clé composée

On considère la relation:

R(A, B, C, D, E)

avec :

AB → C
C → D
D → E

 

Questions

12.1) Trouver une clé candidate.

Calculons (AB)+

Départ: {A,B}

Avec: AB → C on obtient: {A,B,C}

Puis: C → D donne: {A,B,C,D}

Puis: D → E donne: {A,B,C,D,E}

Donc: (AB)+ = {A,B,C,D,E}

AB est une clé candidate.

 


Exercice 13 — Vérifier la BCNF

On considère la relation:

R(A, B, C)

avec :

A → B
B → C

et A clé candidate.

 

Questions

13.1) La relation est-elle en BCNF ?

Pour la BCNF, chaque déterminant doit être une super-clé.

Nous avons: A → B

A est une super-clé. ✅ Respecté.

Mais: B → C

B n’est pas une super-clé.

❌ Violation de la BCNF.

Donc R n’est pas en BCNF.

 


Exercice 14 — Relation en BCNF

On considère la relation:

R(A, B, C)

avec :

AB → C
 

Questions

14.1) La relation est-elle en BCNF ?

La clé est: AB

La seule dépendance non triviale est: AB → C

Le déterminant AB est une super-clé.

✅ La relation est en BCNF.

 

 

Laisser un commentaire

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