Aller au contenu
Normalisation

1FN — Première forme normale

Une 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.

  • atomicité
  • 1NF
  • redondance
  • multivalué

Syntaxe

Modèle
Chaque cellule contient une seule valeur atomiquePas de liste « a, b, c » ni de colonnes répétées tel1, tel2, tel3

Exemple

Exemple concret
✗ etudiant(num_etudiant PK, nom, competences)  (E01, Ana, 'Python, SQL, Excel')  → impossible de compter proprement qui maîtrise SQL✓ etudiant(num_etudiant PK, nom)  competence(code_competence PK, libelle)  maitriser(num_etudiant FK → etudiant, code_competence FK → competence)    clé primaire = (num_etudiant, code_competence)

À retenir

  1. Les colonnes répétées (tel1, tel2, tel3) limitent arbitrairement le nombre de valeurs et obligent à chercher dans trois colonnes : déplacez-les dans une table à part.
  2. Un MCD bien construit, sans attribut multivalué, donne directement des tables en 1FN.
  3. L'atomicité dépend de l'usage : une adresse en un seul bloc reste acceptable si l'on ne cherche jamais par ville.
  4. Piège : stocker une liste séparée par des virgules pour aller vite. Les filtres deviennent des LIKE fragiles : '%SQL%' trouve aussi « NoSQL ».

Voir aussi