Aller au contenu principal

Formes normales

Les formes normales sont des règles ou des critères utilisés dans la conception de bases de données relationnelles pour organiser les données de manière à réduire la redondance et améliorer l'intégrité des données. Elles permettent de structurer une base de données de façon à minimiser les anomalies de mise à jour, d'insertion et de suppression. Il existe plusieurs formes normales, chacune apportant des améliorations spécifiques par rapport à la précédente.

1NF Première forme normale​

La première forme normale impose les conditions suivantes :

  • Atomicité : Chaque colonne d'une table doit contenir des valeurs atomiques, c'est-à-dire indivisibles. Par exemple, une colonne ne doit pas contenir une liste de valeurs ou une valeur composite.
  • Absence de répétition : Les enregistrements doivent être uniques, et chaque colonne doit contenir un seul type de données.
ImmatriculationModèleCaractéristiques
TT-802-AXNissan4 roues motrices, ABS, toit ouvrant, peinture verte, 65 l, 140 cv
QS-123-DBPeugeotjantes aluminium, peinture bleu, 50 l, 110 cv
IDProduitIngrédients
1Sun Secureoctocrylène, dioxyde de titane
2UV Screenacide para-aminobenzoïque, taurate copolymer, ceteareth-20

2NF Deuxième forme normale​

La deuxième forme normale est basée sur la première (ANF) et ajoute la condition suivante :

  • Dépendance fonctionnelle totale : Tous les attributs non clés doivent dépendre entièrement de la clé primaire. En d'autres termes, il ne doit pas y avoir de dépendances partielles entre les colonnes. Si une colonne dépend seulement d'une partie de la clé primaire (dans le cas où celle-ci est composée), la table n'est pas en 2NF.
N° CommandeN° ProduitNomClientAdresseClientQuantité
1101Dupont10 rue du Marché2
1102Dupont10 rue du Marché1
2103Martin22 avenue de Paris5
3102Grosjean10 place Bleue3

La clé primaire de la table est composée de CommandeID et ProduitID

NomClient et AdresseClient dépendent uniquement de CommandeID, ce qui signifie qu'ils ne dépendent pas entièrement de la clé primaire composée (CommandeID, ProduitID). Ils dépendent seulement de la partie CommandeID.

3NF Troisième forme normale​

La troisième forme normale repose sur la deuxième (2NF) et ajoute la condition suivante :

  • Absence de dépendance transitive : Aucune colonne non clé ne doit dépendre d'une autre colonne non clé. Autrement dit, chaque colonne non clé doit dépendre directement de la clé primaire.
EmployéIDNomEmployéPosteSalaireDépartementIDNomDépartement
1DupontIngénieur60000101Informatique
2MartinChef de projet75000102Gestion
3DurandTechnicien45000101Informatique

Dans cette table, l'attribut NomDépartement dépend de DépartementID, qui lui-même dépend de EmployéID. Cette situation crée une dépendance transitive : EmployéID → DépartementID → NomDépartement. Par conséquent, la table ne respecte pas la 3NF, car NomDépartement dépend indirectement de la clé primaire EmployéID via une autre colonne non clé (DépartementID).

BCNF Forme normale de Boyce-Codd​

La forme normale de Boyce-Codd est une extension de la 3NF et traite certains cas particuliers où la 3NF ne suffit pas. Elle impose :

  • Dépendance fonctionnelle stricte : Pour chaque dépendance fonctionnelle, l'ensemble des attributs sur lequel une colonne dépend doit être une super-clé de la table.

4NF Quatrième forme normale​

La quatrième forme normale traite des dépendances multivaluées :

  • Aucune dépendance multivaluée : Si un attribut dans une table dépend de la clé primaire, il ne doit pas y avoir de dépendance entre cet attribut et un autre ensemble d'attributs indépendant.

5NF Cinquième forme normale​

La cinquième forme normale traite de la décomposition en respectant les jointures :

  • Aucune dépendance de jointure : Une table doit être décomposable en plus petites tables sans perte d'informations lors des jointures.

6NF Sixième forme normale​

La sixième forme normale, rarement utilisée, est destinée aux bases de données temporelles et impose une décomposition encore plus fine pour gérer les variations dans le temps.