Algorithme de décomposition
Méthode : Décomposition 0NF->1NF
Soit R une relation avec la clé primaire pk. Si R contient un attribut non atomique, alors R est décomposée en R1 et R2, tel que :
R1 est R moins l'attribut a
R2 est composé de pk et de a, avec (pk,a) clé primaire de R2 et R2.pk clé étrangère vers R1.pk
R(#pk,a,b,...)
avec a
non atomique se décompose en :
R1(#pk,b,...)
R2(#pk=>R1,#a)
Fondamental : Décomposition > 1NF
Pour les NF supérieures à 1, afin de normaliser une relation R on réalise une décomposition en R1 et R2 pour chaque DFE responsable d'un défaut de normalisation tel que :
la partie gauche de la DFE :
devient la clé primaire de R2
devient une clé étrangère de R1 vers R2
la partie droite de la DFE
est enlevée de R1
est ajoutée comme attributs simples de R2
Méthode : Décomposition 1NF->2NF
Soit R une relation comportant une clé composée de k1 et k1'. Si R contient une DFE de k1' vers des attributs n'appartenant pas à la clé, alors R est décomposée en R1 et R2, tel que :
R1 est R moins les attributs déterminés par k1' et avec k1' clé étrangère vers R2
R2 est composée de k1' et des attributs qu'elle détermine, avec k1' clé primaire de R2
R(#pk,k1,k1',a,b,c,...)
avec (k1,K1') clé et k1'→a,b se décompose en :
R1(#pk,k1,k1'=>R2,c,...)
R2(#k1',a,b)
Méthode : Décomposition 2NF->3NF
Soit R une relation comportant une DFE de a vers b qui n'appartiennent pas à une clé, alors R est décomposée en R1 et R2, tel que :
R1 est R moins les attributs déterminés par a et avec a clé étrangère vers R2
R2 est composée de a et des attributs qu'elle détermine, avec a clé primaire de R2
R(#pk,a,b,c,...)
avec a→b se décompose en
R1(#pk,a=>R2,c,...)
R2(#a,b)