← Retour à la référence SQL

NORMALISATION

Catégorie : conception

Processus de structuration d'une base de données pour éliminer les redondances et les anomalies d'insertion, mise à jour et suppression. Elle se fait par étapes (formes normales : 1FN, 2FN, 3FN, etc.).

📝 Syntaxe

N/A (Concept de modélisation)

💡 Exemples

Table NON normalisée : Commandes(id, client_nom, client_adresse, produit1, prix1, produit2, prix2...)
Redondance des infos client, limite du nombre de produits.
Tables NORMALISÉES : Clients(id, nom, adresse), Commandes(id, client_id), Lignes_Commande(commande_id, produit_id, quantite), Produits(id, nom, prix)
Pas de redondance, structure flexible.

🎯 Exercice

Une table 'Cours_Eleves' contient : (eleve_id, eleve_nom, cours_id, cours_nom, professeur). Quelle anomalie peut survenir ? Proposez une normalisation en 1FN et 3FN.

Voir la solution
Anomalie : si le nom d'un cours change, il faut le modifier sur toutes les lignes des élèves inscrits. 1FN : déjà respectée si valeurs atomiques. 3FN : séparer en Élèves(id, nom), Cours(id, nom, professeur_id), Professeurs(id, nom), Inscriptions(eleve_id, cours_id).

⚠️ Pièges courants

  • Sur-normaliser (trop de tables, jointures complexes qui nuisent aux performances).
  • Ne pas normaliser assez (données redondantes, incohérences).
Pixel