MARQUE
PEUGEOT
RENAULT
MERCEDES
CLIENT
C1
C2
C1
REMISE
3%
5%
3%
Thorie de la normalisation :
Approche par dcomposition de la "relation universelle" (tous les attributs
dans une mme relation) en sous-relations.
Schma sans redondances et sans risques d'incohrences lors des mises
1
jour et qui vite le codage de valeurs nulles.
MARQUE
PUISSANCE
TYPE
206
SCENIC
CLASSE A
MARQUE
PEUGEOT
RENAULT
MERCEDES
CLIENT REMISE
C1 3%
C2 5%
C1
3%
TYPE MARQUE
VOITURE, CLIENT REMISE
TYPE
CLIENT
MARQUE
REMISE
La cl :
Sous-ensemble X des attributs d'une relation R (A1, A2, ..., An) tq:
1) X A1 A2 ... An
2) Il n'existe pas de sous-ensemble Y X tel que Y A1 A2 ... An
Ensemble minimum d'attributs qui dtermine tous les autres :
Ex.: NVoiture dans la relation Voiture.
La supercl ou surcl :
Un ensemble dattributs suffisants pour identifier le n-uplet, elle nest pas
ncessairement minimale.
Une cl est une surcl ou supercl minimale.
3
Ex.: NV est une cl pour la relation Voiture et (NV,TYPE) est une supercl.
Exemple:
Sources A et D
Puits F
A B , B CE, D E, E F, C F
A
Dfinition:
Soit K l'ensemble des cls de S = (R ; F)
- si C est un puits alors " k K C k : un puits n'appartient aucune cl.
- si C est une source alors " k K C k : une source toutes les cls.
3) Augmentation : X Y |= XZ YZ
Ex. : NOSS CODE-P |= NOSS VILLE CODE-P VILLE
4) Union et dcomposition : { X A, X B } |= X AB
5) Pseudo-transitivit : { X Y, WY Z } |= WX Z
attribut
TOTO
LYON
BRIQUES
1000
nuplet
DUPONT
ROUEN
BRIQUES
900
TOTO
LYON
BETON
400
REDONDANCE : l'adresse d'une personne apparat plusieurs fois.
MAJ : si on modifie l'adresse dans un nuplet, il faut le faire dans les autres.
SUPPRESSION : si DUPONT ne fournit plus de BRIQUES, on supprime le 2e
nuplet, on perd toutes les informations sur DUPONT.
INSERTION : on ne peut pas insrer un nouveau fournisseur et son adresse, si
on ne connat pas au moins un produit qu'il fournit.
TOTO
TOTO
DURAND
PARIS
LYON
NICE
BRIQUES
BETON
1000
900
Les qualits dun bon schma : viter les anomalies ==> dcomposition
La dcomposition doit conserver la mme information.
La jointure de :
FOURNISSEUR(FNOM, FADRESSE)
et de
FOURNITURE(FNOM, PNOM, PRIX)
obtenues par dcomposition de : R(FNOM, FADRESSE, PNOM, PRIX)
F = (FNOM FADRESSE; FNOM,PNOM PRIX) doit redonner R.
La dcomposition doit conserver les mmes contraintes (DF).
Les proprits sont values par rapport:
l'interrogation : la conservation de l'information par la dcomposition.
la modification : l'limination des anomalies de MAJ.
les rgles d'intgrit : la prservation des DF.
On peut toujours dcomposer une relation suivant une DF.
On ne peut pas dcomposer une relation sans DF.
La dcomposition suivant une DF ne perd pas d'information.
Une table peut tre dcompose en deux tables selon une DF telles que l'une
des tables contient tous les attributs de la DF et l'autre, tous les attributs de
8 la
table d'origine sauf ceux droite de la DF.
Personne Nom
Prnom
K1
K2
Z
10
Rue
Ville
Code Postal
Avicenne
Rabat
11000
Med V
Rabat
11000
Rq.: Non seulement on a la redondance Ville,CodePostal, mais on ne peut pas
insrer un nouveau couple (Ville,CodePostal) sans connatre une rue avec ce code
Exercice: Soit le schma relationnel R(A,B,C,D), F=. Quelles sont les cls ?
11
Plus simple que 3NF, un peu plus fort mais ne peut pas toujours tre obtenue!
R
K1
K2
Une telle relation doit tre dcompose en R1(K1, K2, X) et R2(Y, K1)
Ex.: LOCALISATION (EAU, PAYS, REGION, QUALITE)
Eau, Pays Rgion
Eau, Pays Qualit
Rgion Pays
12
Algorithme de dcomposition
Algorithme de dcomposition en 3FN
dcomposition itrative dune relation non 3FN en relations 3FN
En entre : un schma relationnel et un ensemble de DF
En sortie: une ou plusieurs relations en 3FN dont la jointure redonne la
relation initiale (des DF risquent dtre perdues)
On suppose que F est une couverture minimale.
Pour chaque X -> A appartient F, crer une relation de schma (XA).
Si aucune des cls n'est contenue dans l'un des schmas crs dans l'tape 1,
rajouter une relation de schma (Y), o Y est une cl.
Si aprs l'tape 1, il existe une relation R1 dont le schma (X1A1) est
contenu dans le schma (X2A2) d'une autre relation R2, supprimer la
relation R1.
Remplacer les relations (XA1),..., (XAk) (correspondant des dpendances
ayant mme membre gauche) par une relation unique : (XA1...Ak).
13
Ex1:
R(A, B, C, D)
F = { AB C, B D, C A } ; Cls : AB, BC
- tape1: R1(ABC) R2(BD) R3(CA)
- tape2: Pas la peine de rajouter une relation de schma: la cl AB est
contenue dans R1
- tape3: Supprimer R3 : CA inclus dans ABC
Bonne dcomposition: R1(ABC), R2(BD).
On peut vrifier que R1 et R2 sont en 3FN.
Ex2: R(A,B,C,D,E)
F = { AB C, C D, C A } ; Cls : ABE, BCE
- tape1: R1(ABC), R2(CD), R3(CA)
- tape2: On rajoute une relation de schma pour la cl ABE : R4(ABE)
- tape3: Supprimer R3 : CA inclus dans ABC
- Bonne dcomposition : R1(ABC) R2(CD) R4(ABE) R3 n'a pas de
dpendance. Autre solution :
- tape4: On remplace R2 et R3 de l'tape 1 par une relation de schma (CAD)
14
- Autre bonne dcomposition : R1(ABC), R2'(CAD), R4(ABE)