Académique Documents
Professionnel Documents
Culture Documents
Normalisation
Normalisation
R:
r
Nomagence
NPrt
Montpellier
Montpellier
Bziers
Nimes
Bziers
Nimes
....
17
23
15
20
16
18
...
Client
Dupont
Durand
Nestor
Adam
Achille
Dsir
...
Montant
Ch.d'Affaires
1000
2000
1500
500
2000
1500
...
90 M
90M
45M
85M
45M
85M
Normalisation
r2
r3
Nomagence
NPrt
Montant
Client
Montant
Nomagence Ch d'affaires
Montpellier
Montpellier
Bziers
Nimes
Bziers
....
17
23
15
20
16
...
1000
2000
1500
500
2000
...
Dupont
Durand
Nestor
Adam
Achille
Dsir
...
1000
2000
1500
5000
2000
500
....
Montpellier
Bziers
Nimes
90 M
45 M
85 M
Divers problmes :
Supposons que lon souhaite poser la requte suivante :
Quelles sont les agences auprs desquelles Achille a emprunt ?
R1 et R2 donnait
Nomagence cl de R1 ;
dans la deuxime dcomposition lintersection des ensembles dattributs des schmas relationnels R1 et R2
donnait Montant or un client peut emprunter dans une mme agence le mme montant pour des prts diffrents,
ou bien emprunter le mme montant dans des agences diffrentes ...etc.
Nous nous attacherons donc dcrire une mthodologie amenant une bonne dcomposition.
Normalisation 3
7.3.1 Dfinitions
Les dpendances fonctionnelles constituent un type important de contrainte d'intgrit intervenant dans uns
structure relationnelle.
Un schma relationnel R dfini sur un ensemble d'attributs U vrifie la dpendance fonctionnelle G -> D o
G et D sont des sous ensemble ou parties de U
ssi (r instance de R) (t ,t' r tel que t[G] = t'[G] => t[D] = t'[D])
( si deux n-uplets de r concident sur G alors ils concident sur D)
Remarque :
Si DG est l'ensemble des attributs de R, on ne peut avoir deux n-uplets t,t' r instance de R concidant sur
G car sinon ils seraient gaux. Or les relations sont des ensembles, un n-uplet ne figure qu'une seule fois.
Exemple :
Soit le schma relationnel EMPLOI_DU_TEMPS(Professeur,Heure,Salle,Classe,Matire) associ au
prdicat intentionnel "tout enseignement d'une matiere est effectu par un professeur pour une classe donne
dans une salle donne une heure donne"
L'ensemble des dpendances fonctionnelles suivant peut lui tre associ :
{Professeur -> Matire ; Un professeur n'enseigne qu'une seule matire
Professeur Heure -> Classe ; Un professeur une heure donne enseigne une seule classe
Heure Salle -> Professeur ; A une heure donne et dans une salle donne ne peut se trouver qu'un seul
professeur
Heure Classe -> Salle ; A une heure donne et pour une classe donne ne peut tre associ qu'une seule
salle}
Notons que selon l'observateur qui modlise l'ensemble de dpendances fonctionnelles peut tre diffrent :
{Professeur -> Matire ; Heure Classe -> Professeur ; Heure salle -> Classe}
Le problme sera de savoir si les ensembles de DF aboutissent au mme schma normalis.
exemple si (1) X-> Y et (2) Y-> Z sont 2 DF sur R, alors X -> Z est une DF sur R.
en effet soit R contenant les attributs XYZ,
si tet t' sont tels que t[X] =t'[X] alors (1) => t[Y] =t'[Y] et (2) => t[Z] =t'[Z].
Il existe plusieurs moyens de driver toutes les "consquences" d'un ensemble de DF, nous en citerons un,
celui utilisant des rgles de drivation appeles axiomes d'ARMSTRONG.
Normalisation
Rgles principales
si X Y alors X ->Y
si X -> Y et Z est un ensemble d'attributs, alors XZ -> YZ
si X -> Y et Y-> Z alors X -> Z
DF1 rflexivit
DF2 augmentation
DF3 transitivit
Nous admettrons sans le dmontrer que l'ensemble de ces rgles de drivation constituent un ensemble valide
(sain ou consistant) et complet.
Dfinition :
Un systme de rgles de drivation est valide (sain ou consistant), si lorsque f est drive de F l'aide du
systme f est une consquence logique de F (le systme de rgles ne permet donc d'engendrer que des DF
valables).
Un systme de rgles de drivation est complet si lorsque f est une consquence logique de F alors f est
drivable de F en utilisant ce systme de rgles.
On utilise aussi des consquences de ces rgles qui sont utiles en pratique lors des manipulations de DF.
DF4 union
DF5 dcomposition
DF6 pseudo-transitivit
7.3.2.2 Fermeture transitive d'un ensemble d'attributs par rapport un ensemble de DF.
Dfinition :
L'ensemble des attributs directement atteignables partir de X par rapport F est appel fermeture transitive
des attributs de X par rapport F et note X+.
exemple : Soit F = { A ->B, BC->D} et lhypergraphe correspondant
A
B
D
A+/F= AB
B+/F= B
C+/F= C
D+/F= D
BC+/F= BCD
AC+/F= ABCD
Algorithme Fermeture_trans(X,F,X+)
{calcule dans X+ la fermeture de X par rapport F, ens de DF}
X+ := X; ENU := F; {ENU ensemble des DF non utilises}
tant que < une DF G->D dans ENU tel que GX+> faire
choisir (et enlever) un arc G->D de ENU tel que G X+
X+ := X+ {D};
Remarque : d'autres algorithmes plus sophistiqus ont t dvelopps.
Dfinition
Soit F un ensemble de DF, F+ la fermeture transitive de F est lensemble des DF :
{G -> D tq D G+F}
Normalisation 5
Exemple
Soit F = { A ->B, BC->D}
F+={A->AB, B->B, C->C, D->D, AB->AB, AC->ABCD, AD->ABD, BC->BCD, BD->BD, CD->CD,
ABC->ABCD, ABD->ABD, ACD->ABCD, BCD->BCD, ABCD->ABCD}
Thorme
Deux ensembles de dpendances fonctionnelles F et F' sont quivalents
ssi F+ = F'+
ssi F+ F'+ et F'+ F+
ssi F F'+ et F' F+
ssi toute DF de F F '+ et toute DF de F' F+
ssi pour toute DF de F G -> D , alors G+ par rapport F' contient D et
pour toute DF de F' G -> D , alors G+ par rapport F contient D
Grce au thorme prcdent, on ramne le calcul de la fermeture transitive de lensemble des dpendances
fonctionnelles F celui des fermetures des parties gauches des dpendances fonctionnelles de F.
On peut en effet montrer qu'en remplacant G->D par G->G+, on a un ensemble de DF quivalent F :
{F - (G->D) (G-->G+}+ = F+
Exemple : F={A->B, AB->C} ; AB->C nest pas minimale/F, A->C est minimale !
b - redondance d'une DF (G -> D) par rapport un ensemble F de DF
dfinition : G->D est redondant par rapport F
ssi D G+ par rapport (E - {G-> D})
ssi (E - {G-> D})+ = E+
Pour chasser la redondance des dpendances fonctionnelles, rappelons qu'il faut dcomposer
G->D1D2...Dn en n dpendances fonctionnelles lmentaires (un seul attribut en partie droite)
G-> D1, G->D2,... G-> Dn
Exemple : F={A->B, B->C, A->BC} ; A->BC nest pas lmentaire : on la dcompose en A->B, dj
prsente, et A->C. Cette dernire est redondante car A+/{A->B, B->C}={A, B, C}
c - couverture irredondante minimale (CIM) d'un ensemble F de DF
C'est un ensemble F' de DF quivalent F qui ne contient aucune DF redondante, et dont les parties gauches
sont minimales.
Pour en obtenir une (il n'y a pas forcment unicit), il faut appliquer les tests a et b dans cet ordre.
Normalisation
Deux n-uplets distincts ne peuvent avoir la mme surcl (sinon ils concident entirement et une une
ralisation R de R contient 2 tuples gaux)
U est toujours une surcl (triviale)
Algorithme cl ( U,F,K)
{calcule une cl K d'un schma relationnel R sur U avec un ensemble de DF F}
K := U; {surcl}
tant que un attribut A K tel que K-{A} ->U faire
choisir un tel attribut A;
K := K -{A};
Il existe d'autres algorithmes capables de calculer l'ensemble des cls possibles pour un schma R.
Normalisation 7
- sinon les mettre gaux l'un d'entre eux (bij par ex)
Rsultat := si la table T possde au moins une ligne remplie de ai alors la dcomposition est sans perte.
Exemple :
Soit R ({A,B,C},{A->B, B->C}) dcompos en R1(A,B), R2(B,C) ;
Le tableau est initialis :
i\j A
B C
R1 a1
a2 b13
R2 b21
a2 a3
Le traitement
en :
i\j A
B
R1 a1
a2
R2 b21
a2
Thorme
Si R soumis F( ens de DF) se dcompose en {R1(U1),R2(U2)}
alors cette dcomposition est sans perte par rapport F ssi
(U1 U2) -> (U1 - U2) ou (U1 U2) -> (U2 - U1)
ssi les attributs communs sont cls de l'une ou l'autre des schmas relationnels dcomposs.
Si
Exemple
Soit R sur ABC soumis F={ A->B, B->C}
a) la dcomposition sur AC, BC prserve-t-elle les DF ?
F+ sans les dpendances triviales= {A->B, B->C, A->C}
AC (F) ={A->C}, BC (F) ={B->C}
AC (F) U BC (F) ={A->C, B->C}
et A->B n'est pas retrouve donc la dcomposition ne prserve pas les DF.
De plus, cette dcomposition nest pas sans perte : ACBC=C et C nest cl daucune des 2 relations !
Normalisation
est en premire forme normale si tous les attributs de U sont atomiques (ou
7.3.4.2 2me FN
Un schma relationnel R dfini sur U et sur un ensemble de dpendances fonctionnelles F est en 2FN ssi
tout attribut nappartenant pas une cl dpend directement dune cl.
Exemple :
Soit R(Appareil,Vol,AroportDpart,AroportArrive)
avec F={ Vol ->Appareil, Vol AroportdeDpart ->AroportArrive}
Vol
AroportDpart
AroportArrive
Appareil
Lunique cl de R est Vol AroportdeDpart
Vol, AroportdeDpart appartiennent la cl, AroportArrive dpend directement de la cl, mais Appareil
dpend dune partie de la cl et non de la cl entire donc le schma nest pas en 2FN. Il faut scinder en deux
relations : R1(Vol, Appareil), R2(Vol, AroportDpart, AroportArrive)
7.3.4.3 3me FN
Un schma de relation R soumis F(CIM) est en 3 ime forme normale ssi
pour toute DF X ->A de F :
- soit X est une cl,
- soit A appartient une cl.
Par exemple, soit R sur ABC soumis F={ A->B, B->AC}
Alors {R1(A,B), R2(B,C)} est en 3FN
Ainsi que {R1(B,A), R2(B,C)} et {R1(B,A), R2(A,C)}
Normalisation 9
1FN
2FN
3FN
3BCNF
4.
Calculer une CIM (F1) partir de lensemble de toutes les dpendances fonctionnelles lmentaires de F en
chassant la redondance des attributs de partie gauche, puis les dpendances fonctionnelles redondantes.
Trouver les cls de F1
Regrouper les DF de F1 ayant mme partie gauche Gj -> Dj. Fabriquer les schmas de relation maximaux
par l'inclusion ensembliste.
Ri {Ui=Gj Dj ; Gj -> Dj }
Si aucune cl ne figure dans une des relations produites l'tape prcdente ajouter un schma de relation
Ri = {K; K->K}
Remarque : Cet algorithme peut conduire une dcomposition en 3BCNF (meilleur des cas).
R1(U1)
R2(U2)...
Ri(Ui).c'est
Ri.
R(U)
est la jointure
10
Normalisation
Un n-uplet u ne peut appartenir R que si chacune de ses projections u[Ui] est un n-uplet de Ri R[Ui]
Ri(Ui)
Exemple : Soit le schma de relation VINS(Buveur,Cru,Producteur) modlisant des vins bus par des buveurs
d'un cru donn et commands un producteur produisant ce cru et une de ces extensions :
BUVEUR
Jacques
Jacques
Jacques
Louis
CRU
PRODUCTEUR
Chablis
Chablis
Volnay
Chablis
Pierre
Nicolas
Nicolas
Nicolas
BUVEUR
CRU
Jacques
Jacques
Louis
Chablis
Volnay
Chablis
BUVEUR
PRODUCTEUR
Jacques
Jacques
Louis
Pierre
Nicolas
Nicolas
CRU
Chablis
Chablis
Volnay
PRODUCTEUR
Pierre
Nicolas
Nicolas
Proprits
L'existence de DF et de DI implique l'existence d'autres DF et DI que l'on peut obtenir grce aux rgles
suivantes :
DI1 rflexivit X X
DI2 : transitivit si X Y et Y Z alors X Z avec = .
DI3: hritage de DF : si XL GD et G -> D alors X ->L
Normalisation 11
Lintroduction de DI dans le processus de normalisation peut entraner des suppressions dattributs, des
simplifications par fusion de schmas.