Imaginez un tableau universitaire dans lequel une cellule répertorie tous les cours d’un étudiant séparés par des virgules, et où le téléphone et l’adresse sont mélangés. Si quelqu'un change de nom de famille ou déménage, vous devrez trouver et réparer cette chaîne à de nombreux endroits. La normalisation est la division délibérée des données en tables et relations pour supprimer les duplications, éviter les contradictions et simplifier la maintenance de la base de données.
La règle 1NF est simple : chaque cellule contient une valeur indivisible d'un domaine. Pas de « listes séparées par des virgules » dans un champ – utilisez des lignes séparées ou un tableau séparé pour cela.
2NF est important lorsque la clé primaire est composite. Chaque attribut non clé doit dépendre de la clé entière et non d’une partie de celle-ci. Si la clé est le couple « étudiant + cours », alors la durée du cours dépend uniquement du cours : la stocker sur la ligne d'inscription revient à copier la même valeur et à risquer une dérive.
3NF interdit les dépendances transitives : une colonne non clé ne doit pas dépendre d'une autre colonne non clé. Si un étudiant a « cityid » et que « cityname » est dupliqué à côté, le nom de la ville dépend de l'identifiant de la ville, et non de la clé primaire de l'étudiant. Le nom doit résider dans une table de recherche distincte.