Sujet de TD n1
BASES DE DONNES
Correction
Modle relationnel, dcomposition, pertes de donnes et de dpendances
Attention : vous ferez la question 5 comme exercice personnel une fois que lon aura assez avanc
dans le cours.
EXERCICE 1
Soit un schma relationnel constitu d'une seule relation :
R (Id-Cours, Id-Etudiant, Age, Note)
QUESTIONS
1. Donner quelques exemples de tuples correspondant la relation R.
Id-cours
C1
C1
C2
C3
Id-etudiant
E1
E2
E1
E1
Age
18
20
18
18
Note
15
16
12
12
supprim dans la relation initiale (qui est devenue R1), la DF entre [Id-cours, Id-Etudiant] et
Age
cr la relation R2 dont la cl candidate est [Id-Etudiant] et qui a comme attribut Age.
5. Vrifier que la dcomposition est sans perte de donnes (le vrifier exprimentalement en
faisant une jointure puis en le dmontrant laide du thorme de HEATH) et sans perte de
dpendances
Si on suit les dfinitions . Il faut que la dcomposition se fasse :
Sans perte de donnes : la jointure naturelle des relations issues de la dcomposition
dune relation R doit tre une relation dont le contenu est quivalent celui de la
relation R
Sans perte de dpendance : on peut alors retrouver (notamment par transitivit) toutes
les DF de R partir des relations issues de la dcomposition
On a vu en cours que pour une dpendance non lmentaire si on commence par soccuper de la dpendance
lmentaire qui rend justement la dpendance non lmentaire alors on se retrouve toujours dcomposer par rapport
des dpendances lmentaires.
Id-etudiant
E1
E2
E1
E1
Id-etudiant
E1
E2
Note
15
16
12
12
Age
18
20
Cette dfinition permet de tout de suite dire quil y a perte de donne si le contenu de R et de la
relation issue de la jointure sont diffrent : Soit une relation R(A,B,C) o A, B et C sont des
ensembles d'attributs disjoints, avec B C alors R(A,B,C) = R[A,B] J{B} R[B,C]
Sinon il faut appliquer le thorme de HEATH : Toute relation R(X, Y, Z) est dcomposable
sans perte dinformation en
R1 = projection (X, Y) de R et
R2 = projection (X, Z) de R
Sil y a dans R une dpendance fonctionnelle de X vers Y (X Y)
EXERCICE 2
Soit la relation :
Commande (No- Commande, No-Produit, Quantit-Commande, No-Client, No-Reprsentant)
QUESTIONS
1. Donner quelques exemples de tuples correspondant la relation R.
No-Commande
CO1
CO1
CO2
CO2
No-Produit
PR1
PR2
PR2
PR3
Quantit-Commande
10
15
10
11
No-client
CL1
CL1
CL3
CL3
No-Reprsentant
RE1
RE1
RE2
RE2
PR3
11
RE1
Une cl candidate cest un attribut ou ensemble d'attributs minimal en DF avec les autres
attributs de la relation :
[No-Commande, No-Produit] est en DF (lmentaire) avec QuantitCommande, No-Client, No-Reprsentant (1re DF)
Remarque : [No-Commande, No-Produit] est aussi en DF (non lmentaire)
avec No-Client, No-Reprsentant
[No-Commande, No-Produit] est donc cl candidate
3. Citer les anomalies et les redondances qui se trouvent dans la relation R
Les DFs suivantes induisent des anomalies (les parties gauches ne correspondent pas la cl
candidate) :
DF1 : No-Commande No-Client, No-Reprsentant
Duplication du numro de client et du numro de reprsentant chaque fois quun mme
produit est concern par une commande.
DF2 : No-Client No-Reprsentant
Duplication du numro de reprsentant pour chaque commande concernant le mme client.
4. Dcomposer la relation R afin de supprimer les anomalies.
Si on applique ce qui a t dit lexercice n1 :
On cherche dabord enlever DF1 :
R1 (No-Commande, No-Produit, Quantit-Commande) correspond une
commande
R1 contient seulement une DF qui a pour partie gauche la totalit de la cl.
R2 (No-Commande, No-Client, No-Reprsentant)
R2 contient toujours une DF qui na pas pour partie gauche la totalit de la cl ; il
faut donc dcomposer R2 car R2 introduit des anomalies : duplication du numro
de reprsentant pour chaque commande concernant le mme client.
o R2 (No-Commande, No-Client) correspond au fait quune commande est
ralise par un client et un seul.
R2 contient seulement une DF qui a pour partie gauche la totalit de la cl.
o R2 (No-Client, No-Reprsentant) correspond laffectation dun
reprsentant un client (un client a un seul reprsentant qui soccupe de
lui)
R2 contient seulement une DF qui a pour partie gauche la totalit de la cl.
On cherche dabord enlever DF2 :
R1 (No-Commande, No-Produit, Quantit-Commande, No-Client)
En partant de DF1 ou de DF2 on aboutie la mme dcomposition (ce nest pas toujours le
cas) mais en passant par des relations intermdiaires diffrentes.
5. Vrifier que la dcomposition est sans perte de donnes (le vrifier exprimentalement en
faisant une jointure puis en le dmontrant laide du thorme de HEATH) et sans perte de
dpendances
On montrera comme dans lexercice n1 quil ny a pas de perte de rgles de dpendances.
Il reste vrifier quil ny a pas de perte de donnes en faisant les jointures naturelles
EXERCICE 3
Soit la relation :
R (Fournisseur, Adresse, Raison-Sociale, no-Produit, Libell-Produit, Quantit, Prix, NoCommande, Dlai, Date)
QUESTIONS
1. Donner quelques exemples de tuples correspondant la relation R.
Fournisseur Adresse Raison
sociale
F1
A1
R1
F1
A1
R1
F3
A3
R3
F3
A3
R3
F1
A1
R1
NoProduit
PO1
PO2
PO2
PO3
PO1
LibellProduit
LIBP1
LIBP2
LIBP2
LIBP3
LIBP1
Quantit Prix
20
30
25
20
40
105
110
101
120
105
NoCommande
CO1
CO1
CO2
CO2
C03
Dlai
Date
15
15
10
10
15
D1
D1
D2
D2
D3
[No-Commande, No-Produit] est en DF (mais pas lmentaire) avec les autres attributs
o De plus : No-Commande Fournisseur, Dlai, Date
o De plus : Fournisseur Raison Sociale, Adresse (par transitivit : NoCommande Raison Sociale, Adresse
Et donc No-Commande Fournisseur, Dlai, Date, Raison Sociale, Adresse
Et donc [No-Commande, No-Produit] Fournisseur, Dlai, Date, Raison-Sociale,
Adresse, Quantit (mais pas lmentaire)
o De plus No-Produit Libell-Produit
Et donc [No-Commande, No-Produit] Libell-Produit (pas lmentaire)
Et donc [No-Commande, No-Produit] Fournisseur, Dlai, Date, Raison-Sociale,
Adresse, Libell-Produit, Quantit (mais pas lmentaire)
o Si on applique laxiome dAmstrong de pseudo-transitivit :
Si X Y et WY Z alors WX Z
X = No-Commande, Y = Fournisseur, W = No-Produit, Z = prix
On sait que :
No-Commande Fournisseur et No-Produit, Fournisseur Prix,
Donc : No-Commande, No-Produit Prix
Et donc [No-Commande, No-Produit] Fournisseur, Dlai, Date, Raison-Sociale,
Adresse, Libell-Produit, Prix, Quantit (mais pas lmentaire)
R (Fournisseur, Adresse, Raison-Sociale, no-Produit, Libell-Produit, Quantit, Prix, NoCommande, Dlai, Date) se dcompose en :
R1 (Fournisseur, no-Produit, Libell-Produit, Quantit, Prix, No-Commande, Dlai, Date)
R2 (Fournisseur,Raison-Sociale, Adresse) DF2
R1 se dcompose en :
R1 (no-Produit, Libell-Produit, Quantit, Prix, No-Commande)
R1 (No-Commande, Fournisseur, Dlai, Date) DF1
Le problme est que lon a perdu une DF (DF3).
Il semble que si on procde dans lordre DF4, DF3, DF2, DF1 on nait pas de perte de
dpendance car les parties droites ninfluencent pas les DF (partie gauche) suivantes (
vrifier)
5. Vrifier que la dcomposition est sans perte de donnes (le vrifier exprimentalement en
faisant une jointure puis en le dmontrant laide du thorme de HEATH) et sans perte de
dpendances
Voir 4). Il reste vrifier quil ny a pas de perte de donnes en faisant les jointures naturelles
EXERCICE 4
Soit la relation :
R (A, B, C, D, E)
QUESTIONS
1. Donner quelques exemples de tuples correspondant la relation R.
A
A1
A2
A3
A4
B
B1
B2
B2
B4
C
C1
C1
C1
C2
D
D1
D2
D3
D1
E
E1
E2
E2
E3
E,C B
Et donc :