Troisième forme normale

Définition3NF

Une relation est en 3NF[1] si elle est en 2NF[2] et si tout attribut n'appartenant à aucune clé candidate ne dépend directement que de clés candidates.

C'est à dire que toutes les DFE[3] vers des attributs n'appartenant pas à une clé, sont issues d'une clé.

ExempleÉchelle de salaire et de prime

Soit la relation Profession :

1
Profession(#Profession, Salaire, Prime) 

Soit les DF suivantes sur cette relation :

  • Profession→Salaire

  • Profession→Prime

  • Salaire→Prime

Cette relation n'est pas en 3NF car Salaire, qui n'est pas une clé, détermine Prime.

Pour avoir un schéma relationnel en 3NF, il faut décomposer Profession :

1
Profession(#Profession, Salaire=>Salaire)
2
Salaire(#Salaire, Prime)

Ce schéma est en 3NF, car Prime est maintenant déterminé par une clé.

On remarque que cette décomposition préserve les DF, car par transitivité, Profession détermine Salaire qui détermine Prime, et donc Profession détermine toujours Prime.

AttentionClé candidate

La définition concerne toutes les clés candidates et non uniquement la clé primaire ( SQL avancé : Programmation et techniques avancées[4], p.27).

Fondamental

Il est souhaitable que les relations logiques soient en 3NF. En effet, il existe toujours une décomposition sans perte d'information et préservant les DF d'un schéma en 3NF. Si les formes normales suivantes (BCNF[5], 4NF[6] et 5NF[7]) assurent un niveau de redondance encore plus faible, la décomposition permettant de les atteindre ne préserve plus systématiquement les DF.

RemarqueLimite de la 3NF

Une relation en 3NF permet des dépendances entre des attributs n'appartenant pas à une clé vers des parties de clé.

Complément3NF et 2NF

Une relation en 3NF est forcément en 2NF car :

  • Toutes les DFE vers des attributs n'appartenant pas à une clé sont issues d'une clé, ce qui implique qu'il n'existe pas de DFE, issues d'une partie de clé vers un attribut qui n'appartient pas à une clé.

  • Il ne peut pas non plus exister de DFE issues d'une partie de clé vers un attribut appartenant à une clé, par définition de ce qu'une clé est un ensemble minimum.

On n'en conclut qu'il ne peut exister de DFE, donc a fortiori pas de DF[8], issues d'une partie d'une clé, et donc que toutes les DF issues d'une clé sont élémentaires.