Retour au cours

Deuxième Forme Normale (2NF)

Principes Fondamentaux des Bases de Données : De Zéro à Héros

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)ProductNameQuantityPrice
100AKeyboard250
101AKeyboard150
  • ProductName et Price ne dépendent que de ProductID (une partie de la clé).
  • Quantity dé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 :

  1. Table Products : PK : ProductID. Contient ProductName et Price.
  2. Table OrderDetails : PK Composite : (OrderID, ProductID). Contient Quantity.

Désormais, ProductName dépend uniquement de la clé dans sa propre table, supprimant la dépendance partielle.