Troisième forme normale

3NF

Une relation est en 3NF si elle est en 2NF 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 vers des attributs n'appartenant pas à une clé, sont issues d'une clé.

Échelle de salaire et de prime

Soit la relation Profession :

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 :

Profession(#Profession, Salaire=>Salaire)
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.

Clé candidate

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

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, 4NF et 5NF) assurent un niveau de redondance encore plus faible, la décomposition permettant de les atteindre ne préserve plus systématiquement les DF.

AccueilCours > Formes normales > Troisième forme normale< PrécédentSuivant >