Deuxième forme normale
Définition : 2NF
Exemple : Echelle de salaire
Soit la relation Personne :
Personne(#NumeroEmployé, #Profession, Nom, Prénom, Salaire)
Soit les DF suivantes sur cette relation :
NumeroEmployé, Profession→Nom
NumeroEmployé, Profession→Prénom
NumeroEmployé, Profession→Salaire
Profession→Salaire
Personne n'est pas en 2NF car Profession (une partie de clé) détermine Salaire (un attribut qui n'appartient pas à une clé)
Pour avoir un schéma relationnel en 2NF, il faut alors décomposer Personne en deux relations :
Personne(#NumeroEmployé, #Profession=>Profession, Nom, 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)
NumeroEmployé, Profession→Profession (par Réflexivité)
NumeroEmployé, 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.