UAA 7    Base de données

Les lois de normalisation des tables SQL

La normalisation est un ensemble de règles permettant d’organiser les données dans une base SQL afin d’éviter les doublons, les incohérences et les anomalies de mise à jour.

Les trois formes normales les plus utilisées sont : 1NF, 2NF et 3NF.

1. Première forme normale (1NF)

Une table est en 1NF si :

Exemple non conforme


Client | Commandes
-------------------------
Alice  | 12, 15, 18
  

Version conforme (1NF)


Client | Commande
-------------------------
Alice  | 12
Alice  | 15
Alice  | 18
  

2. Deuxième forme normale (2NF)

Une table est en 2NF si :

Problème typique : une colonne dépend seulement d’une partie de la clé primaire (dans une clé composée).

Exemple non conforme


(Produit, Commande) | PrixProduit | Quantité
--------------------------------------------
Stylo, 12           | 2.50        | 10
Stylo, 15           | 2.50        | 5
  

Ici, PrixProduit dépend uniquement de Produit, pas de la clé complète (Produit + Commande).

Version conforme (2NF)


Table Produits :
Produit | Prix
----------------
Stylo   | 2.50

Table CommandesProduits :
Produit | Commande | Quantité
--------------------------------
Stylo   | 12       | 10
Stylo   | 15       | 5
  

3. Troisième forme normale (3NF)

Une table est en 3NF si :

Exemple non conforme


ClientID | Ville     | CodePostal
---------------------------------
1        | Paris     | 75000
2        | Lyon      | 69000
  

Ici, Ville dépend de CodePostal, pas directement de ClientID.

Version conforme (3NF)


Table Clients :
ClientID | CodePostal
----------------------
1        | 75000
2        | 69000

Table Villes :
CodePostal | Ville
----------------------
75000      | Paris
69000      | Lyon
  

Résumé