Deuxième forme normale
Introduction
La deuxième forme normale permet d'éliminer les dépendances entre des parties de clé et des attributs n'appartenant pas à une clé.
Définition : 2NF
Exemple : Echelle de salaire
Soit la relation Personne :
Personne(#Nom, #Profession, Salaire)
Soit les DF suivantes sur cette relation :
Nom,Profession→Salaire
Profession→Salaire
On note alors que la première DF est issue de la clé et qu'elle n'est pas élémentaire (puisque Profession détermine Salaire) et donc que le schéma n'est pas en 2NF.
Pour avoir un schéma relationnel en 2NF, il faut alors décomposer Personne en deux relations :
Personne(#Nom, #Profession=>Profession, Prenom)
Profession(#Profession, Salaire)
On remarque que ce schéma est en 2NF (puisque Salaire dépend maintenant fonctionnellement d'une clé et non plus d'une partie de clé).
On remarque aussi que la décomposition a préservé les DF, puisque nous avons à présent :
Profession→Salaire (DF de la relation Profession)
Nom,Profession→Profession (par Réflexivité)
Nom,Profession→Salaire (par Transitivité)
Attention :
La définition de la 2NF doit être vérifiée pour toutes les clés candidates et non seulement la clé primaire (dans le cas où il y a plusieurs clés).
Remarque :
Si toutes les clés d'une relation ne contiennent qu'un unique attribut, et que la relation est en 1NF, alors la relation est en 2NF.