Vous êtes sur la page 1sur 10

lOMoARcPSD|38034373

TD3 - Bases de Données Avancées

Bases De Donnees Avancees (Université Moulay Ismaïl)

Scanne pour ouvrir sur Studocu

Studocu n'est pas sponsorisé ou supporté par une université ou un lycée


Téléchargé par Ma Ne (nemmich@gmail.com)
lOMoARcPSD|38034373

Correction :
On a sat ( F ) = sat ( G ) donc F │═ G et G │═ F .

+ + + +
Or, par définition de la fermeture : F │═ F et G │═ G , donc : F │═ G et G │═ F .
+ + +
Or F est l’ensemble maximal (par rapport à l’inclusion) tel que F │═ F , par conséquent, comme F │═ G ,
+ +
on a forcément G ⊆ F .
+ +
De même, G est l’ensemble maximal (par rapport à l’inclusion) tel que G │═ G , par conséquent, comme
+ + +
G │═ F , on a forcément F ⊆ G .
+ +
On en déduit des deux relations d’inclusions que : F = G .
Ceci nous permet de déduire que F ≡ G .

D’autre part, la définition de la couverture minimale H de l’ensemble F nous permet de dire que : F ≡ H et H
réduit. Or F ≡ G , donc on en déduit que H ≡ G et H réduit. On en conclut que par définition de la couverture
Traveaux Derigés BDDA N3
minimale, H est la couverture minimale de l’ensemble G.

Corrigés
Concl. : si sat ( F ) = sat ( G ) , alors toute couverture minimale de F est aussi une couverture minimale de G.

Exercice 5 :
Enoncé :
Soit U = ABCDE et F = { A → B , A → AC , BC → AE , BD → AC } .
a) Calculer les fermetures de BC par rapport à F et par rapport à FABCD.
b) Quelle est la relation ensembliste entre ces fermetures ? Peut-on généraliser cette observation ?

Correction :
a) Calcul de FABCD :
FABCD = { A → B , A → C , BC → A, BD → AC}

Fermeture de BC par rapport à F :


+
BC F = BCAE

Fermeture de BC par rapport à FABCD :


+
BCF ABCD
= BCA

b) Relation ensembliste entre les fermetures précédentes :


+ +
BCF ABCD
⊆ BCF

Généralisation de cette observation :


+
Les DF de FABCD sont toutes les DF X → Y ∈ F telles que XY ⊆ ABCD .
+ +
Ainsi, FABCD ⊆ F .
+ +
On en déduit que X → Y ∈ FABCD ⇒ X → Y ∈ F .
+ + +
Or, X → Y ∈ G ⇔ Y ⊆ X G , donc on en déduit que Y ⊆ X F ABCD
⇒ Y ⊆ X F , vrai pour tout Y.
+ +
On en conclut que : X F ABCD
⊆ XF .

Page 14 sur 22

Téléchargé par Ma Ne (nemmich@gmail.com)


lOMoARcPSD|38034373

Exercice 6 :
Enoncé :
Considérez les schémas de relations suivantes :
EMP ( N , S , E , P , Dp ) // N est un employé dans l’équipe E, il a un salaire mensuel S, et participe à un
projet P à partir de la date Dp.
CHEF ( C , E , P , Dc ) // L’employé C est le chef de l’équipe E, qui crée un projet P à la date Dc.
Sur les schémas EMP et CHEF on considère les contraintes suivantes :
(i) Chaque équipe a un seul chef, et chaque chef est le chef d’une seule équipe. Chaque projet a une seule date
de création.
(ii) Chaque employé a un seul salaire mensuel, et est dans une seule équipe. La date de début de participation
d’un employé à un projet est unique.

Questions :
a) Relevez les dépendances fonctionnelles à partir des contraintes (i) et (ii).
b) Par rapport aux dépendances relevées, le schéma de base S = { EMP, CHEF } porte-il des redondances de
données ?
c) S est-il en forme normale Boyce-Codd ? 3FN ?
d) Si S n’est pas en 3FN, donner une décomposition de S en 3FN, SPI et SPD. Votre décomposition est-elle en
FNBC ?

Correction :
a) Dépendances fonctionnelles à partir des contraintes (i) :
Chaque équipe a un seul chef : E → C
Chaque chef est le chef d’une seule équipe : C → E
Chaque projet a une seule date de création : P → Dc

Dépendances fonctionnelles à partir des contraintes (ii) :


Chaque employé a un seul salaire mensuel : N → S
Chaque employé est dans une seule équipe : N → E
La date de début de participation d’un employé à un projet est unique : PN → Dp

Ensemble F de DF résultant :
F = { E → C , C → E , P → Dc, N → S , N → E , PN → Dp}

b) S = { EMP, CHEF } a-t-il des redondances de données ?


S = { EMP, CHEF } et F = { E → C , C → E , P → Dc, N → S , N → E , PN → Dp}

Construisons FEMP = NSEPDp et FCHEF = CEPDc :


FEMP = NSEPDp = { N → S , N → E , PN → Dp} , clé NP → sans redondance de données
FABN = { E → C , C → E , P → Dc} , clés EP ou CP → sans redondance de données

On en conclut que S = { EMP, CHEF } n’a pas de redondances de données.

c) S = { EMP, CHEF } est-il en FNBC et 3FN ?


S = { EMP, CHEF } et F = { E → C , C → E , P → Dc, N → S , N → E , PN → Dp}
FEMP = NSEPDp = { N → S , N → E , PN → Dp} , clé NP
FCHEF = { E → C , C → E , P → Dc} , clés EP ou CP

+
Pour le relation (EMP=NSEPDp, FEMP ), la DF N → S appartient à FEMP et S ∉ N , or N n’est pas une
super-clé de NSEPDp, car N ∉ NP , et S n’est pas premier, donc S n’est pas en 3FN par rapport à F. On en
conclut que U n’est pas en FNBC par rapport à F.

Page 15 sur 22

Téléchargé par Ma Ne (nemmich@gmail.com)


lOMoARcPSD|38034373

d) Décomposition S1 de S = { EMP, CHEF } en 3FN, SPI et SPD :


Entrée :
– U = CEPSDc D p et F = { E → C , C → E , P → Dc, N → S , N → E , PN → Dp}

Etape 1 :
– On a G = F comme couverture minimale de F, car F est un ensemble réduit et non redondant.
– On en déduit que R = U et Z = U − R = ∅ .

Etape 2 : initialisation
– S ={ }
– Z = ∅ donc S est inchangé

Etape 3 : Construction de S à partir des DF de G


– Il n’existe pas de DF X → A ∈ G telle que R ⊆ XA
– Donc, pour tout X → A ∈ G , faire S = S ∪ { XA} , ce qui nous donne :
S = { EC , PDc , NS , NE , PND p }

Etape 4 : existence de la clé de U dans S


– PEN et PCN sont des clés de U, donc S ne contient pas de clé de U, donc : S = S ∪ { PEN } , soit :
S = { EC , PDc , NS , NE , PND p , PEN }

Retour :
– la décomposition 3FN de U est S1 = { EC , PDc , NS , NE , PND p , PEN } .

S1 est-il en FNBC ?
S1 = { EC , PDc , NS , NE , PED p , PEN } et F = { E → C , C → E , P → Dc, N → S , N → E , PN → Dp}

Construisons FEC , FPD , FNS , FNE et FPED :


c p

FEC = { E → C , C → E} , clé E
FPD = { P → Dc } , clés P
c

FNS = { N → S } , clé N
FNE = { N → E} , clé N
FPND = { PN → D p } , clés PN
p

FPNE = { N → E} , clé N

On remarque qu’il existe une DF C → E de FEC telle que C n’est pas une sur-clé de E, et C → E n’est pas
triviale. Donc, EC n’est pas en FNBC par rapport à FEC . Donc S1 n’est pas en FNBC par rapport à F.

Exercice 7 :
Enoncé :
Considérer l’univers U et l’ensemble de dépendances fonctionnelles F tels que :
U = { A, B , C , D, F , I , N } et F = { A → CDI , BC → FN , AI → C , AB → F } .

Page 16 sur 22

Téléchargé par Ma Ne (nemmich@gmail.com)


lOMoARcPSD|38034373

1) Chercher toutes les clés de U.


2) Montrer qu’il existe une dépendance fonctionnelle de F qui n’est pas réduite à gauche.
3) U est-t-il en forme normale Boyce-Codd (FNBC) par rapport à F? 3FN ? Justifiez vos réponses.
4) Considérer la décomposition suivante de U : S1 = { ABF , ABN , ACDI } .
(a) S1 est-elle sans perte d’information et sans perte de dépendances ?
(b) S1 est-elle en 3FN ? FNBC ?
(c) S1 a-t-elle de redondance de données ?
5) Suivez l’algorithme de décomposition 3FN pour décomposer U. Soit S2 le résultat de l’algorithme.
Répondez aux mêmes questions que ci-dessus pour S2.
6) Les mêmes questions pour la décomposition suivante: S 3 = { ACDI , BCFN , ABF } .
7) Entre les décompositions S1, S2, et S3 laquelle préférez-vous ? Pourquoi ?

Correction :
1) Clés de U.
Pour trouver une sur-clé de U par rapport à un ensemble F de DF X i → Yi , il suffit de faire l’union de tous
les Xi de chaque DF de F. Ainsi, pour notre exemple, une sur-clé est : S = ABCI
Ainsi :
− Clés potentielles avec un seul attribut ?
+ + + +
AF = ACDI ≠ U , BF = B ≠ U , CF = C ≠ U et I F = I ≠ U donc pas de clé à un seul attribut.
− Clés potentielles avec deux attributs ?
+ + + + +
ABF = ABCDIFN = U , AC F = ACDI ≠ U , AI F = ACDI ≠ U , BCF = BCFN ≠ U , BI F = BI ≠ U et
+
CI F = CI ≠ U donc une seule clé AB.

2) Comment trouver une DF non réduite à gauche ?


Pour trouver une DF non réduite à gauche, il suffit de regarder pour chaque DF X → Y de l’ensemble F,
s’il existe X ' ⊂ X tel que F│– X ' → Y .

Ici, si on prend la DF AI → C , regardons si F│– A → C ou F│– I → C . Pour cela, on utilise la DF


A → CDI qui peut se décomposer en A → C , A → D, A → I . Par conséquent, on a F│– A → C .

On peut en conclure que AI → C n’est pas réduite à gauche relativement à F.

3) U est-elle en FNBC et 3FN par rapport à F ?


Entrées : U = { A, B , C , D, F , I , N } et F = { A → CDI , BC → FN , AI → C , AB → F } et clé AB.

La DF BC → FN appartient à F et FN ∉ BC , or BC n’est pas une sur-clé de U car BC ∉ AC , et FN


+

n’est pas premier, donc U n’est pas en 3FN par rapport à F . On en conclut que U n’est pas en FNBC par
rapport à F .

4) S1 = { ABF , ABN , ACDI } :


Couverture minimale G de l’ensemble F (utile pour calculer les SPI et SPD) :
– G←F
G = { A → CDI , BC → FN , AI → C , AB → F }

Etape de réduction des DF à droite :


– Remplacement de A → CDI par A → C , A → D, A → I
– Remplacement de BC → FN par BC → F , BC → N
G = { A → C , A → D , A → I , BC → F , BC → N , AI → C , AB → F }

Etape de réduction des DF à gauche :


– Les DF A → C , A → D, A → I sont déjà réduites à gauche, donc observons les autres DF de G.
– DF BC → F :

Page 17 sur 22

Téléchargé par Ma Ne (nemmich@gmail.com)


lOMoARcPSD|38034373

o est ce que G – {BC → F} │═ {B → F} ? Non


o est ce que G – {BC → F} │═ {C → F} ? Non
o Alors BC → F est réduite à gauche.
– DF BC → N :
o est ce que G – {BC → N} │═ {B → N} ? Non
o est ce que G – {BC → N} │═ {C → N} ? Non
o Alors BC → N est réduite à gauche.
– DF AI → C :
o est ce que G – {AI → C} │═ {A → C} ? Oui.
o Alors AI → C est réduite à gauche, et on remplace AI → C par A → C dans G.

– DF AB → F :
o est ce que G – {AB → F} │═ {B → F} ? Non
o est ce que G – {AB → F} │═ {A → F} ? Non
o Alors AB → F est réduite à gauche.
G = { A → C , A → D, A → I , BC → F , BC → N , A → C , AB → F }

Etape d’élimination des redondances de G :


– Seule la DF A → C est redondante car : G − { A → C} ≡ G . Donc on supprime une des deux DF
A → C de l’ensemble G.
G = { A → D, A → I , BC → F , BC → N , A → C , AB → F }

Ainsi, la couverture minimale de F = { A → CDI , BC → FN , AI → C , AB → F } est :


G = { A → D, A → I , BC → F , BC → N , A → C , AB → F }

(a) S1 est-elle sans perte d’information ?


Utilisation du tableau de poursuite avec la couverture minimale G car G ≡ F .
S1 = { ABF , ABN , ACDI }
G = { A → D, A → I , BC → F , BC → N , A → C , AB → F }
U = { A, B , C , D, F , I , N } .

Initialisation du tableau de poursuite :


A B C D F I N
ABF a b x1 x2 f x3 x4
ABN a b x5 x6 x7 x8 n
ACDI a x9 c d x10 i x11

Ensuite, on applique l’algorithme.


1ère passe : on prend les lignes ABF et ABN
− On regarde la DF A → D : a = a donc x6 ← x2
− On regarde la DF A → I : a = a donc x8 ← x3
− On regarde la DF A → C : a = a donc x5 ← x1
− On regarde la DF BC → F : bx1 = bx1 donc x7 ← f
− On regarde la DF BC → N : bx1 = bx1 donc x4 ← n
− Inutile de regarder la DF AB → F puisque il n’y a pas de variables pour les attributs A, B et F.
A B C D F I N
ABF a b x1 x2 f x3 n
ABN a b x1 x2 f x3 n
ACDI a x9 c d x10 i x11

Page 18 sur 22

Téléchargé par Ma Ne (nemmich@gmail.com)


lOMoARcPSD|38034373

2nde passe : on prend les lignes ABF et ACDI


− On regarde la DF A → D : a = a donc x2 ← d
− On regarde la DF A → I : a = a donc x3 ← i
− On regarde la DF A → C : a = a donc x1 ← c
A B C D F I N
ABF a b c d f i n
ABN a b x1 x2 f x3 n
ACDI a x9 c d x10 i x11

On arrête l’algorithme car une ligne est pleine de constante : la dernière. Ainsi, la décomposition est
SPI.
S1 est-elle sans perte de dépendance ?
S1 = { ABF , ABN , ACDI } et F = { A → CDI , BC → FN , AI → C , AB → F }
X →Y Ri Z Z ∩ Ri (Z ∩ R ) i
+
(Z ∩ R ) i
+
∩ Ri Z∪ (( Z ∩ R )
i
+
∩ Ri ) spd
A → CDI ABF A A ACDI A A
ABN A A ACDI A A
CDI ACDI A A ACDI ACDI ACDI vrai
BC → FN ABF BC B B B BC
ABN BC B B B BC
FN ACDI BC C C C BC faux

L’algorithme renvoie spd = faux, donc la décomposition n’est pas SPD.

(b) S1 est-elle en 3FN ?


S1 = { ABF , ABN , ACDI } et G = { A → D, A → I , BC → F , BC → N , A → C , AB → F }

Construisons FABF , FABN et FACDI :


FABF = { AB → F } , clé AB
FABN = { AB → N } , clé AB
FACDI = { A → CDI } , clé A

Pour le relation (ABF, FABF ), la DF AB → F est telle que F ∉ AB et AB est une super-clé de ABF.
Pour le relation (ABN, FABN ), la DF AB → N est telle que N ∉ AB et AB est une super-clé de ABN.
Pour le relation (ACDI, FACDI ), la DF A → CDI est telle que CDI ∉ A et A est une super-clé de
ACDI.

On en déduit que S1 = { ABF , ABN , ACDI } est en 3FN par rapport à l’ensemble F de DF.

S1 est-elle en FNBC ?
S1 = { ABF , ABN , ACDI } et G = { A → D, A → I , BC → F , BC → N , A → C , AB → F }

Construisons FABF , FABN et FACDI :


FABF = { AB → F } , clé AB
FABN = { AB → N } , clé AB
FACDI = { A → CDI } , clé A

Pour le relation (ABF, FABF ), la DF AB → F est telle que AB est une super-clé de ABF.

Page 19 sur 22

Téléchargé par Ma Ne (nemmich@gmail.com)


lOMoARcPSD|38034373

Pour le relation (ABN, FABN ), la DF AB → N est telle que AB est une super-clé de ABN.
Pour le relation (ACDI, FACDI ), la DF A → CDI est telle que A est une super-clé de ACDI.

On en déduit que S1 = { ABF , ABN , ACDI } est en FNBC par rapport à l’ensemble F de DF.

(c) S1 a t-elle redondance de données ?


Un schéma en FNBC n’a pas de redondance de données (alors qu’un schéma seulement en 3FN peut en
avoir). Donc, S1 n’a pas redondance de données car S1 est en FNBC.

5) Décomposition 3FN pour décomposer U → S1 :


Entrée :
– U = ABCDFIN et F = { A → CDI , BC → FN , AI → C , AB → F }

Etape 1 :
– On a G = { A → D, A → I , BC → F , BC → N , A → C , AB → F } comme couverture minimale de F.
– On en déduit que R = ABCDFIN et Z = U − R = ∅ .

Etape 2 : initialisation
– S ={ }
– Z = ∅ donc S est inchangé

Etape 3 : Construction de S à partir des DF de G


– Il n’existe pas de DF X → A ∈ G telle que R ⊆ XA
– Donc, pour tout X → A ∈ G , faire S = S ∪ { XA} , ce qui nous donne :
S = { AD, AI , AC , BCF , BCN , ABF }

Etape 4 : existence de la clé de U dans S


– AB est la clé de U, donc S contient la clé A.

Retour :
– la décomposition 3FN de U est S 2 = { AD, AI , AC , BCF , BCN , ABF } .

(a) S2 est-elle sans perte d’information et sans perte de dépendance ?


L’algorithme 3FN est correct et nous assure que S2 est une décomposition SPI et SPD par rapport à F .

(b) S2 est-elle en 3FN ?


L’algorithme 3FN est correct et nous assure que S2 est en 3FN par rapport à F .

S2 est-elle en FNBC ?
S 2 = { AD, AI , AC , BCF , BCN , ABF } et G = { A → D, A → I , BC → F , BC → N , A → C , AB → F }

Construisons FAD , FAI , FAC , FBCF , FBCN et FABF :


FAD = { A → D} , clé A
FAI = { A → I } , clé A
FAC = { A → C} , clé A
FBCF = { BC → F } , clé BC
FBCN = { BC → N } , clé BC
FABF = { AB → F } , clé AB

Page 20 sur 22

Téléchargé par Ma Ne (nemmich@gmail.com)


lOMoARcPSD|38034373

Pour chacune des relations (R, FR ), avec R étant chacun des éléments de S2, la DF X → Y ∈ FR est
telle que X est une super-clé de R. Par conséquent, S2 est en FNBC par rapport à F .

(c) S2 est-elle redondance de données ?


Un schéma en FNBC n’a pas de redondance de données (alors qu’un schéma seulement en 3FN peut en
avoir). Donc, S2 n’a pas redondance de données car S2 est en FNBC.

6) S 3 = { ACDI , BCFN , ABF } :


(a) S3 est-elle sans perte d’information ?
Utilisation du tableau de poursuite avec la couverture minimale G car G ≡ F .
S 3 = { ACDI , BCFN , ABF }
G = { A → D, A → I , BC → F , BC → N , A → C , AB → F }
U = { A, B , C , D, F , I , N } .

Initialisation du tableau de poursuite :


A B C D F I N
ACDI a x1 c d x2 i x3
BCFN x4 b c x5 f x6 n
ABF a b x7 x8 f x9 x10

Ensuite, on applique l’algorithme.


1ère passe : on prend les lignes ACDI et ABF
− On regarde la DF A → D : a = a donc x8 ← d
− On regarde la DF A → I : a = a donc x9 ← i
− On regarde la DF A → C : a = a donc x7 ← c
A B C D F I N
ACDI a x1 c d x2 i x3
BCFN x4 b c x5 f x6 n
ABF a b c d f i x10

2nde passe : on prend les lignes ACDI et BCFN


− On regarde la DF BC → N : bc = bc donc x10 ← n
A B C D F I N
ACDI a x1 c d x2 i x3
BCFN x4 b c x5 f x6 n
ABF a b c d f i n

On arrête l’algorithme car une ligne est pleine de constante : la dernière. Ainsi, la décomposition est
SPI.

S3 est-elle sans perte de dépendance ?


S 3 = { ACDI , BCFN , ABF } et F = { A → CDI , BC → FN , AI → C , AB → F }
X →Y Ri Z Z ∩ Ri (Z ∩ R ) i
+
(Z ∩ R )
i
+
∩ Ri Z∪ (( Z ∩ R )
i
+
∩ Ri ) spd
A → CDI ACDI A A ACDI ACDI ACDI
BCFN ACDI C C C ACDI
CDI ABF ACDI A ACDI A ACDI vrai
BC → FN ACDI BC C C C BC
BCFN BC BC BCFN BCFN BCFN
FN ABF BCFN BF BF BF BCFN vrai
AI → C ACDI AI AI ACDI ACDI ACDI
BCFN ACDI C C C ACDI
C ABF ACDI A ACDI A ACDI vrai

Page 21 sur 22

Téléchargé par Ma Ne (nemmich@gmail.com)


lOMoARcPSD|38034373

AB → F ACDI AB A ACDI ACDI ABCDI


BCFN ABCDI BC BC BC ABCDI
F ABF ABCDI AB ABCDFIN ABF ACDFI vrai

L’algorithme renvoie spd = vrai, donc la décomposition est SPD.

(b) S3 est-elle en 3FN ?


S 3 = { ACDI , BCFN , ABF } et G = { A → D, A → I , BC → F , BC → N , A → C , AB → F }

Construisons FACDI , FBCFN et FABF :


FACDI = { A → CDI } , clé A
FBCFN = { BC → FN } , clé BC
FABF = { AB → F } , clé AB

Pour le relation (ACDI, FACDI ), la DF A → CDI est telle que CDI ∉ A et A est une super-clé de
ACDI.
Pour le relation (BCFN, FBCFN ), la DF BC → FN est telle que FN ∉ BC et BC est une super-clé de
BCFN.
Pour le relation (ABF, FABF ), la DF AB → F est telle que F ∉ AB et AB est une super-clé de ABF.

On en déduit que S 3 = { ACDI , BCFN , ABF } est en 3FN par rapport à l’ensemble F de DF.

S3 est-elle en FNBC ?
S 3 = { ACDI , BCFN , ABF } et G = { A → D, A → I , BC → F , BC → N , A → C , AB → F }

Construisons FACDI , FBCFN et FABF :


FACDI = { A → CDI } , clé A
FBCFN = { BC → FN } , clé BC
FABF = { AB → F } , clé AB

Pour le relation (ACDI, FACDI ), la DF A → CDI est telle que A est une super-clé de ACDI.
Pour le relation (BCFN, FABN ), la DF BC → FN est telle que BC est une super-clé de BCFN.
Pour le relation (ABF, FABF ), la DF AB → F est telle que AB est une super-clé de ABF.

On en déduit que S 3 = { ACDI , BCFN , ABF } est en FNBC par rapport à l’ensemble F de DF.

(c) S3 est-elle redondance de données ?


Un schéma en FNBC n’a pas de redondance de données (alors qu’un schéma seulement en 3FN peut en
avoir). Donc, S3 n’a pas redondance de données car S3 est en FNBC.

7) Choix entre S1, S2 et S3 :


Comme S1 n’est pas en SPD, alors la décomposition S1 est mise à l’écart. Regardons les deux autres
décompositions S2 et S3 qui sont 3FN, FNBC, SPI et SPD. On préférera toute même la décomposition S3 car
elle contient moins de relations que S3, et sera par conséquent plus simple d’utilisation.

Page 22 sur 22

Téléchargé par Ma Ne (nemmich@gmail.com)

Vous aimerez peut-être aussi