Vous êtes sur la page 1sur 13

Séance de Cours

LFIG 2

Chapitre4
La normalisation

Enseignant : MR Kamel Garrouch


2021-2022
I. Objectif de la normalisation
L’objectif de la normalisation est de définir un schéma de relations permettant d’éviter :

la redondance de données


les incohérences lors des mises à jour
les anomalies lors d’insertion et/ou suppression

2
I. Objectif de la normalisation
Exemple
Une entreprise de vente de bateaux souhaite constituer un système d’information relatif
à son activité. Soit la relation suivante :

Achats (IdClient, NomClient, PrenomClient, AdresseClient, ImmatriculationBateau,


ModeleBateau, LongueurBateau, DateAchat, MontantAchat)

Problèmes potentiels
•Redondance de données : une personne qui achète plusieurs bateaux

•Incohérence suite à une MAJ : une personne qui change d’adresse

•Anomalies lors d’insertion/suppression: un client potentiel ne peut être enregistré


dans la BD s’il n’a pas encore acheté de bateaux ; lorsqu’un client vend son bateau,
il est supprimé du système d’information
3
II. Les Dépendances Fonctionnelles (DF)
Soient X et Y deux attributs d’une relation R :

X →Y : Y dépend fonctionnellement de X ou X détermine fonctionnellement Y, si et


seulement si pour une valeur de X, il existe une et une seule valeur de Y.

A est dite source de la dépendance et B la cible.


Exemple

Soit la relation Employé (Nºidentité, Prénom, Nom, Adresse)


NºIdentité → Prénom
NºIdentité →Nom
NºIdentité →Adresse
mais
Adresse → NºIdentité : plusieurs employés peuvent avoir la même adresse

4
II. Les Dépendances Fonctionnelles (DF)
II.1 Propriétés des DF (Axiomes d'Amstrong)
La Réflexivité : A→ A et s'il existe B inclus dans A alors A → B

L'augmentation : Si A → B et s’il existe C / A alors A,C → B

La Transitivité : Si A  B et B C alors A C.

La pseudo-transivité : si A → B et B,C → D alors A,C → D

L'union : si A → B et A → C alors A → B,C

La décomposition : si A → B et C inclus dans B alors A → C

5
II. Les Dépendances Fonctionnelles (DF)
II.2 Les dépendances fonctionnelles élémentaires

On dit qu'il y a une dépendance fonctionnelle élémentaire entre A et B si et seulement si


il n’existe aucun attribut A' inclus dans A tel que A'→B.

Exemple:

Employé (code_emp, code_dep, nom_emp)

Code_emp, code_dep → nom_emp n'est pas élémentaire car


code_emp → nom_emp.

Une DF a, b → c est élémentaire si ni a → c, ni b → c ne sont des DF.

6
II. Les Dépendances Fonctionnelles (DF)
II.3 Les dépendances fonctionnelles directes
Une DF A→B est dite directe si et seulement si elle n’est pas déduite par transitivité,
c’est-à-dire il n'existe aucun attribut X tel que A → X et X → B.

Exemple:
Produit (codp, désignation, cod_tva, taux_tva)

La dépendance suivante : codp → taux_tva n'est pas directe car


codp → cod_tva et
cod_tva → taux_tva.

7
III. Processus de Normalisation
Le processus de Normalisation conduit à la décomposition de la relation initiale en un
certain nombre d'autres relations en appliquant les règles de Normalisation
III.1 La première forme normale (1NF)

Une relation est dite en Première Forme Normale si tous ses attributs sont atomiques ;

Aucun des attributs ne doit être une relation entre «sous-attributs» (pas de colonnes
dans une colonne).
Exemple :
Employé (codemp, nom_emp, caractéristiques)
codemp nomemp caractéristiques
E01 Ali Analyste, 12/01/98
E02 Mohamed Programmeur, 30/11/98

On constate que les valeurs de l'attribut caractéristiques sont hétérogènes


(appartiennent à plusieurs domaines et donc non atomiques).
8
III. Processus de Normalisation
III.1 La première forme normale (1NF)
Pour que la Relation soit en 1NF elle doit avoir la forme suivante :

Employé (codemp, nom_emp, fonction, date_embauche)

codemp nomemp fonction Date_embauche

E01 Ali Analyste, 12/01/98

E02 Mohamed Programmeur, 30/11/98

9
III. Processus de Normalisation
III.2 La deuxième forme normale (2NF)
Une Relation est dite en 2NF si et seulement si
Elle est en 1NF.
Tous ses DF sont élémentaires (Tout attribut n’appartenant pas à une clé ne dépend
pas d’une partie de la clé de R)
Exemple :
Stock (prod_id, dep_id, libellé, qté)
prod_id, dep_id qté
Stock n’est pas en 2NF.
prod_id libellé

Décomposition:
Produit (prod_id, libellé) 2NF
Stock (#prod_id, dep_id, qté) 2NF

2NF permet de supprimer certaines redondances (libellé).


10
III. Processus de Normalisation
III.3 Troisième forme normale
Une Relation est dite en 3NF si et seulement si
Elle est en 2NF.
Toutes les DFs sont directes ; il n’existe pas de Dépendance Fonctionnelle entre 2
attributs non-clés
Exemple1 :
Facturation (NuméroFacture, DateFacture, TotalFacture, NuméroClient, NomClient)
NuméroClient NomClient
NuméroFactureNuméroClient
NuméroFactureNomClient => DF indirect

En effet :
La clé est NuméroFacture. R est en 2NF.
NuméroFactureNuméroClient NomClient => DF par transitivité. 11
III. Processus de Normalisation
III.3 Troisième forme normale
La solution en 3NF :
R1 = (NuméroFacture, DateFacture, TotalFacture, # NuméroClient)
R2 = (NuméroClient, NomClient)

Exemple 2:

Produit (codp, désignation, cod_tva, taux_tva).

Cette relation est en 1NF, en 2NF mais elle n'est pas en 3NF car
Codp taux_tva est une DF transitive (codp cod_tva et cod_tva taux_tva).

Solution:
Décomposition de la Relation en 2 Relations :
Produit (codp, designation, #cod_tva)
Tva (cod_tva, taux_tva).
12
Merci pour votre
Attention

Vous aimerez peut-être aussi