Leçon 35 : Deuxième Forme Normale (2NF)
Pour atteindre la 2FN, une table doit déjà être en 1FN, et elle doit satisfaire une condition supplémentaire concernant les clés composites.
Règle pour la 2FN
Aucun attribut non clé n'est partiellement dépendant d'une clé candidate.
Cette règle ne s'applique que lorsqu'une table a une Clé Primaire Composite (une PK composée de deux colonnes ou plus).
- Attribut Non Clé : Toute colonne qui ne fait pas partie de la clé primaire.
- Dépendance Partielle : Lorsqu'un attribut non clé est déterminé par seulement une partie de la clé composite, et non par la clé entière.
Exemple de Violation : Détails de la Commande
Supposons une PK composite : (OrderID, ProductID).
| OrderID (PK) | ProductID (PK) | ProductName | Quantity | Price |
|---|---|---|---|---|
| 100 | A | Keyboard | 2 | 50 |
| 101 | A | Keyboard | 1 | 50 |
ProductNameetPricene dépendent que deProductID(une partie de la clé).Quantitydépend de la clé complète (OrderID+ProductID).
Si le ProductName change, nous devons le mettre à jour pour chaque commande où il apparaît (redondance).
Correction (Atteindre la 2FN)
Nous séparons les attributs partiellement dépendants dans une nouvelle table :
- Table
Products: PK :ProductID. ContientProductNameetPrice. - Table
OrderDetails: PK Composite : (OrderID,ProductID). ContientQuantity.
Désormais, ProductName dépend uniquement de la clé dans sa propre table, supprimant la dépendance partielle.