public:std-3:cm1:aspect_physique:2.2.5_normalisation_d_un_schema:formes_normales

Les Formes normales:

  • Restreignent les dépendances admises dans un schéma relationnel
  • Permettent d’éviter la duplication de l’information au sein des relations
  • Définissent une méthode de décomposition d’un schéma relationnel redondant en plusieurs schémas liés entre eux.
Dépendance fonctionnelle élémentaire (DFE)
  • Soit R un schéma relationnel
  • Soit X un ensemble d’attributs ⊆ R
  • Soit A un attribut de R
  • Il existe une DFE entre X et A ssi :
    • XA
    • Il n’existe aucun sous-ensemble YX tel que YA
2ème forme normale (2FN)
  • Un schéma R est en 2FN :
    • ssi la clé primaire de R est en DFE avec tous les autres attributs.
    • Donc : il n’y a pas d’attributs qui ne dépendent que d’une partie de la clé.
Exemple : Fournisseur(nom_f,composant_,adresse_f,prix) nom_fadresse_f nom_f,composantprix ⇒ Pas 2FN!!
  • Lorsqu’un schéma relationnel n’est pas en deuxième forme normale, il doit être normalisé:
Normalisation 2FN :
  • Pour obtenir un schéma 2FN,
    • on “découpe” la table selon les DFE trouvées.
  • La normalisation consiste
    • à créer une nouvelle table
    • pour chaque DFE de la table initiale.
  • Soit :

R(A1,...,Ai,...,An_,B1,...,Bj,...,Bm)

  • avec :

AiDFEBj A1,...,Ai,...,AnDFEB1,...,Bj1,Bj+1...,Bm

  • Alors le schéma de table doit être modifié comme suit :

R1(A1,...,Ai,...,An_,B1,...,Bj1,Bj+1...,Bm) R2(Ai_,Bj)

  • Attention,
    • même si aucun attribut ne dépend plus de la clé primaire initiale,
    • il est important de la conserver dans une table spécifique
    • (elle sert à “lier” les valeurs dispersées dans les différentes tables).
Exemple
  • Avant:

Fournisseur(nom_f,composant_,adresse_f, prix) nom_fadresse_f nom_f, composantprix

  • Après:

Catalogue(nom_f,composant_,prix) Fournisseur(nom_f_,adresse_f)

Remarque : le schéma est maintenant constitué de deux tables.
  • Les tables ont un attribut commun : nom_f (clé primaire de la table Fournisseur).
  • La clé primaire de la table des Fournisseurs est dupliquée dans la table des prix (appelée ici Catalogue).
  • On dit que nom_f est une clé étrangère de la table des prix (l’attribut fait référence à la clé primaire d’une autre table, en l’occurrence la table des fournisseurs - voir formes_normales).

Previous : Tables mal construites Up : 2.2.5 Normalisation d'un schéma

  • public/std-3/cm1/aspect_physique/2.2.5_normalisation_d_un_schema/formes_normales.txt
  • Dernière modification : 2016/09/02 18:18
  • de edauce