3.2. NORMALISATION
49
Autrement dit, une relation est en troisième forme normale si, et seulement si, elle est en deuxième
forme normale et si tout attribut n’appartenant pas à la clef ne dépend pas d’un attribut non-clé.
Une relation peut être en troisième forme normale par rapport à une de ses clés candidates et ne pas
l’être par rapport à une autre. Une relation en deuxième forme normale avec au plus un attribut qui
n’appartient pas à la clé primaire est, par définition, forcément en troisième forme normale.
Soit, par exemple, le schéma de relation suivant : CommandeLivre(Num-Commande, Num-Client,
Titre, Auteur, Quantité, Prix). Comme nous l’avons vu plus haut, cette relation est bien en deuxième
forme normale. Par contre, les attributs Auteur et Prix dépendent de l’attribut Titre. La relation n’est donc
pas en troisième forme normale. Pour la normaliser, il faut la décomposer de la manière suivante :
– CommandeLivre(Num-Commande, Num-Client, Num-Livre, Quantité)
– Livre(Num-Livre, Titre, Auteur, Prix)
Remarques importantes
Soit les schémas de relation suivant :
– Ville(Code-Postal, Nom, Population)
– Personne(Nom, Prénom, Téléphone)
Dans ces relations, on suppose les dépendances fonctionnelles directes suivante :
– Code-Postal → Nom
– Code-Postal → Population
– Nom, Prénom → Téléphone
Dans la section 2.6.2, nous avons dit qu’il est souvent préférable de choisir un identifiant arbitraire
de type entier. Cette pratique semble aller à l’encontre de la troisième forme normale. Par exemple, la
relation Ville(num-ville, Nom, Code-Postal, Population) n’est pas en troisième forme normale si l’on
suppose que les attributs Nom et Population dépendent toujours de l’attribut Code-Postal. Cependant,
comme nous l’avons dit dans l’introduction, une dépendance fonctionnelle est la manifestation d’une
notion sémantique, pas d’une notion formelle ou absolue. Dans le cas du code postal, nous avons déjà
expliqué (cf. note page 33) qu’il n’existe pas de relation systématique entre le code postal et le code
du département ou la co