0% ont trouvé ce document utile (0 vote)
47 vues23 pages

Chapitre 4 - Normalisation

Le chapitre traite de la normalisation des bases de données relationnelles pour résoudre les anomalies de mise à jour, de suppression et d'insertion. Il explique les dépendances fonctionnelles et les différentes formes normales (1FN, 2FN, 3FN) nécessaires pour optimiser la structure des données. Des exemples illustrent comment décomposer les relations pour respecter ces formes normales.

Transféré par

Amina Abbassi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
47 vues23 pages

Chapitre 4 - Normalisation

Le chapitre traite de la normalisation des bases de données relationnelles pour résoudre les anomalies de mise à jour, de suppression et d'insertion. Il explique les dépendances fonctionnelles et les différentes formes normales (1FN, 2FN, 3FN) nécessaires pour optimiser la structure des données. Des exemples illustrent comment décomposer les relations pour respecter ces formes normales.

Transféré par

Amina Abbassi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 4

La normalisation

© 2021-2022 \ S. HAIDRAR 1
Optimiser la base
La normalisation
Problème:
Soit la base de données relationnelles suivante:

Livraison(NumFor, AdrFor, NumProd, TypeProd, QteLiv)

NumFor AdrFor NumProd TypeProd QteLiv Sémantique de la table:


3 CASA 52 cartouche 12
le fournisseur numéro NumFor,
22 Fes 10 ordinateur 6 domicilié à l’adresse adrFor,
a livré au total la quantité QteLiv
22 Fes 25 papier 210
du produit numéro NumProd qui est
3 CASA 25 papier 560 de type TypeProd

3 CASA 10 ordinateur 300


25 Rabat 77 imprimante 45

Question: Quels sont les problèmes posés par cette table?????

© 2021-2022 \ S. HAIDRAR 2
Optimiser la base
La normalisation
Anomalie de mise à jour
redondance de données 
des problèmes et risque d’incohérence lors des modifications
NumFor AdrFor NumProd TypeProd QteLiv
3 CASA 52 cartouche 12
22 Fes 10 ordinateur 6
22 Fes 25 papier 210
3 CASA 25 papier 560
3 CASA 10 ordinateur 300
25 Rabat 77 imprimante 45

Si le fournisseur numéro 3, change d’adresse, il faut changer toutes


Ses occurrences au risque de provoquer des incohérences de la table
© 2021-2022 \ S. HAIDRAR 3
Optimiser la base
La normalisation
Anomalie de suppression
si on supprime un tuple, on perd d’autres informations!!!!

NumFor AdrFor NumProd TypeProd QteLiv


3 CASA 52 cartouche 12
22 Fes 10 ordinateur 6
22 Fes 25 papier 210
3 CASA 25 papier 560
3 CASA 10 ordinateur 300
25 Rabat 77 imprimante 45

Si la livraison du produit « imprimante » est annulée, on supprime


également les informations qui concernent le fournisseur!!

© 2021-2022 \ S. HAIDRAR 4
Optimiser la base
La normalisation
Anomalie d’insertion
On ne peut pas insérer un fournisseur, sans avoir le produit!!
NumFor AdrFor NumProd TypeProd QteLiv
3 CASA 52 cartouche 12
22 Fes 10 ordinateur 6
22 Fes 25 papier 210
3 CASA 25 papier 560
3 CASA 10 ordinateur 300
25 Rabat 77 imprimante 45
55 Kénitra ???????? ???????? ??????

On ne peut pas insérer un nouvel fournisseur sans qu’il n’ait livré


Un produit!!!! Même chose pour le produit!!!
© 2021-2022 \ S. HAIDRAR 5
Optimiser la base
La normalisation
Question: comment améliorer la qualité d’une relation pour éviter:
les anomalies de maj
les anomalies de suppression
les anomalies d’insertion

Solution:
la normalisation
Avec quel outil?????

Les dépendances fonctionnelles


© 2021-2022 \ S. HAIDRAR 6
Normalisation d'un schéma relationnel

Dépendances fonctionnelles (DF)


 Soient X et Y deux attributs (ou groupe d'attributs) d'une même relation.
 Il y a dépendance fonctionnelle entre X et Y (ou Y dépend de X) si la valeur
de X détermine celle de Y.
 On note: X  Y
• X détermine Y
• Y dépend fonctionnellement de X
• Y dépend de X
Exemples: Etudiant ( Matricule, Nom, Prénom, Moyenne)
Matricule  Nom, Prénom, Moyenne

© 2021-2022 \ S. HAIDRAR 7
Analyse de données
Dépendance Fonctionnelle
Exemple:
Livraison(NumFor, AdrFor, NumProd, TypeProd, QteLiv)

Contient les DF suivantes :

• NumFor → AdrFor
• NumProd → TypeProd NumFor AdrFor NumProd TypeProd QteLiv
3 CASA 52 cartouche 12
22 Fès 10 ordinateur 6
22 Fès 25 papier 210
3 CASA 25 papier 560

Manifestation des 2 DF 3 CASA 10 ordinateur 300


sur l’instance de la table 25 Rabat 77 imprimant 45
e

© 2021-2022 \ S. HAIDRAR 8
Analyse de données
Dépendance Fonctionnelle
Contre Exemple:
Livraison(NumFor, AdrFor, NumProd, TypeProd, QteLiv)

NumFor AdrFor NumProd TypeProd QteLiv


La DF:
NumFor → AdrFor 3 CASA 52 cartouche 12
N’est pas vérifiée dans 22 Fès 10 ordinateur 6
Cette intance de la table
22 Fès 25 papier 210
3 Kénitra 25 papier 560
3 CASA 10 ordinateur 300
25 Rabat 77 imprimante 45

© 2021-2022 \ S. HAIDRAR 9
Normalisation d'un schéma relationnel

Propriétés des DF
 Réflexivité: Y  X  X  Y

 Augmentation: X  Y  X , Z  Y, Z

 Transitivité: X  Y et Y  Z  X  Z

 Pseudo-transitivité: X  Y et Y, Z  T  X, Z  T

 Union: X  Y et X  Z  X  Y, Z

 Décomposition: X  Y et Z  Y  X  Z

N.B: La notation X,Y signifie X  Y

© 2021-2022 \ S. HAIDRAR 10
Normalisation d'un schéma relationnel

Pratique de la normalisation

 Normaliser un schéma relationnel d'une BD (l'ensemble des relations


de la BD) consiste à remplacer chaque relation du schéma par des
relations qui sont dans la forme normale (FN) voulue.

 Une FN représente une condition qu'une relation doit vérifier.

 Il existe plusieurs degrés de normalisation de la 1ère forme normale à la


5ème.

© 2021-2022 \ S. HAIDRAR 11
Normalisation d'un schéma relationnel

Première forme normale

 Une relation est en 1FN si tout attribut n'est pas décomposable


(multivaluée) càd que chaque attribut doit être atomique.
Exemple:
Livre (Cote, Titre, Auteurs) n'est pas en 1FN car l'attribut Auteurs est
décomposable (il s'agit de plusieurs auteurs).
Cette relation peut être décomposée en deux relations:
Livre (Cote, Titre)
Auteurs ( Cote, Auteur)

© 2021-2022 \ S. HAIDRAR 12
Normalisation d'un schéma relationnel

Première forme normale

Remarque
La jointure des deux nouvelles relations sur l'attribut Cote donnera
l'équivalent de la relation de départ:
Join (Livre, Auteurs, Livre.Cote = Auteurs.Cote)
Cette jointure permettra d'avoir, pour chaque livre, la Cote, le titre et les
auteurs.

© 2021-2022 \ S. HAIDRAR 13
Normalisation d'un schéma relationnel

Deuxième forme normale

 Une relation est en 2FN si:


 elle est en 1FN.
 chaque attribut non clé primaire est dépendant de la clé primaire
entière.
Exemple: Client (NumCli, Nom, Prénom, RueNum, CodPostale, Ville)
est en 2FN
Employé (Mat, CodeProjet, Nom, FonctionProjet)
n'est pas en 2FN: Mat  Nom

© 2021-2022 \ S. HAIDRAR 14
Normalisation d'un schéma relationnel

Normalisation en deuxième forme normale


 Théorème de décomposition sans perte d'informations (SPI):

Soit une relation R (A,B,C) où A, B et C sont des ensembles d'attributs

disjoints, avec B  C, alors:


R1 = Project(R, A, B)  R1(A, B)

R2 = Project(R,B, C)  R2 (B, C)

R(A, B, C) = Join(R1, R2, R1.B = R2.B)


En décomposant R en deux relation R1 et R2, on dit que l'on a
"extrait" la DF de R

© 2021-2022 \ S. HAIDRAR 15
Normalisation d'un schéma relationnel

Normalisation en deuxième forme normale


 Exemple 1: Normalisation en 2FN de la relation

Employé (Mat, CodeProjet, Nom, FonctionProjet)

Les dépendances de la relation sont:


Mat  Nom
CodeProjet, Mat  FonctionProjet

Le résultat de normalisation en 2FN est:


Employé(Mat, Nom)
Participation(Mat, CodeProjet, FonctionProjet)

© 2021-2022 \ S. HAIDRAR 16
Normalisation d'un schéma relationnel

Normalisation en deuxième forme normale

 Exemple 2: Normalisation en 2FN de la relation

Magasin(NumProd, Quantité, NumFour, Ville)

on a: NumProd, NumFour  Quantité

NumFour  Ville  La relation n'est pas en 2FN

Le résultat de la normalisation: Magasin (NumProd, NumFour, Quantité)

Fournisseur (NumFour, Ville)

© 2021-2022 \ S. HAIDRAR 17
Normalisation d'un schéma relationnel
Troisième forme normale
 Une relation est en 3FN si:
• Elle est en deuxième FN
• tout attribut n’appartenant pas à une clé ne dépend pas d’un attribut
non clé.
Exemple: Musique(NoChanson, NoChanteur, NomChanteur)

Avec les DF: NoChanson  NoChanteur

NoChanson  NomChanteur et NoChanteur  NomChanteur

Cette relation est en 2FN mais pas en 3FN.

© 2021-2022 \ S. HAIDRAR 18
Normalisation d'un schéma relationnel

Algorithme de décomposition en 3FN


Soit un schéma de relation R.
 Pour chaque DF: X  A, on crée une relation Ri (X, A)
 Si on a plusieurs DF: X  A1, X  A2, …, X  An; on les regroupe toutes
dans une même relation Rj (X, A1, A2, …, An)
 Les attributs n'appartenant à aucune DF seront regroupés dans une même
relation
 Pour avoir une décomposition SPI: il doit y avoir au moins une clé de R
dans une des relations de décomposition.
Si ce n'est pas le cas, on ajoute une relation contenant une clé de R, ou on
ajoute des attributs dans une des relations de décomposition.

© 2021-2022 \ S. HAIDRAR 19
Normalisation d'un schéma relationnel

Algorithme de décomposition en 3FN


Exemple:
BAINS (NNag, Nom, Prénom, Durée, Date, NP, NomP, Region)
DF: NNag  Nom, Prénom,
NP  NomP, Region
NP, NNag, Date  Durée
Résultat de normalisation:
NAGEUR (NNag, NOM, PRENOM)
PLAGE (NP, NOMP, REGION)
BAIGNADE (NNag, NP, DATE, DUREE)

© 2021-2022 \ S. HAIDRAR 20
Normalisation d'un schéma relationnel

Algorithme de décomposition en 3FN


Exercice: Normaliser les relations suivantes

1) VOITURE (IMMATRICULATION, COULEUR, MODELE, MARQUE)

2) COMMANDE ( NOM_FOURNISSEUR, ADRESSE_FOURNISSEUR,

ARTICLE, QUANTITE, PRIX )

© 2021-2022 \ S. HAIDRAR 21
Normalisation d'un schéma relationnel
Pour chaque relation ci-dessous:
- définir sa forme normale et la justifier
- établir un graphe de ses dépendances,
- proposer une décomposition optimale si nécessaire.

1) Pièce (Npièce, prix-unit, TVA, libellé, catégorie)


Une pièce est identifiée par un n° et a un prix unitaire, un libellé, une tva et
une catégorie.
La tva est déterminée en fonction de la catégorie

2) Prime (Nmachine, Ntechn, atelier, montant-prime, nom-techn)


Une machine est identifiée par un n° et affectée à un seul atelier.
Un technicien est identifié par un n° et a nom
Une prime est donnée à un technicien ayant travaillé sur une machine
donnée

© 2021-2022 \ S. HAIDRAR 22
Normalisation d'un schéma relationnel

3) Employé ( NEmp, NLab, NProj, NomEmp, NomProj, adresse)


Un employé est identifié par un n°, a un nom et une adresse et peut
travailler sur plusieurs projets pour plusieurs laboratoire.

© 2021-2022 \ S. HAIDRAR 23

Vous aimerez peut-être aussi