2FN & 3FN
La 2FN interdit qu'un attribut dépende d'une partie seulement d'une clé composée ; la 3FN interdit qu'il dépende d'un autre attribut non clé. Ensemble, elles suppriment l'essentiel des redondances.
- 2NF
- 3NF
- dépendance partielle
- dépendance transitive
Syntaxe
2FN : 1FN + tout attribut non clé dépend de toute la clé3FN : 2FN + aucun attribut non clé ne dépend d'un autre attribut non cléExemple
✗ 2FN : ligne(num_commande, ref_produit, libelle_produit, quantite) clé primaire = (num_commande, ref_produit) ref_produit → libelle_produit : dépend d'une partie de la clé✓ ligne(num_commande, ref_produit, quantite) + produit(ref_produit PK, libelle)✗ 3FN : commande(num_commande PK, num_client, nom_client) num_commande → num_client → nom_client : dépendance transitive✓ commande(num_commande PK, num_client FK → client) + client(num_client PK, nom)À retenir
- La 2FN ne concerne que les tables à clé composée : une table à clé simple déjà en 1FN est automatiquement en 2FN.
- Formule à retenir : chaque attribut non clé dépend de la clé, de toute la clé, et de rien d'autre que la clé.
- Les anomalies évitées sont concrètes : modifier le libellé d'un produit dans cent lignes, ou perdre le nom d'un client en supprimant sa dernière commande.
- Piège : prendre une copie volontaire pour une violation. prix_vente dans une ligne de commande ne dépend pas de ref_produit seul : c'est le prix payé ce jour-là, il dépend de toute la clé.
Voir aussi
- 1FN — Première forme normaleUne table est en première forme normale si chaque colonne contient une seule valeur atomique et qu'aucun groupe de colonnes ne se répète. C'est la condition de base pour interroger en SQL.
- FNBC (forme normale de Boyce-Codd)Une table est en FNBC si toute dépendance fonctionnelle part d'une clé candidate. Plus stricte que la 3FN, elle n'en diffère qu'avec plusieurs clés candidates composées qui se chevauchent.
- Dénormalisation maîtriséeDénormaliser, c'est réintroduire une redondance contrôlée pour accélérer des lectures fréquentes. On le fait après avoir normalisé et mesuré, avec un mécanisme qui garde la copie juste.