La forme normale de Boyce-Codd
La forme normale de Boyce-Codd : tout déterminant est une super-clé ; le cas d'une relation en 3FN qui ne la respecte pas, la décomposition, et son prix : une dépendance qu'aucune table ne garantit plus.
- 20 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Mises en situation
- Comprendre
Quelques cartes du deck
Forme normale de Boyce-Codd (FNBC) : de quoi s'agit-il ?
Voir la réponse
Propriété d'une relation dont chaque dépendance non triviale X → Y a pour partie gauche X une super-clé.
Elle est plus stricte que la 3FN : toute relation en FNBC est en 3FN, l'inverse est faux. Elle supprime toute redondance due aux dépendances fonctionnelles.
Cours(etudiant, matiere, enseignant) : un enseignant n'enseigne qu'une matière, donc enseignant → matiere. Les clés candidates sont (etudiant, matiere) et (etudiant, enseignant). Dans quelle forme est-elle ?
- 3FN, mais pas FNBC
- FNBC, car toutes les dépendances partent d'une clé
- 2FN seulement, car matiere dépend de enseignant
- Elle n'est pas en 2FN, car la clé est composée
Voir la réponse
3FN, mais pas FNBC
enseignantn'est pas une super-clé : la FNBC est violée. Maismatiereappartient à une clé candidate, ce qui sauve la 3FN. Aucun attribut n'est hors de toute clé : pas de dépendance partielle ni transitive au sens strict.Une relation est en FNBC quand, pour toute dépendance non triviale X → Y, X est une ….
Voir la réponse
Une relation est en FNBC quand, pour toute dépendance non triviale X → Y, X est une super-clé.
La 3FN ajoute une échappatoire : elle accepte aussi Y s'il est un attribut appartenant à une clé candidate. La FNBC la supprime.
Déterminant : de quoi s'agit-il ?
Voir la réponse
Partie gauche d'une dépendance fonctionnelle : l'ensemble d'attributs dont la valeur fixe celle des attributs de droite.
La FNBC se résume ainsi : un déterminant qui ne suffit pas à identifier la ligne entière est un signe de redondance.
Après une décomposition en FNBC, la base accepte sans erreur ces deux inscriptions de Léa en Réseaux, avec deux enseignants différents. Quelle est la cause, et que choisir ?
```sql
-- R1(enseignant, matiere) R2(etudiant, enseignant)
INSERT INTO r1 VALUES ('Aubry', 'Réseaux'), ('Moreau', 'Réseaux');
INSERT INTO r2 VALUES ('Léa', 'Aubry'), ('Léa', 'Moreau');`- Aucune table ne porte plus (etudiant, matiere) → enseignant ; la vérifier par déclencheur, ou rester en 3FN
- La décomposition est avec perte : la jointure de R1 et R2 invente cette deuxième inscription de Léa
- Les clés étrangères manquent entre R1 et R2 ; il suffit de les déclarer pour refuser la ligne
- Ce comportement est normal en FNBC : un étudiant peut avoir plusieurs enseignants par matière
Voir la réponse
Aucune table ne porte plus (etudiant, matiere) → enseignant ; la vérifier par déclencheur, ou rester en 3FN
Le découpage est sans perte, et les clés étrangères ne changent rien : chaque table reste valide. C'est la dépendance entre deux tables qui n'est plus gardée, alors que la règle du domaine n'a pas changé. C'est le prix de la FNBC, qui pèse contre la redondance évitée.