* Lorsqu’un schéma relationnel n’est pas en troisième forme normale, il doit être normalisé:
- On crée une table pour chaque DFD trouvée au sein des attributs n'appartenant pas à la clé.
Soit : R(A1,...,Am_,B1,...,Bi,...,Bj,...,Bn)R(A1,...,Am––––––––––––,B1,...,Bi,...,Bj,...,Bn) avec : A1,...,AmDFD→B1,...,Bi,...,Bj−1,Bj+1,...,BnA1,...,AmDFD→B1,...,Bi,...,Bj−1,Bj+1,...,Bn BiDFD→BjBiDFD→Bj Alors : R1(A1,...,Am_,B1,...,Bi,...,Bj−1,Bj+1,...,Bn)R1(A1,...,Am––––––––––––,B1,...,Bi,...,Bj−1,Bj+1,...,Bn) R2(Bi_,Bj)R2(Bi–––,Bj)
Comme précédemment, il est important de conserver la clé primaire de la table initiale si elle permet d'associer les valeurs dispersées dans les tables.
Avant :
- Commande (num_commande, nom_f, adresse_f, composant, quantité)
- avec :
- num_commande → nom_f, composant, quantité
- nom_f → adresse_f
Après :
- Commande (num_commande, nom_f, composant, quantité)
- Client (nom_f, adresse_f)
L’attribut nom_f est maintenant clé primaire de la table Client et clé étrangère de la table Commande.
Previous : 3eme_forme_normale_3fn Up : 2.2.5 Normalisation d'un schéma