Première forme normale

Définition1NF

Une relation est en 1NF[1] si elle possède au moins une clé et si tous ses attributs sont atomiques.

DéfinitionAttribut atomique

Un attribut est atomique si il ne contient qu'une seule valeur pour un tuple donné, et donc s'il ne regroupe pas un ensemble de plusieurs valeurs.

ExempleAvoir plusieurs métiers

Soit la relation Personne instanciée par deux tuples :

Lire le code
1
Personne(#Nom, Profession) 
1
(Dupont, Géomètre)
2
(Durand, Ingénieur-Professeur)

La relation n'est pas en 1NF, car l'attribut Profession peut contenir plusieurs valeurs.

Pour que la relation soit en 1NF, on pourrait par exemple ajouter Profession à la clé et faire apparaître deux tuples pour Durand, on obtiendrait :

Lire le code
1
Personne(#Nom, #Profession) 
1
(Dupont, Géomètre)
2
(Durand, Ingénieur)
3
(Durand, Professeur)

Une autre solution aurait été d'ajouter un attribut ProfessionSecondaire. On obtiendrait ainsi :

Lire le code
1
Personne(#Nom, Profession, ProfessionSecondaire) 
1
(Dupont, Géomètre, Null)
2
(Durand, Ingénieur, Professeur)

RemarqueRelativité de la notion d'atomicité

L'atomicité d'un attribut est souvent relative : on peut décider qu'un attribut contenant une date n'est pas atomique (et que le jour, le mois et l'année constituent chacun une valeur), ou bien que l'attribut est de domaine date et donc qu'il est atomique.

FondamentalÉnoncer les clés

Le modèle relationnel impose qu'une relation ait une clé, donc la condition "est en 1NF si elle possède une clé" est superflue (au pire la relation est "toute clé").

Il est néanmoins fondamental d'avoir identifié les clés au début du processus de normalisation.