Anda di halaman 1dari 63

Module Base de donnes La Normalisation

Dr. Lassaad BAATI

Normalisation des entits

la normalisation des entits permet dobtenir un schma de BD relationnelle de bonne qualit la normalisation

minimise la redondance des donnes facilite la mise jour des donnes facilite linterrogation des donnes
2

Pourquoi normaliser

pour limiter les redondances de donnes, pour limiter les pertes de donnes, pour limiter les incohrences au sein des donnes et pour amliorer les performances des traitements.
3

Formes normales

une forme normale dnote un niveau de normalisation pour une entit il existe plusieurs formes normales

1FN, 2FN, 3FN, BCNF 1FN BCNF 3FN 2FN

on a

la plus courante est la 3FN

Notion de cl
Dfinition (cl de relation) : Soit R (A1, A2, ..., An) un schma de relation, et X un sous-ensemble de (A1, A2, ..., An), X est une cl si, et seulement si, : X (A1, A2, ..., An) et X est minimal

Les formes normales


Pourquoi normaliser ?

pour limiter les redondances de donnes, pour limiter les pertes de donnes, pour limiter les incohrences au sein des donnes et pour amliorer les performances des traitements.

Dfinition de 1FN

Une relation E est en 1FN (premire forme normale) ssi tous les attributs de E sont scalaires

attribut scalaire : attribut dont le type est lmentaire (char, varchar, numeric, etc)

attribut vectoriel : ensemble, liste (c--d une structure comportant des rptitions)

Une relation est en premire forme normale si et seulement si tous ses attributs ont des valeurs simples (non multiples, non composes).
7

1ere forme normale

Une relation est en premire forme normale ssi tout attribut contient une valeur atomique. les champs de chaque table doivent tre atomiques et quil ne peut exister de champs rptitifs. De plus, chaque champ doit avoir une signification prcise constante dans le temps.

Exemple 1FN
Pourquoi cette table nest-elle pas conforme la 1re forme normale ? La raison principale est que les champs ne sont pas tous atomiques. Le champ Nom contient la fois nom et prnom, il est possible de dcouper ce champ sans faire perdre de sens linformation, ce qui en faciliterait mme laccs et le tri. Le champ ville intgre le code postal, ce qui nest pas trs pratique si on dsire sortir, par exemple, la liste de toutes les personnes qui vivent la localit 2017.

MATRICULE E200610034 E200520452

NOM BOUZID Slim CHAMMEM Riadh

VILLE LE BARDO, 2017 BIZERTE, 1750


9

Exemple en 1FN (solution)

MATRICULE E200610034 E200520452

NOM BOUZID CHAMMEM

PRENOM Slim Riadh

VILLE LE BARDO BIZERTE

CODEPOSTAL 2017 7050

10

Ex 1FN
En quoi cette table ne rpond-t-elle pas la 1re forme normale ? Vrifier la liste des enfants. La 1re forme normale stipule que les champs ne peuvent pas tre rptitifs. Chercher qui a un enfant nomm Sonia obligera balayer chaque enregistrement puis rechercher dans chacune des trois colonnes. Il faudra esprer que la saisie est homogne et que ce prnom aura bien t tap de la mme faon que celui quon recherche, le moindre espace de trop fera chouer la recherche... Sil faut grer 4 enfants au lieu de trois cela impliquera une MAJ de la table
ID EMP00123 EMP01261 EMP00174 NOMPERE PRENOMPERE PRE_ENF1 PRE_ENF2 TOUNSI Sami Ali Sonia AYARI FERJENI Olfa Fethi Walid Sofiene Lamia PRE_ENF3

Sana

11

Ex2 (solution)

ID EMP00123 EMP01261 EMP00174

NOMPERE TOUNSI AYARI FERJENI

PRENOMPERE Sami Olfa Fethi

PRE_ENF Ali Sonia Walid Sofiene Nour

Sana

SON_PERE EMP00123 EMP00123 EMP01261 EMP00174 EMP00174 EMP00174

12

Normalisation en 1FN de cours

13

Normalisation en 1FN de professeur

14

Le modle logique de cours aprs normalisation en 1FN


prealableCours sigle siglePrealable cours sigle titre accessibilit sigle session

competence groupeCours sigle session groupe matricule professeur matricule salaire nom disponibilite matricule session sigle matricule

inscription sigle session matricule groupe note etudiant matricule coteZ nom

15

Pourquoi normaliser en 1FN?

parce que le modle relationnel ne permet pas de stocker une structure vectorielle dans un attribut dune table dautres modles permettent les rptitions

modle relationnel tendu ou relationnel objet (SQL3) modle orient objets


16

Dpendance fonctionnelle
Dfinition (dpendance fonctionnelle) : Soit R (A1, A2,...An) un schma de relation, et X et Y des sous-ensembles de {A1,A2,...An}. On dit que X dtermine Y ou que Y dpend fonctionnellement de X si, et seulement si, des valeurs identiques de X impliquent des valeurs identiques de Y. On le note : X Y X dtermine Y et Y dpend de X X : source de la DF ; Y : cible de la DF Autrement dit : X Y si et seulement si dans R une mme valeur de X correspond toujours une mme valeur de Y La source peut tre un ensemble d'attributs : (nom, prnom) adresse

17

Dpendance fonctionnelle

Soit la relation suivante r de schma R (A, B, C, D, E).

A a1 a1 a2 a2 a3

B b1 b2 b1 b1 b2

C c1 c2 c3 c4 c5

D d1 d2 d3 d3 d1

E e1 e1 e1 e1 e1

Question : quelles sont les dpendances fonctionnelles satisfaites par R ?

18

Dpendance fonctionnelle

Soit la relation suivante r de schma R (A, B, C, D, E).

Question : quelles sont les dpendances fonctionnelles satisfaites par R ? Rponse : les dpendances fonctionnelles satisfaites par R sont les suivantes : A E ; B E ; C ABDE ; D E ; AB D ; AD B ; BD A.

A a1 a1 a2 a2 a3

B b1 b2 b1 b1 b2

C c1 c2 c3 c4 c5

D d1 d2 d3 d3 d1

E e1 e1 e1 e1 e1

19

Proprits de la dpendance fonctionnelle


Rflexivit (Y X) (X Y) Augmentation (X Y) (X, Z Y, Z) Transitivit (X Y et Y Z) (X Z) Union (X Y et X Z) (X Y, Z) Pseudo-transitivit (X Y et W, Y Z) (W, X Z) Dcomposition (X Y et Z Y) (X Z)

20

Dfinitions pour les dpendances fonctionnelles


Soient X, Y et Z des ensembles d'attributs non vides d'une relation R avec X Y. Cette DF est alors dite : Triviale X Y est une DF triviale si et seulement si Y X lmentaire X Y est une DF lmentaire s'il n'existe pas X' X tel que X' Y Canonique X Y est une DF canonique si et seulement si Y n'a qu'un seul attribut Directe X Y est une DF directe si et seulement si X Y est lmentaire et Z tel que Z X et Z Y on n'a pas (X Z et Z Y)
21

Dpendance fonctionnelle

les dfinitions de 2FN, 3FN, BCNF reposent sur la notion de dpendance fonctionnelle une dpendance fonctionnelle est une fonction entre des listes dattributs on dnote une dpendance fonctionnelle comme suit :
(A1, ..., An) An+1 on dit que An+1 dpend de A1, ..., An
22

Dpendance fonctionnelle

La notion de dpendance fonctionnelle (df) est lie la smantique des donnes Pour dterminer si une dpendance fonctionnelle est vraie, il faut raisonner sur la smantique de la table et non sur son contenu linstant t Le contenu de la table peut permettre dinvalider certaines df
23

Que reprsente une dpendance fonctionnelle?

la dpendance matricule nom ne signifie pas que le nom associ un matricule ne change jamais; le nom peut changer, mais, en tout temps, on peut dterminer le nom dun tudiant partir de son matricule cela ne signifie pas non plus que si on a deux matricules diffrents, alors leurs noms associs doivent tre diffrents cela signifie que deux tudiants ne peuvent avoir le mme matricule
24

attention!

Reprsentation graphique

sigle titre

sigle titre

(sigle,session,groupe) matricule

sigle session groupe matricule

25

2FN Deuxime forme normale

Dfinition (Deuxime forme normale) : Une relation respecte la seconde forme normale lorsque toutes ses proprits non-cl sont totalement dpendantes fonctionnellement de la totalit de la cl primaire. Si X et Y sont des colonnes et que X est une cl, alors pour tout Z qui est un sous-ensemble de X, il ne peut y avoir Z Y.
26

Ex 2FN
Dterminer o se trouve la cl primaire. Qq combinaisons permettant de reprer de faon unique chaque ligne tout en ayant une signification : Numro de salari + Numro de projet || Nom + Numro de projet. Selon lutilisation qui sera faite de la table on peut renverser les cls, ce qui ne change rien leur nature. Numro de salari + Numro de projet

NUMSALARIE 3423 3423 6547 2134 2134

NOM TOUNSI TOUNSI AYARI BEN SALEM BEN SALEM

NUMPROJET 1 2 2 3 1

HEURES 18,5 6,7 8,5 23,5 4,8

27

Ex 2FN

Les champs non-cl : Nom et Heures. Les heures sont en totale DF avec la totalit de la cl puisque cette proprit concerne la fois un individu et un projet et que seule cette combinaison permet disoler un compte dheures unique. Le nom du salari ne dpend pas de la totalit de la cl primaire. En fait il ne dpend que dun morceau de celle-ci, le numro de salari. si nous avions choisi lautre possibilit pour la cl primaire nous aurions le mme problme avec le numro de salari qui ne dpendrait que du nom et non de la totalit de cl. Cette table doit tre scinde en deux autres tables
NUMSALARIE 3423 6547 2134 NOM TOUNSI AYARI BEN SALEM NUMSALARIE 3423 3423 6547 2134 2134 NUMPROJET 1 2 2 3 1 HEURES 18,5 6,7 8,5 23,5 4,8

28

Ex 2FN

Chacune de ces tables rpond maintenant aux exigences de la premire et de la seconde forme normale. La premire ayant pour cl primaire le numro de salari, la seconde la combinaison numro de salari + numro de projet.

NUMSALARIE 3423 6547 2134

NOM TOUNSI AYARI BEN SALEM

NUMSALARIE 3423 3423 6547 2134 2134

NUMPROJET 1 2 2 3 1

HEURES 18,5 6,7 8,5 23,5 4,8 29

Pourquoi normaliser en 2FN?

parce que cela limine la redondance des donnes cela assure une meilleure intgrit des donnes tout en simplifiant les mise jour on ne perd aucune information; on peut recrer linformation avec une jointure des deux relations
30

3FN
Dfinition (Troisime forme normale) Une relation est en troisime forme normale si et seulement si :

Elle est en deuxime forme normale ; Tout attribut n'appartenant pas une cl ne dpend pas d'un attribut non cl.

31

3FN
Une relation est dite dans la 3FN si aucun champ non-cl nest en dpendance transitive avec la cl primaire. Soit 3 colonnes (A, B, C), A tant la cl primaire, si (A et que (B C) on peut en dduire B) que (A C), dans ce cas il existe une relation transitive entre A et C et la table nest pas dans la 3NF. 32

Ex 3FN
Cette table est en 1FN (champs atomiques, non rptitifs, ayant une signification unique constante dans le temps, prsence dune cl primaire - par exemple ici le numro de salari) En 2FN (tous les champs non-cl sont en dpendance fonctionnelle avec la totalit de la cl primaire). Toutefois, elle nest pas dans la troisime forme normale.
NOM TOUMI ABIDI NUM_EMP 5001 5002 DATE_NAISS SERVICE 5 6 NOM_SERVICE Vente Informatique NUM_CHEF 4580 4120

33

Ex 3FN
le nom du service ainsi que le numro du salari du chef de service sont lis la cl primaire par une relation transitive qui passe par le code du service. Il est effectivement possible de dterminer le nom du service et le code salari de son chef uniquement partir du code service. SERVICE NOM_SERVICE NUM_CHEF Solution (2 tables)
5 6 Vente Informatique 4580 4120

NOM BEN SELEM ABIDI

NUM_EMP 5001 5002

DATE_NAISS

SERVICE 5 6 34

Pourquoi normaliser en 3FN

comme pour la 2FN

parce que cela limine la redondance des donnes cela assure une meilleure intgrit des donnes tout en simplifiant les mise jour

on ne perd aucune information; on peut recrer linformation avec une jointure des deux relations
35

Dfinition (Forme normale de BOYCE-CODD) BCNF


Une relation est en Forme normale de BOYCE-CODD (BCNF) si, et seulement si, les seules dpendances fonctionnelles lmentaires sont celles dans lesquelles une cl dtermine un attribut. Par exemple, Universit (tudiant, matire, enseignant, note) avec les DF tudiant, matire enseignant, note et enseignant matire

n'est pas en BCN F

alors que

Pers (nom, prnom, age, nombreEnfants) avec la DF nom, prnom age, nombreEnfants

est en BCN F.

Toutes les DF sont prises en compte par la BCNF. On considre gnralement qu'une base de donnes de bonne qualit ne contient que des relations qui respectent la BCNF.
36

Exemple de BCNF

supposons quune institution denseignement dcerne un seul diplme (SEC, DEC, ou BAC) et quune personne obtient un diplme dune et une seule institution; on a les DF suivantes

(personne,diplme) institution institution diplme


37

Contre-exemple de BCNF
Une entit E est en forme normale de Boyce-Codd ssi pour toute dpendance fonctionnelle X A de E, la condition suivante est satisfaite: X est une super cl

personne diplme institution

cette entit nest pas en BCNF, car il y a la DF institution diplme, et institution nest pas une super cl
38

Normalisation en BCNF
personne diplme institution

personne

institution

diplme institution

note: - on ne perd pas dinformation, - on diminue la redondance -on perd une contrainte dintgrit (personne,diplme) institution

39

40

41

42

43

DF vs DM vs DJ

La Dpendance Fonctionnelle permet de dfinir les premires formes normales jusqu la forme normale de Boyce-Codd (1FN, 2FN, 3FN et BCNF). La Dpendance Multivalue permet de dfinir la quatrime forme normale (4FN) et la Dpendance de Jointure la cinquime forme normale (5FN).
44

Dpendance multivalue (DM)

(X1, Y1, Z1) R et (X1, Y2, Z2) R (X1, Y 1 , Z2) R et (X1, Y 2 , Z1) R

contenant n proprits, soit X, Y et Z des sous-ensembles de A1, A2, An et soit Xi, Yi et Zi des instances de ces sousensembles (i.e. une affectation de valeur chacune des proprits de ces sous-ensembles). Il existe une dpendance multivalue (DM) entre les ensembles de proprits X, Y lorsque : On la note X Y, ce qui se lit X multidtermine Y.
Remarque : X Y X Ai(X Y).

Dfinition :Soit R(A1, A2, An) un schma de relation

45

Dpendance multivalue

Supposons une situation o un employ dun garage est qualifi pour effectuer un certain type dintervention sur certaines marques de voiture. Cette situation est modlise par le schma relationnel suivant :

Employ(Nom-Employ) Intervention(Type-Intervention) Constructeur(Marque) Intervenir(Nom-Employ, Type-Intervetion, Marque)

Supposons quun employ qui effectue un ensemble de types dinterventions pour un ensemble de marques de voiture, est capable deffectuer chacun de ces types dinterventions sur chacune de ces marques de voitures. il existe des dpendances multivalues dans la relation Intervenir : Nom-Employ Type-Intervention et NomEmploy Marque.

46

Quatrime forme normale

Dfinition - (4FN )-

Une relation est en quatrime forme normale (4FN) si, et seulement si, elle est en forme normale de BOYCE-CODD et si elle ne possde pas de dpendance multivalue ou si, X Y tant la dpendance multivalue, il existe une proprit A telle que X A.
47

Exemple de relation ntant pas en 4me forme normale.

48

Normaliser la relation

Intervenir

Pour normaliser la relation Intervenir, il faut la dcomposer pour aboutir au schma relationnel suivant :

Employ(Nom-Employ) Intervention(Type-Intervetion) Constructeur(Marque) Etre-capable-de(Nom-Employ, Type-Intervetion) Etre-capable-dintervenir-sur(Nom-Employ, Marque)

49

Exemple de normalisation en 4FN

50

Dpendance de jointure (DJ)

Jusquici, nous avons pu rsoudre une redondance dans une relation en la remplaant par 2 de ses projections. Il existe cependant des relations qui ne peuvent pas tre dcomposes sans perte dinformation en deux projections, mais qui peuvent ltre en trois ou plus (ces cas sont assez rares en pratique). Cest ce que permet la normalisation en cinquime forme normale. Les dpendances de jointures font appel des notions (projection et jointure)

51

Dpendance de jointure
DJ Soient X1, X2, , Xn des sous-ensembles dun schma de relation R. Il y a une DJ, note *{X1, X2, , Xn} dans la relation R, si : R=(X1)R (X2)R (Xn)R

Une dpendance de jointure, DJ(R1, R2, , Rn), spcifie sur un schma relationnel R, est une DJ triviale ssi un des schmas relationnels Ri {R1, R2, , Rn} tel que Ri = R. Une telle dpendance est appele triviale parce quelle confre la proprit de jointure non-additive nimporte quel tat de r de R.

52

Exemple

53

DJ

Les donnes de lassociation RECETTE peuvent tre

Ce cas correspond

X 1 = (fam ille, saveur), X 2 = (saveur, catgorie) et X 3 = (catgorie, fam ille)

54

La projection RECETTE[X1] donne :

La projection RECETTE[X2] donne :

La jointure RECETTE[X1] * RECETTE[X2] donne :

55

La projection RECETTE[X3] donne :

La jointure RECETTE[X1] * RECETTE[X2] * RECETTE[X3] redonne l'association RECETTE.

Cette dpendance indique qu'il ne suffit pas qu'une famille de recettes ait une saveur dominante et que cette saveur corresponde une catgorie d'ingrdients, pour qu'une recette base de cet ingrdient et de saveur spcifie, soit fabrique. Un dessert possde une saveur sucre, une saveur sucre peut correspondre un lgume mais un dessert sucr base de lgumes n'est pas fabriqu car il n'y a pas de lgumes dans un dessert.
56

Normalisation en 5FN

57

Normalisation en 5FN

L'association RECETTE est en 4FN mais pas en 5FN car il existe une DJ et, puisque cette association n'est pas porteuse d'une proprit, il n'existe pas de DF. Ce modle prsente des difficults de mise jour. Si l'occurrence < Viandes , Acide , Vins > est ajoute, il faut galement ajouter l'occurrence < Viandes , Acide , Fruits >. Pour que l'association RECETTE soit en 5FN, il faut la dcomposer :
58

Solution en 5FN

59

Normalisation en 5FN

La relation Fournisseur souffre dune dpendance de jointure :


*{(Num-Fournisseur, Num-Article), (Num-Fournisseur, Num-Organisme), (Num-Article, Num-Organisme)}.

60

61

Exemple de modle EA avec SYBASE - PowerDesigner

62

Exemple de passage de modle EA au modle relationnel

Voici les relations dduites de ce schma :


Patient(numro, nom, numMutuelle) Mutuelle(numMutuelle, nomMutuelle) Mdecin(numMdecin, nomMdecin) Affection(codeAffection, nomAffection) Hospitalisation(numro, codeAffection, numMdecin, dateEntre, dateSortie)

On utilise la notation suivante : nomRelation(cl, autresAttributs)


63