Académique Documents
Professionnel Documents
Culture Documents
R(Nomagence,NPrts,Client,Montant,Ch dAffaires) correspondant au prdicat : Une agence de nom Nomagence possde un chiffre daffaires et consent des prts de Numro donn des Clients pour un montant dtermin". Les contraintes suivantes (dpendances fonctionnelles) sont tablies :
Nomagence -> Ch dAffaires Client NPrt -> Montant Soit une instance r de
R:
r Nomagence Montpellier Montpellier Bziers Nimes Bziers Nimes .... NPrt 17 23 15 20 16 18 ... Client Dupont Durand Nestor Adam Achille Dsir ... Montant 1000 2000 1500 500 2000 1500 ... Ch.d'Affaires 90 M 90M 45M 85M 45M 85M
Normalisation
R1(Nomagence, Ch dAffaires) et R2(Nomagence, NPrt, Client, Montant) telle que, quelle que soit r instance de R , r1 instance de R1 et r2 instance de R2 :
r1= Nomagence, Ch dAffaires (r) r2= Nomagence, NPrt, Client, Montant(r ) Cette dcomposition vrifie les proprits suivantes : r2 = r (jointure conservative) - r1 - les contraintes sont toujours valables : Nomagence -> Ch dAffaires sur r1, Client NPrt -> Montant sur r2 (dpendances conservatives)
Divers problmes :
Supposons que lon souhaite poser la requte suivante : Quelles sont les agences auprs desquelles Achille a emprunt ?
Nomagence ( Client=Achille (r2) r1 ) donne Bziers et Montpellier ! La jointure donne plus de n-uplets (jointure non conservative donc perte dinformation).
De manire informelle nous voyons que cette deuxime dcomposition nest pas satisfaisante, dans la premire dcomposition lintersection des ensembles dattributs des schmas relationnels 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.
R1 et R2 donnait
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
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.
si X -> Y et X -> Z alors X -> YZ si X -> YZ alors X -> Y et X -> Z si X -> Y et WY -> Z alors WX -> Z
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
C
Il y a un algorithme gnral simple pour calculer X+.
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)
b - cl d'un schma relationnel dfinition : K est une cl ssi (K est une surcl de R) et K est minimale (ne contient pas strictement une autre surcl K') ssi non A K tel que K-{A} ->U c - calcul d'une cl
On essaie de minimiser la partie gauche de U->U Remarque : une cl sera reprsente par un soulignement continu au niveau du schma relationnel associ. exemple : EMPLOI_DU_TEMPS(Professeur,Heure,Salle,Classe,Matire).
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 de la premire DF A->B ne donne rien ; en revanche, la seconde DF B->C modifie le tableau C a3 a3
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
alors {V1,V2,U2,Un}est une dcomposition sans perte de R soumis F Ce dernier thorme permet une dcomposition sans perte par itrations successives.
Normalisation
b) au contraire la dcomposition AB, BC les prserve et est sans perte. Il existe des mthodes pour vrifier la prservation des DF dans une dcomposition mais nous ne les examinerons pas au niveau de ce cours.
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
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.
4.
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
R(U)
est la jointure
Ri.
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 :
Cette extension prsente encore des redondances. Si la contrainte d'intgrit : " tout buveur ayant bu un cru et ayant command un producteur produisant ce cru, a aussi command ce cru ce producteur" est dclare, le schma relationnel VINS obit la dpendance de jointure : * [Buveur Cru, Buveur Producteur, Cru Producteur] et peut tre dcompos en trois schmas (composantes de jointure).
Dans le processus de normalisation vu prcdemment, on rajoute les DJ en introduisant chaque ensemble d'attributs associ chaque composante de jointure CJ (comme une DF Ui->) .
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.