Interrogation des bases de données
Soit la base de données relationnelle, PUF, de schéma :
U (NU, NomU, Ville)
P (NP, NomP, Couleur, Poids)
F (NF, NomF, Statut, Ville)
PUF (NP, NU, NF, Quantité)
décrivant le fait que :
U: une usine est décrite par son numéro NU, son nom NomU, la ville Ville dans laquelle
elle est située;
P: un produit est décrit par son numéro NP, son nom NomP, sa Couleur, son Poids;
F: un fournisseur est décrit par son numéro NF, son nom NomF, son Statut (fournisseur
sous-traitant, fournisseur-client, .....), la Ville où il est domicilié;
PUF: le produit de numéro NP a été livré à l’usine de numéro NU par le fournisseur de
numéro NF dans une Quantité donnée.
Exprimer en algèbre relationnelle, en calcul tuples, en calcul domaines, et en SQL les
requêtes suivantes:
(1) Donner le numéro, le nom et la ville de toutes les usines.
(2) Donner le numéro, le nom et la ville de toutes les usines de Londres.
(3) Donner les numéros des fournisseurs qui approvisionnent l’usine n?1 en produit n?1.
(4) Donner le nom et la couleur des produits livrés par le fournisseur n?1.
(5) Donner les numéros des fournisseurs qui approvisionnent l’usine n?1 en un produit rouge.
(6) Donner les noms des fournisseurs qui approvisionnent une usine de Londres ou de Paris
en un produit rouge.
(7) Donner les numéros des produits livrés à une usine par un fournisseur de la même ville.
(8) Donner les numéros des produits livrés à une usine de Londres par un fournisseur de
Londres.
(9) Donner les numéros des usines qui ont au moins un fournisseur qui n’est pas de la même
ville.
(10) Donner les numéros des fournisseurs qui approvisionnent à la fois les usines n?1 et n?2.
(11) Donner les numéros des usines qui utilisent au moins un produit disponible chez le four-
nisseur n?3 (c’est-à-dire un produit qu’il livre mais pas nécessairement à cette usine).
(12) Donner le numéro du produit le plus léger (les numéros si plusieurs produits ont ce même
poids).
1
(13) Donner les numéros des usines qui ne reçoivent aucun produit rouge d’un fournisseur
londonien.
(14) Donner les numéros des fournisseurs qui fournissent au moins un produit fourni par au
moins un fournisseur qui fournit au moins un produit rouge.
(15) Donner tous les triplets (VilleF, NP, VilleU) tels qu’un fournisseur de la première ville
approvisionne une usine de la deuxième ville avec un produit NP.
(16) Même question qu’en 15, mais sans les triplets où les deux villes sont identiques.
(17) Donner les numéros des produits qui sont livrés à toutes les usines de Londres.
(18) Donner les numéros des fournisseurs qui approvisionnent toutes les usines avec un même
produit.
(19) Donner les numéros des usines qui achètent au fournisseur n?4 tous les produits qu’il
fournit.
(20) Donner les numéros des usines qui s’approvisionnent uniquement chez le fournisseur n?3.
2
"!$# &%(')!$# *"+-, -./102436570
986;:"*<+-, -.9=">@?%(ACBCDE.1FE>(102
1GH JIK1:LJ!<=KM9NJO6=KMP9QR0TSUWVL3X5
JIK1:LJ!<=KMPY:LJO6=KM9QR0TSZU
Y[\ J%(']OJ# ^6%(_C,-.Y_CDU1Qa`bJO6=<JO :L&Ic=KM9QR0TSZ
9d6 JIK1:LJ!<=KMP1QR0TSe`bJO6=<JOT: ^H%(_U,-.1_UDf= >hg %(_Ci(. > 1QjU
1kH J%(']I$1S`lQR0TSm`4: ^H%(_U,-.1_UDf="> g %(_Ci(.Y>n9Qje`4 J!Y:"*<+-, -.9=">o?%([Link]>hq*<+-, -.9=">rOcsnDE+-Fp>t90TUZ
9u6 JOv9QR0TSm`lS`l02
JOvU9QR0wS`b&Ic=<JITSx`b"!"=<"!JNy*"+-, -.t=J*"+-, -.$02
1zH JOv9QR0TSm`4:"*<+-, -.9=">o?%([Link]>(1Sx`{0T
1|H "!}1:"*<+-, -.U=J~ *"+-, -.1IL9QR0TS`l0`{v*<+-, -.( *<+-, -.YIL9SZU4365
"!}Y JIH# J!}1QR0TS &I\# J!10`{SU
yH JIK1:LJ!<=KMP1QR0TSZx
; JIKY:L"!<=<b1QR0TSZ
6 "!}Y JOv1:L&Ic=<b9QR0TSZx`bJO6=<JOQR0TS
86 JOv9Qj} JOv1:<O%(+-BCF1\O6b9Q)O%(+-BCF1 O6fLO%(+-BCF/1QjUUZ
yGH "!}902} J!Y:"*<+-, -.9=">@?%([Link]>n9Sx`lQR0TSm`l: ^6%(_C,-.Y_CD="> g %(_Ci(.Y>1QZ
[\ JIKY &O]f JI1: ^6%(_C,-.Y_CD="> g %(_Ci(.Y>1Qjx`{QR0TS}`4QR0TS}`lQR0TS
d6d<*<+-, -.YIH# JOJ# *"+-, -.1!x9v*<+-, -.( *<+-, -.YI 1S)`lQR0TSm`{v*<+-, -.( *"+-, -.9!x102Z
ykH;:"*<+-, -.1!]=J~ *"+-, -.1IL9d6
u6 JOJ# J!e9QR0TSZb "!}1:"*"+-, -.9=">o?%([Link]>n90TU
yzH JIKY &IH# "!$# &O9QR0TSZUb J!102
y|H JOJ# J!e1:LJIc="c1Qj0wSUZb JOv1:L&Ic="c9QR0TSZ
98XH "!}9QR0TS} J!Y:LJI"=<~ 1Qj0wSU
}J<pEcU 36" 3X5< U¡P¢\5]¡£ ¡¤8&¥
¦ ªX)cO %(¡+-BC5"F1 U O6{<fL¡ Ob %(+-3 BUF/<1§¨{"Z©¡ p 5< U¡ <p¡cC U 36¡ ;cUQ 36 ª ¡ 5<Z¡5 «cZ p¬ 5 Qj8JV 3X ¡ 3X5 ¡P ¡
¦ §®cU p¬ ]5 O %(2+-BC"F9 OX¡ pY LO U%(¡ +-pBCcFCC9§ 36U©Q³1´T5"<Qx¡7V]´w Z¡ 36pc°¤CQe36V] µ436ª 5 ¡ ¯¡P5< 3XVx°¤Qx°3 ¡ <CcWU¶ ·E¬ ªc5 X ¡5<9±² bU< ¡ p¬ ¡5 U ¡¸Qj U8a¡ p¡ c¤C 36¡
U5 Z3 P Z¡ ¡»/¹L< 5¯¢\5<<¡ 36° 5 ¬ < Z ¡ ¡º<<¡ ¡« Q 5 <ª ¡¡ {w</¡¹< Qj¢\ 5<¡ 3 <<¡«Q ¡{<36° ¬ U¡º<¡ 5 " ¡R¡P <36 ;¡» ¼ X
¦ :<<Ob36%( +-BUF9\p¿O6yªc9§½X ¡P·5< ·]Ob"%(¡+-BUF9Qe O63 b f<L·O%(¡P+-BC F/ 1§¨Z5 ZUj¡P» ¾ ¡P5<36 U·¡Á"À¡T¼Â Zªc<X¡« ¡<5<5 < Z¡3J<Qj5 8JE¶ ¡ J¡ªc» X ¡P¡P·5< U¢\¤5<¡<¡ ¡´T QÃ5 <¢\ ¡5
U5 U¬3&< 5 ¡ U36 « ¡P{\5<° ¡P» U36º<¡P U3&<5 Ä {¢\5 U3X w< 5< 365" U<{¢\5 ±o 5¯°¤3 <l5< 5 U¡
Ä
8
Calcul Relationnel Tuples (TRC)
(1) u NU u NomU u Ville U u
(2) u NU u NomU u Ville U u u Ville
‘Londres’
(3) l NF PUF l l NU
1 l NP
1
(4) p NomP p Couleur P p
l PUF l p NP
l NP l NF
1
(5) l NF PUF l
p P p l NP
p NP l NU
1 p Couleur
‘Rouge’
(6) f NomF F f
l p u PUF l P p U u f NF
l NF l NP
p NP
l NU
u NU p Couleur
‘Rouge’
u Ville
‘Londres’ u Ville
‘Paris’
(7) l NP PUF l
f u F f U u l NF
f NF l NU
u NU
f Ville
u Ville
(8) l NP PUF l
f u F f U u l NF
f NF l NU
u NU
f Ville
‘Londres’ f Ville
u Ville
(9) l NU PUF l
u f U u F f l NU
u NU l NF
f NF
u Ville
f Ville
(10) l1 NF PUF l1
l2 PUF l2
l1 NF
l2 NF l1 NU
1 l2 NU
2
(11) u NU U u
l1 l2 PUF l1 PUF l2 u NU
l1 NU l1 NP
l2 NP
l2 NF
3
(12) p1 NP P p1 p2 P p2 p2 Poids p1 Poids
p1 NP P p1 p2 P p2 p2 Poids p1 Poids
(13) u NU U u l p f PUF l P p F f u NU
l NU l NP
p NP
l NF
f NF p Couleur
‘Rouge’ f Ville
‘Londres’
(14) l NF PUF l
l1 l2 p PUF l1 PUF l2 P p
l NP
l1 NP l1 NF
l2 NF l2 NP
p NP p Couleur
‘Rouge’
(15) f Ville l NP u Ville F f PUF l U u f NF
l NF l NU
u NU
(16) f Ville l NP u Ville F f PUF l U u f NF
l NF l NU
u NU
f Ville
u Ville
(17) p NP P p u U u u Ville
‘Londres’
l PUF l p NP
l NP l NU
u NU
(18) l NF PUF l u U u l1 PUF l1 l1 NF
l NF
l1 NP
l NP l1 NU
u NU
ou bien
1
l NF PUF l
p P p u U u l1 PUF l1 l1 NF
l NF
l1 NP
p NP l1 NU
u NU
(19) u NU U u l1 PUF l1 l1 NF
4 l2 PUF l2 u NU
l2 NU
l1 NP
l2 NP l2 NF
4
(20) u NU U u l PUF l u NU
l NU l NF
3
ou bien
u NU U u l PUF l u NU
l NU l NF
3
2
Exercice n°1 :
1. L'ensemble minimum de dépendances fonctionnelles de R1 est le suivant :
DF = { AB → D, B → C, D → E, D → F
2. La clé de cette relation est (A,B). Cette relation est en première forme normale mais pas en
deuxième forme normale car il y a un attribut qui ne fait pas partie de la clé (l’attribut C)
qui dépend d'une partie de la clé (l’attribut B).
3. La relation R11 (A, B, D, E, F) est en deuxième forme normale et pas en troisième normale
car il subsiste une dépendance transitive. La relation R12(B,C) est en BCNF.
4. On peut décomposer R11 en R112 (D, E, F) et R112(A,B,D) sans perte d'information.
Exercice n°2 :
1. Couverture minimale des dépendances fonctionnelles de R :
Avec A → C et A, C →E, on constate que A, C → E n'est pas élémentaire et que l'on
peut la remplacer par A →E sans perte de dépendance.
Avec A →E et A, D, E → B, G, on constate que A, D, E → B, G n'est pas élémentaire
et que l'on peut la remplacer par A, D → B, G sans perte de dépendance.
Avec A → B et A, D → B, on constate que A, D → B est redondante et que l'on peut la
supprimer.
Avec A → B, C → B et A →C, on constate que A → B peut être déduite et que l'on
peut donc la supprimer.
L'ensemble minimum des dépendances fonctionnelles de R est donc le suivant :
A → C, E
A, D → G
C, G → D
B, G → C
C→B
2. Voici une décomposition sans perte de dépendance ni d'information :
R1 (A, E, C) en BCFN
R2 (A, D, G) en BCFN
R3 (C, G, D) en BCFN
R4 (B, G, C) en 3FN
3. Les clés de chaque relation :
Pour R1 – la Clé est A
Pour R2 – la Clé est le couple(A,D)
Pour R3 – la Clé est le couple (C, G)
Pour R4 – la Clé est le couple (B, G)