Documente Academic
Documente Profesional
Documente Cultură
BDC Capitol2 PDF
BDC Capitol2 PDF
Capitolul 2
ALGEBRA RELA IONAL
Algebra rela ional deseori e conceput ca un limbaj abstract de formulare a
interpel rilor (cererilor) sau ca o colec ie de opera ii pe rela ii avnd drept operanzi una
sau mai multe rela ii i producnd ca rezultat alt rela ie. Opera iile algebrei rela ionale
pot fi divizate n dou grupuri: opera iile tradi ionale pe mul imi (vezi fig.2.1) ce
consider rela iile ca mul imi de tupluri i opera iile rela ionale native (fig.2.2).
Denumire Simbol
Uniunea
Intersec ia
Diferen a \
Produsul (cartezian)
Fig. 2.1. Opera iile tradi ionale pe mul imi
Denumire Simbol
Proiec ia
Selec ia
Jonc iunea
|x|
- jonc iunea
Semijonc iunea |x|F
Diviziunea |x
Fig.2.2. Opera iile rela ionale native
Defini ia 2.1. Vom spune c dou rela ii r(R) i s(S) sunt compatibile (sau au
scheme compatibile), dac ntre R i S exist o coresponden biunivoc f: pentru orice
atribut A din R, exist un atribut B n S nct dom(A)=dom(B), B=f(A) i A=f-1(B),
unde f-1 este func ia invers func iei f.
1
Capitolul 2. Algebra rela ional
f2 a1 a1 c3
f3 a1 a3 c2
a2 c1
Fig.2.3.
Exemplul 2.1. Fie baza de date din fig.2.3 ce const din trei rela ii:
vnz ri(FIRM5 ARTICOL), articole(ARTICOL CULOARE), furnizori(ARTICOL
FURNIZOR). Schemele rela iilor vnz ri i articole nu sunt compatibile, n timp ce
schemele rela iilor vnz ri i furnizori sunt compatibile. Ultimele rela ii sunt definite pe
atribute ce primesc valori din acelea i domenii. Valorile active sunt totu i diferite,
fiindc un furnizor poate s nu fie firm i viceversa.
2.1.2. Uniunea
Uniunea a dou rela ii presupune c schemele lor sunt compatibile.
r A B C s A B C
a1 b1 c1 a1 b1 c1
a1 b2 c3 a1 b1 c2
a2 b1 c2 a1 b2 c3
a3 b2 c3
q A B C
a1 b1 c1
a1 b1 c2
a1 b2 c3
a2 b1 c2
a3 b2 c3
Fig.2.5. Rela ia q = r s
Defini ia 2.2. Uniunea a dou rela ii compatibile r(R) i s(S), notat cu r s, e o
rela ie definit pe schema R sau S i const din tuplurile ce apar in rela iilor r sau s,
adic
r s = {t | t r t s}.
Exemplul 2.2. Fie rela iile r(A B C) i s(A B C) din fig.2.4. Rela ia din fig.2.5
este q = r s.
2
Capitolul 2. Algebra rela ional
2.1.3. Intersec ia
Similar uniunii, intersec ia a dou rela ii cere ca operanzii s fie rela ii cu scheme
compatibile.
Exemplul 2.3. Fie rela iile r(A B C) i s(A B C) din fig.2.4. Rela ia q = r s este
prezentat n fig.2.6.
q A B C
a1 b1 c1
a1 b2 c3
Fig.2.6
2.1.4. Diferen a
Opera ia diferen a presupune c operanzii sunt rela ii cu scheme compatibile.
Defini ia 2.4. Diferen a a dou rela ii compatibile r(R) i s(S), notat cu r \ s, este
o rela ie definit pe mul imea de atribute R sau S i are n calitate de tupluri, toate
tuplurile din rela ia r ce nu sunt n s, adic
r \ s = {t | t r & t s}.
Exemplul 2.4. Fie rela iile r(A B C) i s(A B C) din fig.2.4. Rela iile q1 = r \ s, i
q2 = s \ r sunt prezentate n fig.2.7.
q1 A B C q2 A B C
a2 b1 c2 a1 b1 c2
a3 b2 c3
Fig.2.7.
3
Capitolul 2. Algebra rela ional
tup A B C Er A B C
a1 b1 c1 a1 b1 c2
a1 b1 c2 a1 b1 c3
a1 b1 c3 a1 b2 c1
a1 b2 c1 a1 b2 c2
a1 b2 c2 a2 b1 c1
a1 b2 c3 a2 b1 c3
a2 b1 c1 a2 b2 c1
a2 b1 c2 a2 b2 c2
a2 b1 c3 a2 b2 c3
a2 b2 c1 a3 b1 c1
a2 b2 c2 a3 b1 c2
a2 b2 c3 a3 b1 c3
a3 b1 c1 a3 b2 c1
a3 b1 c2 a3 b2 c2
a3 b1 c3 a3 b2 c3
a3 b2 c1
a3 b2 c2
a3 b2 c3
Fig.2.8.
Diferen a a dou rela ii are patru cazuri speciale. Un caz este \ r = ; altul e r \
= r pentru orice rela ie r(R). Celelalte cazuri le vom examina n urm toarele dou
sec iuni.
2.1.5. Complementul
Defini ia 2.5. Fie rela ia r(R). Not m prin tup(R) mul imea tuturor tuplurilor
asupra atributelor schemei R i a domeniilor lor. Complementul rela iei r, notat cu Er,
este
Er = tup(R) \ r.
Exemplul 2.5. Fie rela ia r(A B C) din fig.2.4 i fie dom(A) = {a1,a2,a3}, dom(B)
= {b1,b2}, dom(C) = {c1,c2,c3}. Atunci tup(A B C) i Er sunt cele din fig.2.8.
Este clar c , dac pentru un atribut A din R domeniul dom(A) este infinit, atunci i
Er va fi infinit i deci nu va fi o rela ie conform defini iei noastre. Pentru lichidarea
acestui dezavantaj se introduce no iunea de complement activ.
atup A B C ~r A B C
a1 b1 c1 a1 b1 c2
a1 b1 c2 a1 b1 c3
a1 b1 c3 a1 b2 c1
a1 b2 c1 a1 b2 c2
a1 b2 c2 a2 b1 c1
a1 b2 c3 a2 b1 c3
a2 b1 c1 a2 b2 c1
4
Capitolul 2. Algebra rela ional
a2 b1 c2 a2 b2 c2
a2 b1 c3 a2 b2 c3
a2 b2 c1
a2 b2 c2
a2 b2 c3
Fig.2.9.
2.1.6. Complementul activ
Versiunea modificat a complementului unei rela ii, complementul activ,
ntotdeauna va produce o rela ie.
r A B C s D E
a1 b1 c1 d1 e1
a1 b2 c3 d1 e2
a2 b1 c2
Fig.2.10.
Exemplul 2.7. Fie rela iile r(A B C) i s(D E) din fig.2.10. Produsul cartezian q =
r s arat ca n fig.2.11.
q A B C D E
a1 b1 c1 d1 e1
5
Capitolul 2. Algebra rela ional
a1 b1 c1 d1 e2
a1 b2 c3 d1 e1
a1 b2 c3 d1 e2
a2 b1 c2 d1 e1
a2 b1 c2 d1 e2
Fig.2.11.
2.1.8. Atribuirea
Fie r(R) i s(S) dou rela ii cu scheme compatibile i R S. Pentru a aplica asupra
lor opera iile binare tradi ionale se face reatribuirea rela iilor pentru a renumi diferen a
de atribute R \ S sau S \ R. Atribuirea se utilizeaz i pentru p strarea rezultatelor
intermediare.
r A B C s A D C
a1 b1 c1 a1 b1 c1
a1 b2 c3 a1 b2 c3
a2 b1 c2 a2 b1 c2
Fig.2.12.
Urm torul exemplu ilustreaz utilizarea opera iei atribuirea pentru renumirea
atributelor unei scheme.
Exemplul 2.9. Fie rela ia r(A B C) din fig.2.12. Atunci, s(A D C): = r(A B C).
r A B C s A B C q1 A B C
a1 b1 c1 a1 b1 c1 a1 b1 c1
a1 b2 c3 a1 b1 c2 a1 b1 c2
a2 b1 c2 a1 b2 c3 a1 b2 c3
a3 b2 c3 a2 b1 c2
a3 b2 c3
q2 A B C q A B C
6
Capitolul 2. Algebra rela ional
a1 b1 c1 a1 b1 c2
a1 b2 c3 a2 b1 c2
a3 b2 c3
Fig.2.13.
Exemplul 2.10. Fie rela iile r(A B C) i s(A B C) din fig.2.13. Atunci q : = (r s)
\ (r s). Rela ia q s-a construit aplicnd consecutivitatea de opera ii: q1 : = r s, q2: = r
s, q= q1 \ q2.
Tupluri distincte din r pot deveni identice, cnd se proiecteaz pe o mul ime de
atribute. Tuplurile duplicate n rela ia rezultat se elimin .
r A B C s A C
a 10 1 a 1
a 20 1 b 1
b 30 1 b 2
b 40 2
Fig.2.14.
7
Capitolul 2. Algebra rela ional
2.2.2. Selec ia
Selec ia este o opera ie unar . Pentru selectarea unor tupluri dintr-o rela ie e
necesar specificarea condi iilor de selectare. n rezultat se ob ine o rela ie ce e o
submul ime de tupluri a rela iei ini iale. Fie c condi ia de selec ie se noteaz prin
formula calculului propozi ional, F, definit recursiv:
(1) A B i A a sunt formule, unde A i B sunt atribute compatibile i
a dom(A), iar {=, , <, N, >, }. Aceste formule sunt atomice.
(2) Dac G i H sunt formule, atunci conjunc ia G&H, disjunc ia G H,
nega iile G i H sunt formule.
(3) Nimic altceva nu e formul .
Defini ia 2.10. Vom spune c formula F e aplicabil rela iei r(R), dac orice
constant c din F este n dom(R), i orice atribut A din F este n R. O rela ie r satisface F
(sau F e valid n r), dac F e aplicabil rela iei r i orice tuplu t r satisface formula F n
sensul c formula G ob inut prin substituirea oric rui atribut A din F cu A-valoarea
tuplului t are valoarea adev r.
Defini ia 2.11. Selec ia rela iei r (R) conform formulei F, unde F e aplicabil
rela iei r(R), e o submul ime a rela iei r(R), notat cu F(r), ce const din toate tuplurile
t r ce satisfac F, adic
F(r) = {t | t r & F(t)}.
Exemplul 2.12. Fie r(A B C D) din fig.2.15. Atunci s= ((A = B) & (D>5))(r).
r A B C D s A B C D
a a 1 7 a a 1 7
b b 5 5 b b 23 10
b b 12 3
b b 23 10
Fig.2.15.
Opera ia selec ia este distributiv n raport cu opera iile binare tradi ionale pe
mul imi. Fie r i s dou rela ii compatibile i { , ,\}, atunci F (r s) = F(r) F (s).
S ar t m, de exemplu, c F (r s) = F(r) F (s). ntr-adev r:
F (r s) = F({t | t r t s}) =
8
Capitolul 2. Algebra rela ional
r A B C s D E
a1 b1 4 3 e1
a1 b2 2 4 e1
a2 b1 6 1 e2
Fig.2.16.
q A B C D E
a1 b1 4 1 e2
a1 b1 4 3 e1
a1 b2 2 1 e2
a2 b1 6 3 e1
a2 b1 6 4 e1
a2 b1 6 1 e2
Fig.2.17.
Exemplul 2.13. Fie rela iile r(A B C) i s(D E) din fig.2.16, unde dom(C) =
dom(D). n fig.2.17 rela ia r|x|C>Ds este prezent .
9
Capitolul 2. Algebra rela ional
Opera ia -jonc iunea poate fi exprimat prin opera iile produsul cartezian i
selec ia. Rezultatul unei -jonc iuni este acela i cu rezultatul unei selec ii operate asupra
unui produs cartezian, adic r|x|A Bs = A B(r s).
S observ m c opera ia selec ia poate fi simulat prin opera iile -jonc iunea i
proiec ie. Fie rela ia r(R). Pentru a calcula A a(r) se construie te o rela ie s definit pe
un singur atribut, A. Rela ia s con ine un singur tuplu componenta c ruia are valoarea a
pentru atributul A. Atunci A a(r) = R(r |x|A as).
Deci, fiecare tuplu din rela ia rezultat este o concatenare a unui tuplu din r cu un
tuplu din s ce au (R S)-valori egale. Atributele cu acela i nume n schema rela iei
rezultat se iau o singur dat .
Exemplul 2.14. n fig.2.18 sunt afi ate rela iile r(A B C), s(B C D) i q(A B C D),
unde q = r |x| s.
Dac R i S sunt disjuncte, R S= , atunci jonc iunea rela iilor r i s este identic
cu produsul cartezian al lor, adic r|x|s = r s.
Dac R S i |R S| = k, atunci jonc iunea poate fi redat prin opera iile
proiec ia, selec ia i produsul cartezian: r|x|s = RS ( F (rs)), unde F = (r.A1 = s.A1) &
(r.A2 = s.A2) & & (r.Ak = s.Ak) pentru Ai R S, 1 N i N k.
r A B C s B C D
a1 b1 c1 b1 c1 d1
a1 b2 c1 b1 c1 d2
a2 b1 c2 b1 c2 d3
b2 c2 d4
q A B C D
10
Capitolul 2. Algebra rela ional
a1 b1 c1 d1
a1 b1 c1 d2
a2 b1 c2 d3
Fig.2.18.
s1 A B s2 B C s3 A C
a1 b1 b1 c1 a1 c1
a2 b1 b1 c2 a2 c1
q A B C
a1 b1 c1
a2 b1 c2
Fig.2.19
Exemplul 2.15. Fie rela iile s1(A B), s2(B C), s3(A C) i q(A B C ) din fig.2.19,
unde q=s1|x|s2|x|s3. Tuplurile<a1, b1>, <b1, c1>, i <a1, c1> sunt jonc ionabile. De
asemenea <a2, b1>, <b1, c2>, i <a2, c1> sunt jonc ionabile, dar tuplurile <a2, b1>, <b1,
c2>, i <a1, c1> sunt nonjonc ionabile.
Exemplul 2.16. Fie rela iile r(A B) i s(B C). Not m q=r|x|s i r1 = AB(q). n
urma opera iilor, observ m c tuplurile rela iei r1 constituie o submul ime proprie a
rela iei r (vezi fig.2.20.).
11
Capitolul 2. Algebra rela ional
r A B s B C
a1 b1 b1 c1
a1 b2
q A B C r1 A B
a1 b1 c1 a1 b1
Fig.2.20.
Exemplul 2.17. n acest exemplu r1 = r. Sunt date rela iile r(R) i s(S) cu
extensiile ca n fig.2.21, q = r|x|s, i r1 = AB(q). Este evident c semnul dintre rela iile
r1 i r este "=", dac pentru orice tuplu tr din r exist un tuplu ts n s ce satisfac egalitatea
tr[R S] = ts[R S]. Cu alte cuvinte, dac R S (r) = R S (s).
r A B s B C
a1 b1 b1 c1
a2 b2 b2 c2
q A B C r1 A B
a1 b1 c1 a1 b1
a2 b2 c2 a2 b2
Fig.2.21.
S consider m acum leg tura dintre proiec ie i jonc iune, schimbnd ordinea de
aplicare a acestor opera ii.
Fie rela ia q e definit pe mul imea de atribute RS. Not m r = R(q) i s = S(q).
Fie q1 = r|x|s. Care e rela ia dintre q1 i q ? R spuns: q q1. ntr-adev r, fie t un tuplu
arbitrar al rela iei q. Atunci tuplurile t[R] i t[S] vor fi n rela iile r i s, corespunz tor.
Tuplurile t[R] i t[S] sunt jonc ionabile cu rezultatul t. Deci tuplul t este i n rela ia q1.
n cazul cnd q = q1, se spune c rela ia q se descompune f r pierderi pe
mul imile de atribute R i S.
q A B C r A B
a1 b1 c1 a1 b1
a1 b2 c1 a1 b2
s B C q1 A B C
b1 c1 a1 b1 c1
b2 c1 a1 b2 c1
Fig.2.22.
12
Capitolul 2. Algebra rela ional
2.2.5. Diviziunea
Defini ia 2.15. Fie r(R) i s(S) dou rela ii i S R. Not m Q = R \ S. Diviziunea
rela iei r la rela ia s, notat cu rs, este o rela ie definit pe mul imea de atribute Q:
rs = {t| pentru ts s(S) tr r(R) ce satisface tr[Q]=t i tr[S]=ts}.
Teorema 2.1. Fie dou rela ii q(Q) i s(S). Dac r=qs, atunci q= rs.
Demonstra ie. Rela ia r este definit pe schema QS. E suficient s demonstr m c
q rs i rs q.
S ar t m c q rs. Fie w: = rs i t e un tuplu n q. Fiindc pentru orice tuplu ts
din s concatenarea tuplurilor t i ts este n r = qs, urmeaz (din defini ia opera iei
diviziunea) c tuplul t este n rela ia w. Deci q w.
S ar t m acum c rs q. Fie w:= rs i tw e un tuplu arbitrar din w. Atunci,
pentru orice tuplu ts din s (din defini ia opera iei diviziunea), concatenarea tuplurilor tw
ts este un tuplu din r. Orice tuplu n qs const din concatenarea unui tuplu din q cu un
tuplu din s. Prin urmare, exist n q un tuplu t, nct t=tw. Deci tw q i atunci w q.
r A B C
a1 b1 c1
a2 b1 c1
a1 b2 c1
a1 b2 c2
a2 b1 c2
a1 b2 c3
a1 b2 c4
a1 b1 c5
13
Capitolul 2. Algebra rela ional
Fig.2.23.
s C q A B
c1 a1 b1
a2 b1
a1 b2
Fig.2.24(a).
s C q A B
c1 a1 b2
c2 a2 b1
Fig.2.24(b).
s C q A B
c1 a1 b2
c2
c3
c4
Fig.2.24(c).
s B C q A
b1 c1 a1
a2
Fig.2.24(d).
s B C q A
b1 c1 a1
b2 c1
Fig.2.24(e).
14
Capitolul 2. Algebra rela ional
Invers, dac t este un tuplu n rs, atunci t este n Q(r). Tuplul t nu poate apar ine
rela iei Q(( Q(r)s)\r), fiindc atunci ar trebui s existe n s un tuplu ts, nct
concatena ia tts s fie n Q(r)s i s nu fie rela ia r.
Deci t Q(r) \ Q(( Q(r)s)\r).
Defini ia 2.16. Fie dou rela ii r(R) i s(S). Semijonc iunea rela iei r i s, notat cu
r|x s, este o mul ime de tupluri determinat de expresia r|x s = R(r|x|s).
Exemplul 2.20. Fie rela iile r(A B), s(B C) i q(A B) din fig.2.25. Rela ia q =
r|xs.
r A B s B C q A B
a1 b1 b1 c1 a1 b1
a1 b2 a2 b1
a2 b1
Fig.2.25.
15
Capitolul 2. Algebra rela ional
(c) S se g seasc clien ii ce- i plaseaz comenzile numai prin agentul a03.
CL_ID (clien i) \ CL_ID ( AG_ID "a03" (comenzi))
(i) S se g seasc clien ii ce au plasat comenzi prin agen ii care au livrat articolul
art03.
CL_ID (comenzi |x| AG_ID ( ART_ID ="art03" (comenzi)))
16
Capitolul 2. Algebra rela ional
(k) S se g seasc articolele, ce au fost comandate prin agen ii, ce au primit comenzi
de la clien ii, ce au comandat cel pu in un articol printr-un agent, ce a servit
clientul c001.
ART_ID (comenzi |x| ( AG_ID (comenzi |x| ( CL_ID (comenzi |x| ( AG_ID ( CL_ID
="c001" (comenzi))))))))
Evaluarea unei expresii algebrice presupune efectuarea opera iilor asupra rela iilor
din expresie n ordinea indicat de operatorii din expresie sau de paranteze. Rezultatul
evalu rii unei expresii este o rela ie. Deci orice expresie algebric define te o func ie, ce
aplic mul imea de rela ii din expresie ntr-o singur rela ie. Schema acestei rela ii
depinde de schemele rela iilor ce compun expresia algebric . Not m cu sch(E) schema
expresiei algebrice E.
2.4. Exerci ii
2.1. Fie rela iile r(A B C) i s(B C D), a dom(A) i b dom(B). Care din
expresiile algebrei rela ionale de mai jos sunt corecte?
(a) r s;
(b) B(r) \ B(s);
(c) B=b (r);
(d) A=a,B=b(s);
(e) r|x|s;
(f) A(r)|x| D(s).
r A B C s B C D
a b c b1 c1 d
a b1 c1 b2 c1 d1
a b2 c1 b2 c d
a1 b1 c
Fig.2.26.
2.2. Fie r i s sunt rela iile din fig.2.26. S se calculeze expresiile:
(a) ~r;
17
Capitolul 2. Algebra rela ional
~
(b) s;
(c) A=a(r);
(d) toate expresiile formulate corect din exerci iul 2.1.
2.3. Fie rela iile r(R) i s(S), i fie K R este cheia rela iilor r i s. Care din
rela iile de mai jos au n calitate de cheie mul imea K?
(a) r s;
(b) r s;
(c) r\s;
(d) ~r;
(e) K(r);
(f) r|x|s.
2.4. Fie rela ia r(R), A R, a, b dom(A). Care din expresiile de mai jos sunt
corecte?
(a) A=a, A=b(r) = ;
(b) A=a, A=b(r) = A=a(r).
2.5. Fie rela iile r(R) i s(S), A R i a dom (A). Confirma i sau infirma i
urm toarele egalit i:
~
(a) A=a( r) = A=a(r);
(b) A=a(r s) = A=a(r) s.
2.6. Fie rela ia r(A B C). Ce se poate de spus despre num rul de tupluri ale
rela iei A=a(r) ?
2.8. Fie rela iile r(R), s(R) i X R . Confirma i sau infirma i egalit ile:
(a) X(r s) = X(r) X(s);
(b) X(r s) = X(r) X(s);
(c) X(r\s) = X(r) \ X(s);
~ ~
(d) X( r) = X(r).
2.9. Fie rela ia r(R), A R. Not m S=R\A. Care sunt corela iile dintre
dimensiunile rela iilor r, A=a(r), A(r), S(r), A=a( A(r))?
2.12. Fie rela iile r(R), r1(R) i s(S). Confirma i sau infirma i egalit ile:
(a) (r r1)|x|s = (r|x|s) (r|x|s);
18
Capitolul 2. Algebra rela ional
2.14. Fie rela iile r(R), s(S), s1(S) i S R. S se arate c s s1 implic rs1 rs.
S se arate c afirma ia invers nu e corect .
2.15. Fie rela iile r(ABC) i s(BCD). Care este schema expresiei algebrice
E= ~
A( B=b( r)) |x| B( BC(r) \ BC(s)).
19