top of page

NORMALISATION

Soit on fait un MCD (Modèle Conceptuel des Données), soit on fait une normalisation. On a vu le MCD dans la fiche sur la structuration de données, maintenant, on va voir la normalisation.

 

Une normalisation est une liste de variables que l'on souhaite voir figurer dans la base de données.

 

Les attributs de la normalisation doivent respecté 3 règles :

- 1ère forme normale (1NF) : il doit y avoir une colonne par variable.

 

Exemple :

fournisseurs(nom, adresses)

 

L'entité n’est pas en 1NF si on a plus de deux adresses pour un même nom de fournisseur.

 

Solution :

fournisseurs(nom, id_adresse)

adresses_fournisseur(id_adresse, adresse)

 

On a bien un id unique par adresse.

 

- 2ème forme normale (2NF) : il ne doit pas y avoir dans une table un attribut qui ne dépend que d'une partie de la clé.

 

Exemple :

composer(id_commande, id_produit, quantité, prix)

 

La clé est composée de la commande et du produit. L'entité n’est pas en 2NF car le prix ne dépend que du produit. 

 

Solution :

composer(id_commande, id_produit, quantité)

produits(id_produit, prix)

 

- 3ème forme normale (3NF) : il ne doit pas y avoir de relation de dépendance fonctionnelle entre des attributs qui ne font pas partie d'une clé.

 

Exemple :

communes(id, nom, département, région)

 

L'entité n’est pas en 3NF car la région est déterminé à partir du département. On a donc une dépendance fonctionnelle. 

 

Solution :

communes(id, nom_commune, nom_département)

départements(nom_département, région)

 

 

 

Pour éviter les redondances (répétition d’une même information sur plusieurs lignes), on peut décomposer une relation en la remplaçant par plusieurs relations.

 

Exemple :

Entité(id_commande, id_client, id_produit, prix)

 

Avec la décomposition, la relation Entité devient

Entité1(id_commande, id_client)

Entité2(id_produit, prix)

Entité3(id_commande, id_produit)

 

On crée une entité par clé, plus une entité liant les clés.

 

Une décomposition est sans perte d’information quand on peut reconstituer l'information d’origine par jointure des entités décomposées. Attention, il ne faut pas faire de décomposition avec perte d'informations.

bottom of page