Sunteți pe pagina 1din 19

Capitolul 2.

Algebra rela ional

Capitolul

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
- jonc iunea
Semijonc iunea
Diviziunea

|x|

|x|F
|x

Fig.2.2. Opera iile rela ionale native

2.1. Opera iile tradi ionale


2.1.1. Scheme rela ionale compatibile
Opera iile binare asupra rela iilor: uniunea, intersec ia i diferen a, necesit ca
operanzii (rela iile) s fie defini i pe scheme compatibile. Compatibilitatea schemelor se
define te n felul urm tor.
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.
Remarc . Dou rela ii cu aceea i schem sunt compatibile.
vnz ri

FIRM5
f1
f1

ARTICOL
a1
a2

articole

ARTICOL
a1
a1

CULOARE
c1
c2

Capitolul 2. Algebra rela ional

f2
f3

a1
a1

furnizori

a1
a3
a2
ARTICOL
a1
a1
a2
a3

c3
c2
c1

FURNIZOR
f1
f3
f1
f3

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
a1
a1
a2

B
b1
b2
b1

C
c1
c3
c2

A
a1
a1
a1
a3

B
b1
b1
b2
b2

C
c1
c2
c3
c3

Fig.2.4. Rela iile r(A B C) i s(A B C)


q

A
a1
a1
a1
a2
a3

B
b1
b1
b2
b1
b2

C
c1
c2
c3
c2
c3

Fig.2.5. Rela ia q = r

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

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.

Capitolul 2. Algebra rela ional

Opera ia uniunea are dou propriet i. Ea e comutativ , adic r s = s r. Ea


este i asociativ , adic (r s) q = r (s q) pentru rela iile mutual compatibile r, s
i q. Prin urmare, n expresiile ce con in o cascad de opera ii uniunea, parantezele pot fi
omise f r a provoca ambiguit i. Deci, dac avem k rela ii compatibile r1,r2,,rk,
uniunea acestor rela ii poate fi notat cu (r1, r2,, rk).
Opera ia uniunea are dou cazuri speciale. Pentru orice rela ie r(R) au loc: r
= r i r s = s, dac r s.

2.1.3. Intersec ia
Similar uniunii, intersec ia a dou rela ii cere ca operanzii s fie rela ii cu scheme
compatibile.
Defini ia 2.3. Intersec ia a dou rela ii compatibile r(R) i s(S), notat cu r s,
este o rela ie definit pe schema R sau S i const din tuplurile ce apar in concomitent
rela iilor r i s, adic
r s = {t | t r & t s}.
Exemplul 2.3. Fie rela iile r(A B C) i s(A B C) din fig.2.4. Rela ia q = r
prezentat n fig.2.6.
q

A
a1
a1

B
b1
b2

s este

C
c1
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
a2

B
b1

C
c2

q2

A
a1
a3

B
b1
b2

C
c2
c3

Fig.2.7.
Din exemplul de mai sus observ m c diferen a nu se bucur de proprietatea
comutativ , adic r \ s s \ r. Totodat , nu e nici asociativ , adic (r \ s) \ q r \ (s \ q),
fiindc (r \ s) \ q = r \ (s q) pentru orice rela ii mutual compatibile r, s, i q.

Capitolul 2. Algebra rela ional

tup

A
a1
a1
a1
a1
a1
a1
a2
a2
a2
a2
a2
a2
a3
a3
a3
a3
a3
a3

B
b1
b1
b1
b2
b2
b2
b1
b1
b1
b2
b2
b2
b1
b1
b1
b2
b2
b2

C
c1
c2
c3
c1
c2
c3
c1
c2
c3
c1
c2
c3
c1
c2
c3
c1
c2
c3

Er

A
a1
a1
a1
a1
a2
a2
a2
a2
a2
a3
a3
a3
a3
a3
a3

B
b1
b1
b2
b2
b1
b1
b2
b2
b2
b1
b1
b1
b2
b2
b2

C
c2
c3
c1
c2
c1
c3
c1
c2
c3
c1
c2
c3
c1
c2
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
a1
a1
a1
a1
a1
a1
a2

B
b1
b1
b1
b2
b2
b2
b1

C
c1
c2
c3
c1
c2
c3
c1

~r

A
a1
a1
a1
a1
a2
a2
a2

B
b1
b1
b2
b2
b1
b1
b2

C
c2
c3
c1
c2
c1
c3
c1

Capitolul 2. Algebra rela ional

a2
a2
a2
a2
a2

b1
b1
b2
b2
b2

c2
c3
c1
c2
c3

a2
a2

b2
b2

c2
c3

Fig.2.9.

2.1.6. Complementul activ


Versiunea modificat a complementului unei rela ii, complementul activ,
ntotdeauna va produce o rela ie.
Defini ia 2.6. Fie r o rela ie asupra schemei R, A R i adom(A) = {a|a dom(A)
& t r&t[A] =a}. Mul imea de valori adom(A) se nume te domeniul activ al atributului
A. Not m cu atup(R) mul imea tuturor tuplurilor asupra atributelor schemei R i a
domeniilor lor active. Atunci complementul activ, notat cu ~r, este ~r = atup(R) \ r.
Exemplul 2.6. Fie rela ia r(A B C) din fig.2.4. Atunci adom(A) = {a1,a2},
adom(B) = {b1,b2}, adom(C) = {c1,c2,c3}. Rela iile atup(A B C) i ~r sunt prezentate n
fig.2.9.

2.1.7. Produsul cartezian


Defini ia 2.7. Produsul cartezian a dou rela ii r(A1An) i s(B1Bm), notat cu r
s, este o mul ime de tupluri ( i nu ntotdeauna o rela ie) definite pe mul imea de atribute
A1An B1Bm. Tuplurile reprezint toate posibilele asocia ii de tupluri din r i s: dac tr
r i ts s, atunci concatena ia trts este un tuplu n r s; pentru orice pereche de tupluri
tr i ts din r i s, respectiv, exist un tuplu t n r s nct t [Ai] = tr[Ai], 1NiNn i
t[Bj]=ts[Bj], 1NjNm.
r

A
a1
a1
a2

B
b1
b2
b1

C
c1
c3
c2

D
d1
d1

E
e1
e2

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.
Produsul cartezian a dou rela ii nevide nu ntotdeauna produce o rela ie.
Rezultatul e o rela ie, dac ambii operanzi sunt rela ii cu scheme nevide i disjuncte
(vezi exemplul 2.7). Dac , ns , rela iile operanzi au scheme vide sau nondisjuncte,
atunci produsul cartezian nu este o rela ie. Aceast problem poate fi solu ionat cu
ajutorul opera iei atribuirea, care de fapt produce schimbarea numelor atributelor.
q

A
a1

B
b1

C
c1

D
d1

E
e1

Capitolul 2. Algebra rela ional

a1
a1
a1
a2
a2

b1
b2
b2
b1
b1

c1
c3
c3
c2
c2

d1
d1
d1
d1
d1

e2
e1
e2
e1
e2

Fig.2.11.
Produsul cartezian nu este o opera ie comutativ . n schimb se bucur de
proprietatea asociativ . Prin urmare, dac avem o cascad de produse carteziene r1 ( r2
(rk)), ea poate fi reprezentat n form de prefix (r1,r2,,rk). Schemele rela iilor ri,
1 N i N k, trebuie s fie disjuncte dou cte dou . n caz contrar rezultatul nu va fi o
rela ie.

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.
Defini ia 2.8. Fie r o rela ie cu schema A1An i {B1,,Bn} o mul ime de
atribute compatibile, adic dom(Bi) = dom(Ai), 1 N i N n. O nou rela ie s(B1Bn)
compatibil cu r se poate defini prin atribuirea: s(B1Bn): = r (A1An). Extensia
rela iei s este extensia rela iei r: ts s atunci i numai atunci, cnd tr r, unde ts[Bi] =
tr[Ai], 1 N i N n.
r

A
a1
a1
a2

B
b1
b2
b1

C
c1
c3
c2

A
a1
a1
a2

D
b1
b2
b1

C
c1
c3
c2

Fig.2.12.
Urm torul exemplu ilustreaz
atributelor unei scheme.

utilizarea opera iei atribuirea pentru renumirea

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
a1
a1
a2

B
b1
b2
b1

C
c1
c3
c2

q2 A

A
a1
a1
a1
a3

B
b1
b1
b2
b2

C
c1
c2
c3
c3

q1 A
a1
a1
a1
a2
a3
A

B
b1
b1
b2
b1
b2

C
c1
c2
c3
c2
c3

Capitolul 2. Algebra rela ional

a1
a1

b1 c1
b2 c3

a1
a2
a3

b1 c2
b1 c2
b2 c3

Fig.2.13.
n urm torul exemplu, opera ia atribuirea se folose te pentru p strarea rezultatelor
intermediare.
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.

2.2. Opera iile rela ionale native


2.2.1. Proiec ia
Proiec ia e o opera ie unar .
Defini ia 2.9. Fie r o rela ie cu schema R i X R. Proiec ia rela iei r asupra
mul imii de atribute X, notat cu x(r), e o rela ie cu schema X ce const din X-valorile
tuturor tuplurilor din r:
r}.
x(r) = {t [X] | t
Tupluri distincte din r pot deveni identice, cnd se proiecteaz pe o mul ime de
atribute. Tuplurile duplicate n rela ia rezultat se elimin .
Exemplul 2.11. Fie rela ia r(A B C) din fig.2.14. Atunci s =
r

a
a
b
b

10
20
30
40

1
1
1
2

a
b
b

1
1
2

A,C(r).

Fig.2.14.
Exist dou cazuri speciale:
(1) X = R. Atunci x(r) = r.
(2) r = . Atunci x(r) = .
(r) este indefinit , fiindc
Dac mul imea de atribute X = , atunci proiec ia
schema unei rela ii nu poate fi o mul ime vid . Schema unei rela ii, produs de opera ia
proiec ia, are cel pu in un atribut.
Pentru cazul cnd R X, opera ia proiec ia iar i este indefinit . Mul imea asupra
c reia se face proiec ia nu poate fi mai larg dect schema rela iei ini iale.
Fie rela ia r(R) i Y X R. Atunci y ( x(r)) = y(r). Dac X = Y, atunci x
( y(r)) = x(r) = y(r).

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
r & F(t)}.
F(r) = {t | t
Exemplul 2.12. Fie r(A B C D) din fig.2.15. Atunci s=
r

A
a
b
b
b

B
a
b
b
b

1
5
12
23

7
5
3
10

A
a
b

B
a
b

((A = B) & (D>5))(r).

1
23

7
10

Fig.2.15.
Exist dou cazuri speciale ale selec iei.
(1) Dac F e o formul ce nu e compus nici dintr-o formul atomic , adic e o
formul nul , atunci F(r) = r. n acest caz asupra tuplurilor t r nu se
impune nici o constrngere pentru selec ie.
(2) Dac r(R) = , atunci F(r) = pentru orice formul F, fiindc F e valid n
orice rela ie vid .
Este evident c G( F(r)) = G&F(r). ntruct conjunc ia este comutativ , adic
F&G(r) = G&F(r), atunci i compozi ia a dou selec ii este comutativ . Deci G ( F(r)) =
F( G(r)).
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:
(r
s)
=
({t
|
t
r
t
s})
=
F
F

Capitolul 2. Algebra rela ional

{t1 | t1 {t | t r t s}& F(t1)} =


{t|t r& F(t)} {t|t s & F(t)}= F(r)

F(s).

Trebuie men ionat c selec ia nu comuteaz cu opera ia complement. ns selec ia


comuteaz cu proiec ia, dac sunt respectate unele condi ii. Fie r o rela ie cu schema R,
X R, i fie F o formul ce e satisf cut de tuplurile t[X]. Atunci x ( F(r)) = F( x(r)).
ntr-adev r:
1
1
{t | t r& F(t)}}=
x ( F(r)) = x{t|t r& F(t)}= {t [X] | t
{t [X] | t r& F(t)}={t1 | t1 {t [X] | t r}& F (t1)}=
{t1 | t1 x(r) & F (t1)}= F( x(r)).

2.2.3. -jonc iunea


Defini ia 2.12. Fie r(R) i s(S) dou rela ii, R S= , A R, B S i fie un
element din mul imea {=, , <, N, >, }. Presupunem c atributele A i B sunt
compatibile, adic dom(A) = dom(B). -jonc iunea rela iilor r(R) i s(S), notat cu
r|x|A Bs , este o mul ime de tupluri concatenate de forma trts , unde tr r, ts s i tr(A)
ts(B), adic :
r|x|A Bs = { trts | tr

r & ts

s & tr(A)

ts(B)}.

Condi ia R S= n defini ie este necesar . Dac R S , atunci -jonc iunea nu


este o rela ie. n cazul cnd este "=", -jonc iunea se mai nume te echijonc iune.
r

A
a1
a1
a2

B
b1
b2
b1

C
4
2
6

D
3
4
1

D
1
3
1
3
4
1

E
e2
e1
e2
e1
e1
e2

E
e1
e1
e2

Fig.2.16.
q

A
a1
a1
a1
a2
a2
a2

B
b1
b1
b2
b1
b1
b1

C
4
4
2
6
6
6

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 .

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).

2.2.4. Jonc iunea (Jonc iunea natural3)


Defini ia 2.13. Fie dou rela ii r(R) i s(S). Jonc iunea rela iilor r i s (nota ia
uzual r|x|s) este o rela ie cu schema RS. Tuplul t apar ine rela iei rezultat, dac exist
tuplurile tr i ts n r i s, respectiv, i satisfac t[R]=tr i t[S]=ts, adic
r |x| s = {t | t[R] = tr & t[S] = ts & tr r & ts

s}.

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.
Dac R=S, atunci r|x|s = r s. ntr-adev r:
RS

(rs)) =

(rs)) =

((r s) (r s)) = r s.

Opera ia jonc iunea nu este comutativ . n schimb, ea se bucur de proprietatea


asociativ . Prin urmare, o cascad de jonc iuni (r1 |x|(r2 |x|(rk )) poate fi prefixat ,

adic |x|(r1,r2,,rk).

Din exemplul 2.14 se vede c nu toate tuplurile rela iilor r i s particip la


jonc iune.
r

A
a1
a1
a2

B
b1
b2
b1
q

C
c1
c1
c2
A B

B
b1
b1
b1
b2

C
c1
c1
c2
c2

D
d1
d2
d3
d4

10

Capitolul 2. Algebra rela ional

a1 b1 c1
a1 b1 c1
a2 b1 c2

d1
d2
d3

Fig.2.18.
s1 A
a1
a2

s2 B
b1
b1

b1
b1

A
a1
a2

C
c1
c2
B
b1
b1

s3 A
a1
a2

C
c1
c1

C
c1
c2

Fig.2.19
Defini ia 2.14. Fie rela iile s1(S1),, sk(Sk). Consider m o consecutivitate de
tupluri t1,, tk , unde ti si (Si), 1 N i N k. Tuplurile t1,, tk se numesc jonc ionabile,
dac exist un tuplu t definit pe mul imea de atribute S1 Sk i t[Si]=ti, 1 N i N k. n
caz contrar se numesc nonjonc ionabile.
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.
S examin m acum leg tura dintre jonc iune i uniune.
Fie rela iile r(R), r1(R) i s(S). Atunci are loc urm toarea egalitate:
(r1 r)|x|s = (r |x|s) (r1 |x|s).
ntr-adev r, not m p r ile stnga i dreapta cu q i q1 respectiv. Fie t q. Atunci
exist n r1 r i s dou tupluri jonc ionabile tr i ts pentru care t[R]=tr i t[S]=ts. Dac
tr r, atunci ts r|x|s; dac , ns tr r1, atunci t r1|x|s. Deci t q1 i prin urmare q q1.
Acum presupunem c t q1. Atunci t r|x|s sau t r1|x|s. n ambele cazuri rezult
c t (r1 r)|x|s =q. Deci q1 q. Prin urmare q = q1.
S cercet m acum leg tura dintre proiec ie i jonc iune. Fie dou rela ii r(R) i
s(S). Not m q =r|x|s (din defini ia opera iei jonc iunea schema rela iei q este RS).
Proiect m rela ia q asupra mul imii de atribute R: r1= R(q). n ce corela ie se afl r1 i r
? R spuns: r1 r. ntr-adev r, fie t un tuplu arbitrar n q. Atunci conform defini iei
opera iei proiec ia r1 = {t[R]|t q}. Dar, pe de alt parte (n virtutea defini iei opera iei
jonc iunea ), t[R] trebuie s fie i tuplu n r.
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

A B
a1 b1
a1 b2

B C
b1 c1
r1

A B C
a1 b1 c1

A B
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
a1
a2
A
a1
a2

B
b1
b2

B
b1
b2
r1

B C
b1 c1
b2 c2

C
c1
c2
A
a1
a2

B
b1
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.
Exemplul 2.18. Rela ia q din fig.2.22 se descompune f r pierderi pe mul imile
de atribute AB i BC, fiindc q = q1, unde r =
q

A
a1
a1

B
b1
b2

B
b1
b2

C
c1
c1

AB

C
c1
c1

(q), s =

BC

A
a1
a1

B
b1
b2

q1 A
a1
a1

B
b1
b2

C
c1
c1

(q), q1 = r|x|s.

Fig.2.22.

12

Capitolul 2. Algebra rela ional

S continu m procesul de descompunere a rela iei q1 de acum. Fie r1 =


s1 =

(q1), i

(q1). Construim jonc iunea q11= r1|x|s1.

Care este corela ia dintre q1 i q11? R spuns: q1 = q11. ntr-adev r, proiectnd r =


R (q), i s = S (q) asupra mul imii de atribute R S ob inem egalit ile: R S (r) = R S
( R (q)) i R S (s) = R S ( S (q)). Dar R S ( R (q)) = R S (q) i R S( S (q)) = R S
(q).
Din aceste egalit i rezult c R S (r) = R S (s). Ceea ce nseamn c r =r1 i s =
s1, de unde urmeaz c q1 =q11.
Corela ia dintre jonc iune i alte opera ii se propun n calitate de exerci ii la
sfr itul acestui capitol.

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}.
Remarc . Opera ia diviziunea poate fi conceput drept opera ie invers
produsului cartezian. Fie q=rs. Atunci qs produce o rela ie cu schema R i rela ia q va
con ine num rul maximal de tupluri ce ar satisface expresia qs r.
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.
Exemplul 2.19. Fie rela ia r(A B C) din fig.2.23. n fig.2.24(a)-2.24(e) sunt
prezentate rela iile s i q, unde q= rs. S se observe c qs r i c q con ine un num r
maximal de tupluri ce posed aceast proprietate.
r

A
a1
a2
a1
a1
a2
a1
a1
a1

B
b1
b1
b2
b2
b1
b2
b2
b1

C
c1
c1
c1
c2
c2
c3
c4
c5

13

Capitolul 2. Algebra rela ional

Fig.2.23.
s

C
c1

A
a1
a2
a1

B
b1
b1
b2

A
a1
a2

B
b2
b1

A
a1

B
b2

A
a1
a2

A
a1

Fig.2.24(a).
s

C
c1
c2

Fig.2.24(b).
s

C
c1
c2
c3
c4

Fig.2.24(c).
s

B
b1

C
c1
Fig.2.24(d).

B
b1
b2

C
c1
c1
Fig.2.24(e).

Teorema 2.2. Opera ia diviziunea poate fi exprimat n termenii produsului


cartezian, diferen ei i proiec iei: rs= Q(r)\ Q(( Q(r)s)\r).
Demonstra ie. Fie tuplul t Q(r)\
Atunci t Q(r)
i
Q(( Q(r)s)\r).
t Q(( Q(r)s)\r). Presupunem c exist n s un tuplu ts nct tuplul format prin
concatenarea tuplurilor t i ts, adic tts, nu este n rela ia r. Atunci tuplul t trebuie s
apar in rela iei Q(( Q(r)s)\r) ce e contrazicere. Prin urmare, tuplul tts este n r, adic
t rs.

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).
S subliniem c opera ia diviziunea nu este nici comutativ , nici asociativ .
Din defini ia diviziunii i remarc urmeaz c , dac rela ia r[R] este o submul ime
proprie de tupluri a rela iei s(S), atunci rs este o rela ie vid .
Dac S=

atunci rs este indefinit , fiindc indefinit este s( ).

2.2.6. Semijonc iunea


dou

Semijonc iunea e o opera ie binar . Ea const n construirea unei rela ii din cele
i e format numai din tuplurile unei singure rela ii ce particip la jonc iune.
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
a1
a1
a2

B
b1
b2
b1

B
b1

C
c1

A
a1
a2

B
b1
b1

Fig.2.25.

2.3. Expresii algebrice


Uniunea, diferen a, produsul cartezian, proiec ia, selec ia i atribuirea sunt
opera iile de baz ale algebrei rela ionale. Celelalte opera ii, precum s-a v zut, se
exprim prin aceste ase. Dar un limbaj algebric de interpel ri ce ar folosi numai
opera iile de baz e destul de neeficient. Prin urmare, sunt utile i opera iile adi ionale:
intersec ia, -jonc iunea, jonc iunea, semijonc iunea i diviziunea.
Defini ia 2.17. Fie U=A1An mul imea universal de atribute, dom(U) =
{dom(Ai)| Ai U & 1 i n} i, fdom:U dom(U), o func ie ce pune n coresponden
fiec rui atribut din U un singur domeniu (unele atribute pot avea acelea i domenii de
valori). Fie Db = {R1,,Rm} schema bazei de date asupra U, unde U = R1Rm, i db =
{r1,,rm} o baz de date cu schema Db. Fie ={=, , <, N, >, } mul imea de opera ii
aritmetice de comparare asupra domeniilor din dom(U) i fie O mul imea de opera ii ce
include cel pu in cele ase opera ii rela ionale de baz . Algebra rela ional asupra U,
dom(U), fdom, Db, db,
i O este tuplul A = (U, dom(U), fdom, Db, db, , O). Expresie
algebric asupra A este orice expresie bine format (n corespundere cu restric iile
impuse opera iilor rela ionale) de rela ii din db i rela ii constante cu scheme din Db
legate cu opera ii din O.

15

Capitolul 2. Algebra rela ional

n expresiile algebrice, se admit parantezele i se presupune c opera iile binare nu


au prioritate una fa de alta, cu excep ia priorit ii opera iei
fa de . ntr-o
consecutivitate de rela ii legate cu aceea i opera ie parantezele pot fi omise, dac ,
binen eles, opera ia este asociativ . Numele de rela ii r1,,rm servesc drept variabile,
unde ri parcurge mul imea de rela ii cu schema Ri, 1 i m. S nu lu m n seam
ambiguitatea c ri denot att numele unei rela ii, ct i o instan curent a unei rela ii
cu schema Ri.
Exemplul 2.21. Fie rela iile articole(ART_ID ART_NUME ORA] BUC5^I
PRE^), clien i(CL_ID, CL_NUME, CL_ORA], REDUCERE), agen i(AG_ID,
AG_NUME, AG_ORA], COMISION), comenzi(LUN5, CL_ID, AG_ID, ART_ID,
BUC5^I, SUM5). Expresiile algebrei rela ionale ce corespund unor interpel ri puse la
baza de date db = (articole, clien i, agen i, comenzi) sunt redate mai jos.
(a) S se g seasc numele clien ilor ce au comandat cel pu in un articol la pre ul
0.50 lei.
CL_NUME (( ART_ID ( PRE^=0.50 (articole))

|x| comenzi)|x| clien i)

(b) S se g seasc numele clien ilor ce n-au dat nici o comand prin agentul a03.
CL_NUME (clien

i |x| (

CL_ID

(clien i)\

CL_ID

AG_ID="a03" (comenzi))))

(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))

(d) S se g seasc articolele ce nu au fost comandate de vreun client din Chi in u


printr-un agent cu sediul la B l i.
ART_ID

|x|

(articole) \

ART_ID

AG_ORA] ="B l i" (agen

((

CL_ID

CL_ORA]="Chi in u"

(clien i)) |x| comenzi)

i))

(e) S se g seasc numele clien ilor ce au comandat toate tipurile de articole la


pre ul 0.50 lei.
CL_NUME (clien

i |x| (

CL_ID ART_ID(comenzi)

ART_ID ( PRE^=0.50 (articole))))

(f) S se g seasc clien ii ce au comandat toate tipurile de articole comandate de


oricine.
CL_ID ART_ID (comenzi) ART_ID (comenzi)
(g) S se g seasc agen ii ce au primit comenzi de livrare ale articolelor comandate
i de clientul c004.
AG_ID ART_ID (comenzi)

ART_ID ( CL_ID="c004" (comenzi))

(h) S se g seasc clien ii ce au comandat articolele art01 i art07.


CL_ID

ART_ID ="art01" (comenzi))

CL_ID

ART_ID ="art07" (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)))

(j) S se g seasc clien ii ce au comandat articole cu o reducere la pre ca a


clien ilor din Chi in u sau Ia i.
CL_ID

(clien i |x|

REDUCERE

CL_ORA]="Chi in u"

CL_ORA]="Ia i" (clien

i)))

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.
Defini ia 2.18. Schema expresiei algebrice sch(E) se define te recursiv:
(1) dac E este o rela ie constant , atunci sch(E) este schema rela iei;
(2) dac E este rela ia ri cu schema Ri, atunci sch(E) = Ri;
(3) dac E este una din expresiile E1 E2, E1 E2, E1\E2, ~E1 i F(E1), unde F
este o formul aplicabil lui E1, atunci sch(E) = sch(E1);
(4) dac E este X(E1), atunci sch(E) = X;
(5) dac E este E1 E2, atunci sch(E) = sch(E1)\sch(E2);
(6)
(7)

dac E este una din expresiile E1E2, E1|x|FE2 i E1|x|E2, atunci sch(E) =
sch(E1) sch(E2);
dac E este ri:=rj, unde rela iile ri i rj au schemele Ri i Rj, respectiv, atunci
sch(E)=Rj.

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)
(f)

r|x|s;
A(r)|x| D(s).

A
a
a
a
a1

B C
b c
b1 c1
b2
b1

c1
c

B C
b1 c1
b2 c1

D
d
d1

b2

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)
(c)
(d)

s;
A=a(r);

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.7. Fie rela ia r(R), X R, A R i A X. S se g seasc un exemplu ce ar
infirma egalitatea X ( A=a(r)) = A=a ( X(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)
(r\s)
=
(r)
\
(s);
X
X
X
~
~
(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.10. Fie rela iile r i s. S se arate c :
(a)

s|x|s=s;

(b)

r|x|s = r|x|(r|x|s).

2.11. Fie rela iile r(R), s(S) i A R. S se arate c

A=a(r|x|s)

A=a(r)|x|s.

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

(b)

(r \ r1)|x|s = (r|x|s) \ (r1|x|s);

(c)

r|x|~s = r|x|s.

2.13. Fie rela iile r(R), s(S) i R S =

. S se arate c (r|x|s)s = r.

2.14. Fie rela iile r(R), s(S), s1(S) i S R. S se arate c s s1 implic rs1
S se arate c afirma ia invers nu e corect .

rs.

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