1 Décomposition sans perte d`information

Transcription

1 Décomposition sans perte d`information
1
Décomposition sans perte d’information
La décomposition de schémas est pour but d’éviter les redondances de données. Cependant, lors de la recherche d’information, il est souvent nécessaire de recomposer les tables stockées pour retrouver les informations dans les tables d’origine. Cette opération
est non seulement coûteuse, mais peut avoir plusieurs problèmes, par exemple le
problème de perte d’information. Considérons l’exemple suivant.
EXEMPLE 1 Soit l’univers U = ABC et une relation u sur U . Considérons la
décomposition de u en deux relations r et s, respectivement sur AB et BC, par la
projection.
u:
A
a
a0
a
B
b
b
b
C
c
c
c0
r:
A
a
a0
B
b
b
s:
B
b
b
C
c
c0
Figure 1: Relation u et sa décomposition en relations r et s
La recomposition des deux relations sur AB et BC, par la jointure, resulte la relation
u0 :
u0 :
A
a
a0
a
a0
B
b
b
b
b
C
c
c
c0
c0
Figure 2: Relation u0 obtenue par la jointure de r et s
Il est clair que u0 6= u: on n’obtient pas l’information de la relation d’origine u.
Définition 1 (Décomposition) Soit u une relation sur l’univers U .
• Un schéma de base S = {R1 , ..., Rk } est une décomposition de U ssi
U = R1 ∪ ... ∪ Rk .
Bases de Données - V. Phan Luong
1
• La décomposition de u en relations ΠR1 (u), ..., ΠRk (u) est sans perte d’information
(SPI) si
ΠR1 (u) ./ ..., ./ ΠRk (u) = u.
• Soit F un ensemble de DFs définies sur U . Le schéma de base S est une
décomposition SPI de U , par rapport à F , ssi
∀u ∈ Sat(F ), ΠR1 (u) ./ ..., ./ ΠRk (u) = u.
Nous considérons le problème de vérification si un schéma de base S = {R 1 , ..., Rk }
est une décomposition SPI de U , par rapport à un ensemble F de DFs. D’après une
propriété de la jointure, il est toujours vrai que
u ⊆ ΠR1 (u) ./ ..., ./ ΠRk (u).
Donc, pour résoudre le problème, il suffit de vérifier si
ΠR1 (u) ./ ..., ./ ΠRk (u) ⊆ u.
Supposons que U = A1 ...An . Soit t = (a1 , ..., an ) un n-uplet dans ΠR1 (u) ./ ..., ./
ΠRk (u). Alors
t[R1 ] ∈ ΠR1 (u), ..., t[Rk ] ∈ ΠRk (u).
Pour 1 ≤ i ≤ k, t[Ri ] ∈ ΠRi (u) ssi il existe q ∈ u tel que t[Ri ] = q[Ri ]. En supposant
que Ri = Ai1 ...Aij , où j est la cardinalité de Ri . On doit avoir
q(Ai1 ) = t(Ai1 ), ..., q(Aij ) = t(Aij ).
Bases de Données - V. Phan Luong
2
Pour tout A ∈ U , tel que A 6= (Ai1 ), ..., A 6= (Aij ), on ne sait pas si q(A) = t(A). Si
l’on peut montrer qu’il existe un tel q tel que pour tout A ∈ U , q(A) = t(A), alors
t = q, d’où t ∈ u, et donc ΠR1 (u) ./ ..., ./ ΠRk (u) ⊆ u.
Méthode de poursuite
La vérification de décomposition sans perte d’information en présence de dépendances
fonctionnelles peut être réalisée avec un tableau appelé un tableau de poursuite. Chaque
colonne du tableau a pour entête un attribut de U . Pour chaque schéma R i ∈ S, une
ligne qi est établit pour le tableau, telle que si Ri = Ai1 ...Aij alors,
• q(Ai1 ) = t(Ai1 ) = ai1 , ..., q(Aij ) = t(Aij ) = aij , et
• Pour tout A ∈ U , tel que A 6= (Ai1 ), ..., A 6= (Aij ), q(A) = xh , où h est un indice
n’est jamais utilisé pour indexer x dans le tableau.
Les aim , 1 ≤ m ≤ j, sont appelés les constantes, et les symboles xh sont appelés les
variables.
Dans ce tableau, on répète les actions suivantes, jusqu’à ce qu’une ligne soit remplie
par des constantes ou le tableau ne change plus.
Soient q1 et q2 deux lignes du tableau. Pour chaque DF X → Y de F , si q1 [X] et q2 [X]
sont identiques sur tous les attributs de X, alors pour chaque A ∈ Y ,
1. Si q1 (A) est une constante et q2 (A) est une variable (ou inversement), alors remplacer la variable par la constante.
2. Si q1 (A) = xg et q2 (A) = xh sont des variables telles que g < h, alors remplacer
xh par xg .
Lorsque la répétition termine, si une ligne du tableau est remplie avec des constantes,
ce qui veut dire que t = q ∈ u, alors la décomposition est SPI. Sinon, on n’a pas de
conclusion: La conclusion dépend d’autres choses, par exemple d’autres contraintes de
données différentes de DFs, ou dépend de domaines des attributs.
Bases de Données - V. Phan Luong
3
EXEMPLE 2 Soit l’univers U = ABCDEF et F = {A → B, B → C, C → D, E →
D, D → A}. Soit S = {ABE, AD, BEF, CEF }. Le tableau de poursuite initial est
dans la figure 3. Le résultat de la première répétition est dans la figure 4. Les constantes
obtenues par les remplacements sont notées par les caractères du texte normal. La
deuxième étape de répétition résulte le tableau dans la figure 5. Les constantes obtenues
dans cette étape, par les remplacements sont noées par les caractères gras. La dernière
ligne du tableau est remplie par les constantes. Donc, la poursuite s’arrête et on conclut
que la décomposition est SPI.
A
ABE a
AD
a
BEF x8
CEF x11
B
b
x4
b
x12
C
x1
x5
x9
c
D
x2
d
x10
x13
E
e
x6
e
e
F
x3
x7
f
f
Figure 3: Tableau de poursuite: état d’initialisation
ABE
AD
BEF
CEF
A B
a
b
a b
a
b
a x12
C
x1
x1
x1
c
D
d
d
d
d
E
e
x6
e
e
F
x3
x7
f
f
Figure 4: Tableau de poursuite: première étape de répétition
ABE
AD
BEF
CEF
A B
a b
a b
a b
a b
C
c
c
c
c
D
d
d
d
d
E
e
x6
e
e
F
x3
x7
f
f
Figure 5: Tableau de poursuite: deuxième étape de répétition
EXEMPLE 3 Soit l’univers U = ABC et F = {}. Soit S = {AB, BC}. Le tableau
de poursuite initial est dans la figure 6. Dès la première répétition il n’y a pas de
Bases de Données - V. Phan Luong
4
changement, car F est vide. Donc, la poursuite s’arrête, et on n’a pas de conclusion
sur la propriété SPI de la décomposition. Maintenant, supposons que l’ on dispose
d’autres informations sur les contraintes de données. Par exemple,
• Si le domaine de A est un singleton A = {a}. Alors la variable x2 ne peut pas
prendre d’autres valeurs que a, c’est-à-dire, x2 est forcément égale à a. Donc, La
décomposition est SPI.
• Ou, si dom(A) = {a, a0 } et dom(C) = {c, c0 }, alors en choissant x1 = c0 et x2 = a0
on obtien une relation u = {(a, b, c0 ), (a0 , b, c)} qui satisfait F (évidemment), et
ΠAB (u) ./ ΠBC (u) 6⊆ u. Donc, la décomposition S = {AB, BC} n’est pas SPI,
par rapport à F .
ABE
AD
A
a
x2
B
b
b
C
x1
c
Figure 6: Tableau de poursuite de l’exemple 3
Théorème 1 Soit S = {R1 , R2 } une décomposition de U . Soit F un ensemble de DFs
définies sur U . Si F ` R1 ∩ R2 → R1 − R2 ou F ` R1 ∩ R2 → R2 − R1 , alors S est
SPI.
Théorème 2 Soit S = {R1 , R2 , ..., Rn } une décomposition SPI de U par rapport à F ,
un ensemble de DFs définies sur U . Si {S1 , Z2 } est une décomposition SPI de R1 ,
par rapport à F , alors S 0 = {Z1 , Z2 , R2 , ..., Rn } est une décomposition SPI de U par
rapport à F .
2
Décomposition sans perte de dépendances
Soit F un ensemble de DFs définies sur l’univers U , et u une relation sur U . Supposons
que pour des raisons de redondances de données, on décompose U en un ensemble de
Bases de Données - V. Phan Luong
5
schémas S = {R1 , R2 , ..., Rn }, tel que S est une décomposition SPI de U par rapport
à F . Ainsi u est décomposée en relations ΠRi (u), 1 ≤ i ≤ n, telle que
u = ΠR1 (u) ./ ..., ./ ΠRn (u).
Les données de la base seront stockées dans les relations ΠR1 (u), ..., ΠRn (u). Comment
vérifier si ces données satisfont les DFs de F ? Ces données sont théoriquement les
données de u. Donc, une méthode de vérification est de recomposer u par la jointure
ΠR1 (u) ./ ..., ./ ΠRn (u), et vérifier la satisfaction dans u. Cependant, la jointure est
coûteuse. Peut-on éviter la recomposition, c’est-à-dire, vérifier la satisfaction de DFs
localement dans chaque relation ΠRi (u), 1 ≤ i ≤ n et conclure la satisfaction de DFs
globalement dans u.
Définition 2 (Décomposition SPD) Une décomposition S est sans perte de dépendances,
par rapport à F , s’il existe G ⊆ F + tel que
• pour toute X → Y ∈ G, ∃Ri ∈ S : XY ⊆ Ri , et
• G+ = F + .
Définition 3 Soit F un ensemble de DFs définies sur un univers U .
• Soit R ⊆ U . Une DF X → Y est applicable sur R si XY ⊆ R.
• FR = {X → Y ∈ F + | XY ⊆ R}.
• Soit S = {R1 , ..., Rn }. Alors FS = FR1 ∪ ... ∪ FRn .
EXEMPLE 4 Soit U = ABCDE, F = {A → BC, C → A, A → D, D → E, A →
E}, et S = {ABC, BCD, DE}.
Les DFs de FABC sont d’abord toutes les DFs X → Y de F telles que XY ⊆ ABC,
c’est-à-dire, A → BC, C → A. Ensuite, on inclut dans FABC les DFs X → Y dérivées
Bases de Données - V. Phan Luong
6
de F , telles que XY ⊆ ABC. Par exemple, C → B. Notons que C → B peut aussi
être dérivée de A → BC et C → A. Avec des remarques similaires, on peut montrer
que
FABC = {A → BC, C → A}+
FBCD = {C → B, C → D}+
FDE = {D → E}+
Ainsi, FS = {A → BC, C → A, C → B, C → D, D → E}+ . On remarque que {A →
BC, C → A}, {C → B, C → D}, et {D → E} sont respectivement les couvertures
minimales de FABC , FBCD , et FDE .
En général, le calcul de FS n’est pas une tâche simple. Cependant, FS est un ensemble
G à retrouver pour la définition 2.
Théorème 3 Soit S = {R1 , R2 , ..., Rn } une décomposition de U , par rapport à F , un
ensemble de DFs définies sur U . S est SPD par rapport à F , ssi FS+ = F + .
Preuve. Supposons que S est SPD par rapport à F . D’après la définition 2, il existe
G ⊆ F + tel que
• pour toute X → Y ∈ G, ∃Ri ∈ S : XY ⊆ Ri , et
• G+ = F + .
Donc, G ⊆ FS , et donc G+ ⊆ FS+ . Or FS+ ⊆ F + et G+ = F + . Donc,
F + ⊆ FS+ ⊆ F +
D’où, FS+ = F + .
Maintenant, supposons que FS+ = F + . Pour montrer que S est SPD par rapport à F ,
d’après la définition 2, on peut prendre G = FS . Bases de Données - V. Phan Luong
7
D’après la définition de FS , théoriquement son calcul demande le calcul de F + , dont
la cardinalité peut être exponentiel par rapport au nombre d’attributs figurés dans F .
Cependant, nous pouvons remarquer, avec l’exemple 4, que l’on a besoin seulement de
l’essentiel de FS .
Algorithme SPD
Entrée: Un univers U , un ensemble F de DFs et
une décomposition S = {R1 , R2 , ..., Rn }.
Sortie: Vrai si S est SPD, faux sinon.
Méthode:
spd = vrai;
Tant que spd et il existe X → Y ∈ F non traitée faire
Z = X;
Répéter
Pour i de 1 à n faire Z = Z ∪ ((Z ∩ Ri )+ ∩ Ri );
Jusquà ce que Y ⊆ Z ou Z ne change pas.
Si Y 6⊆ Z alors spd = faux;
Fait;
Retourne spd;
Fin.
Dans l’algorithme, la fermeture (Z ∩ Ri )+ est calculée par rapport à F . Cependant,
dans la boucle calculant Z = Z ∪ ((Z ∩ Ri )+ ∩ Ri ), l’algorithme calcule la fermeture de
X par rapport FS . En effet, Z est initialisée à X. Dans une étape i de la boucle Pour,
1. Z ∩ Ri ⊆ Ri ,
+
+
2. (Z ∩ Ri )+ = (Z ∩ Ri )+
F , donc Z ∩ Ri → (Z ∩ Ri ) ∈ F ,
3. ((Z ∩ Ri )+ ∩ Ri ) ⊆ Ri , donc, Z ∩ Ri → (Z ∩ Ri )+ ∩ Ri ∈ FRi , et
Bases de Données - V. Phan Luong
8
4. Z ∪ ((Z ∩ Ri )+ ∩ Ri : Z est augmenté par (Z ∩ Ri )+ ∩ Ri .
Par les deux derniers points, on retrouve l’idée de l’algorithme Ferme, où F est remplacé
par FR1 ∪ ... ∪ FRn .
Théorème 4 L’algorithme SPD retourne vrai ssi S est SPD.
EXEMPLE 5 Soit U = ABCD, F = {A → B, B → C, C → D, D → A}, et
S = {AB, BC, CD}. Le tableau 7 donne l’exécution de l’algorithme SPD pour ces
données.
X→Y
A→B
B→C
C→D
D→A
Ri
AB
BC
AB
BC
CD
AB
BC
CD
AB
BC
CD
AB
BC
CD
AB
BC
Z
A
AB
B
AB
ABC
C
C
BC
BCD
D
D
D
CD
CD
BCD
BCD
ABCD
Z ∩ Ri
A
B
B
B
C
−
C
C
(Z ∩ Ri )+
ABCD
ABCD
ABCD
ABCD
ABCD
−
ABCD
ABCD
(Z ∩ Ri )+ ∩ Ri
AB
BC
AB
BC
CD
−
BC
CD
−
−
D
−
C
CD
B
BC
−
−
ABCD
−
ABCD
ABCD
ABCD
ABCD
−
−
CD
−
BC
CD
AB
BC
spd
vrai
vrai
vrai
vrai
Figure 7: Exécution de l’algorithme SPD
Donc, S = {AB, BC, CD} est une décomposition SPD de U , par rapport à F .
Bases de Données - V. Phan Luong
9

Documents pareils