Première forme normale
Définition : 1NF
Définition : Attribut 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.
Exemple : Avoir plusieurs métiers
Soit la relation Personne instanciée par deux tuples :
Personne(#Nom, Profession)
(Dupont, Géomètre)
(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 :
Personne(#Nom, #Profession)
(Dupont, Géomètre)
(Durand, Ingénieur)
(Durand, Professeur)
Une autre solution aurait été d'ajouter un attribut ProfessionSecondaire. On obtiendrait ainsi :
Personne(#Nom, Profession, ProfessionSecondaire)
(Dupont, Géomètre, Null)
(Durand, Ingénieur, Professeur)
Remarque : Relativité 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.