0% ont trouvé ce document utile (0 vote)
133 vues3 pages

Lif4 td2 Correction

Ce document contient la correction d'exercices sur l'algèbre relationnelle et le calcul relationnel. Il présente des requêtes à exprimer en algèbre relationnelle, calcul relationnel tuple et domaine. Les corrections sont fournies sous ces trois formes pour chaque exercice.

Transféré par

djonathan mwamba
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
133 vues3 pages

Lif4 td2 Correction

Ce document contient la correction d'exercices sur l'algèbre relationnelle et le calcul relationnel. Il présente des requêtes à exprimer en algèbre relationnelle, calcul relationnel tuple et domaine. Les corrections sont fournies sous ces trois formes pour chaque exercice.

Transféré par

djonathan mwamba
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 3

LIF4 - TD2

Algèbre relationnelle et calcul relationnel


Correction

Exercice 1:

On considère les relations suivantes, données avec leur attributs: R(A, B, C), S(B, C, D, E),
T (A, B, C), U (D, E).
En utilisant uniquement les opérateurs de sélection (σ), de projection (π), d’union (∪), de
différence (−) et de produit cartésien (×), réécrire les requêtes suivantes:

1. R ∩ T
Correction: R − (R − T )
2. R 1 S
Correction: πA,B,C,D,E (σB=B 0 ∧C=C 0 (R × ρB/B 0 ,C/C 0 (S)))

3. R 1Condition U
Correction: σCondition (R × U )

Exercice 2:

On considère les relations R(A, B, C) et S(D, E). Convertir l’expression πA,E (σB=D∧C=D (R ×S))
en :
1. Calcul relationnel tuple
Correction: {t(A,E) .A, t.E|(∃u(A,B,C) )(∃v (D,E) )(R(u) ∧ S(v) ∧ u.B = v.D ∧ u.C = v.D ∧
t.A = u.A ∧ t.E = v.E)}
2. Calcul relationnel domaine
Correction: {(x1 , x2 )|∃y1 ∃y2 ∃y3 ∃z1 ∃z2 R(A : y1 , B : y2 , C : y3 ) ∧ S(D : z1 , E : z2 ) ∧ y2 =
z1 ∧ y3 = z1 ∧ x1 = y1 ∧ x2 = z2 )}

Exercice 3:

Convertir la formule du calcul tuple {t(A,B) |R(t) ∧ (∃u(C,D) )(S(u) ∧ u.C 6= t.B)} en:

1. Expression linguistique
Correction: Cette formule permet d’extraire les n-uplets r de R pour lesquels il existe au
moins un n-uplet s dans S tel que le deuxième composant correspondant à l’attribut B de
r soit différent du composant de s correspondant à l’attribut C.
2. Calcul relationnel domaine
Correction: {x1 , x2 |R(x1 , x2 ) ∧ (∃(y1 , y2 ))(S(y1 , y2 ) ∧ y1 6= x2 )}
3. Algèbre relationnelle
Correction: πA,B (σB6=C (R × S))

1
Exercice 4:

On considère la relation R(A, B).


Convertir la formule du calcul domaine {x, y|R(A : x, B : y) ∧ R(A : y, B : x)} en :
1. Expression linguistique
Correction: Cette formule permet d’extraire une relation R0 de R qui est symétrique.
2. Calcul relationnel tuple
Correction: {t(A,B) |(∃u(A,B) )(R(t) ∧ R(u) ∧ u.A = t.B ∧ u.B = t.A)}
3. Algèbre relationnelle
Correction: πA,B (σA=B 0 ∧B=A0 (R × ρA/A0 ,B/B 0 R))

Exercice 5:

Supposons que nous disposons d’une base de données composée des trois relations suivantes :
• F REQU EN T E(Buveur, Bar)
• SERT (Bar, Biere)

• AIM E(Buveur, Biere)


La relation F REQU EN T E indique les bars que chaque buveur fréquente. La relation SERT
indique les bières servies dans chaque bar et la relation AIM E nous donne les bières préférées
de chaque buveur. Exprimer en (1) algèbre relationnelle, (2) calcul relationnel tuple et (3) calcul
relationnel domaine les requêtes suivantes :

1. Trouver les bars qui servent une bière que Charles aime
Correction:
πBar (SERT 1 (σBuveur=0 Charles0 AIM E))

{t(Bar) |∃u(Bar,Biere) ∃v (Buveur,Biere) SERT (u) ∧ AIM E(v) ∧


u.Biere = v.Biere ∧ v.Buveur =0 Charles0 ∧ t.Bar = u.Bar)}

{x1 |∃x2 SERT (Bar : x1 , Biere : x2 )) ∧


∃y1 ∃y2 (AIM E(Buveur : y1 , Biere : y2 ) ∧ y1 =0 Charles0 ∧ y2 = x2 )}
2. Trouver les buveurs qui fréquentent au moins un bar qui sert une bière qu’ils aiment
Correction:
πBuveur (F REQU EN T E 1 SERT 1 AIM E)

{t(Buveur) .Buveur|∃u(Buveur,Bar) ∃v (Bar,Biere) ∃w(Buveur,Biere)


F REQU EN T E(u) ∧ SERT (v) ∧ AIM E(w) ∧
u.Bar = v.Bar ∧ v.Biere = w.Biere ∧ w.Buveur = u.Buveur ∧ t.Buveur = u.Buveur}

{x1 |∃x1 ∃x2 ∃y1 ∃y2 ∃z1 ∃z2


F REQU EN T E(Buveur : x1 , Bar : x2 ) ∧ SERT (Bar : y1 , Biere : y2 ) ∧
AIM E(Buveur : z1 , Bar : z2 ) ∧ x2 = y1 ∧ y2 = z2 ∧ z1 = x1 )}

2
3. Trouver les buveurs qui fréquentent uniquement les bars qui servent une bière qu’ils aiment
(on suppose que chaque buveur aime au moins une bière et fréquente au moins un bar)
Correction:
πBuveur (F REQU EN T E) − πBuveur (F REQU EN T E − πBuveur,Bar (AIM E 1 SERT ))

{t(Buveur, Bar).Buveur | F REQU EN T E(t) ∧


(∀u(Buveur,Bar) F REQU EN T E(u) ∧ t.Buveur = u.Buveur ⇒
∃v (Bar,Biere) ∃w(Buveur,Biere) SERT (v) ∧ AIM E(w) ∧
v.Bar = u.Bar ∧ w.Biere = v.Biere ∧ t.Buveur = w.Buveur)}

{x | ∃y1 F REQU EN T E(Buveur : x, Bar : y) ∧


(∀y2 F REQU EN T E(Buveur : x, Bar : y2 ) ⇒
∃z SERT (Bar : y2 , Biere : z) ∧ AIM E(Buveur : x, Biere : z))}
4. Trouver les buveurs qui ne fréquentent aucun bar qui sert une bière qu’ils aiment
Correction:
(πBuveur F REQU EN T E) − (πBuveur (AIM E 1 SERT 1 F REQU EN T E))

{t(Buveur,Bar) | F REQU EN T E(t) ∧ ¬(∃u(Buveur,Bar) ∃v (Bar,Biere) ∃w(Buveur,Biere)


F REQU EN T E(u) ∧ SERT (v) ∧ AIM E(w) ∧ u.Bar = v.Bar ∧ v.Biere = w.Biere ∧
w.Buveur = u.Buveur ∧ t.Buveur = u.Buveur)}

{x | ∃y1 F REQU EN T E(Buveur : x, Bar : y1 ) ∧


¬(∃y2 ∃z F REQU EN T E(Buveur : x, Bar : y2 ) ∧ SERT (Bar : y2 , Biere : z) ∧
Aime(Buveur : x, Biere : z))}

Vous aimerez peut-être aussi