You are on page 1of 22

5.

Algjebra dhe llogaritjet relacionale


Algjebra dhe llogaritjet relacionale paraqesin gjuhë formale për përzgjedhës
(ang. Query languages) të shoqëruara me modelin relacional të database-it.
Përzgjedhësi në algjebrën relacionale kompozohet duke shfrytëzuar
operacione dhe operandë të cilët janë instanca relacionale dhe çdo përzgjedhës
paraqet një procedure hapë-për-hapi për realizimin e përgjigjes së përzgjedhësit e cila
poashtu është një instancë relacionale. Algjebra relacionale është gjuhë formale
procedurale.
Në llogaritjet relacionale përzgjedhësi përshkruan përgjigjen e dëshiruar pa
treguar procedurën e llogaritjes së përgjigjes, pranda, kjo gjuhë formale është
joprocedurale. Llogaritjet relacionale kanë pasur ndikim të madh në zhvillimin e
gjuhëve komerciale për përzgjedhës (pyetsor) siç është SQL dhe veçanërisht QBE
(Query-By-Example).
Përzgjedhës do të thotë të zgjedhësh (selektosh) të dhënat për kërkesën e
parashtruar për të dhëna nga relacionet (database-i). Algjebrën relacionale dhe
llogaritjet relacionale, respektivisht operacionet në shprehjet algjebrike dhe llogaritjet
relacionale do t’i sqarojmë nëpërmjet database-it për Fakultetin (database i
normalizuar), database-i është

Studenti(s#, emri_st, viti_st)


Kursi(k#, titulli, emri_ar)
Raporti(s#, k#, nota);
Arsimtari(emri_ar, dh#)

dhe instancat relacionale le të jenë:

Studenti Kursi
s# emri_st viti_st k# titulli emri_ar
970001 Arta 1 037 Bazat e inf. Fatmir
950879 Petrit 3 124 Programim Bujar
961269 Blerim 2 102 Hardveri Gjergj
950127 Vjollca 3 215 Kompajlerët Lindita

Raporti Arsimtari
s# k# nota emri_ar dh#
950879 037 9 Fatmir 17
950127 037 10 Bujar 11
950127 124 8 Gjergj 21
950127 102 9 Lindita 15
961269 037 10
961269 124 7
961269 215 6
970001 037 8
970001 102 7

1
5.1. Algjebra relacionale

Algjebra relacionale bënë vlersimin e shprehjeve algjebrike të ndërtuara prej


relacioneve, operacionet unare dhe binare, operandët e të cilëve janë relacione dhe
rezultatet e fituara përsëri janë relacione. Çdo shprehje algjebrike paraqet një
përzgjedhës (një pyetje, një kërkim, ang. query). Algjebra relacionale është gjuhë
formale procedurale, kështu në shprehjen e përzgjedhësit e kemi edhe procedurën hap
pas hapi si duhet të vijmë deri në instancën relacionale rezultat.
Në algjebrën relacionale dallojmë dy lloje të operacionave, operacionet
themelore dhe operacionet të cilët mund të derivohen (nxjeren) nga operacionet
themelore. Operacione themolore janë:

i. Selektimi (ang. Selection, shënohet me σ),


ii. Projekcioni (ang. Projection, shënohet me π),
iii. Unioni (ang. Union, shënohet me U ),
iv. Diferenca e bashkësive (ang. Set difference, shënohet me –),
v. Prodhimi Cartesian (ang. Cross Product, shënohet me X) dhe
vi. Riemërtimi (ang. Rename, shënohet me ρ).

Selektimi. Operacion unar i cili nga relacioni i nxjer ata n-she të cilat
plotësojnë kushtin logjik (kushtin Boolean) të dhënë. Rezultati i këtij operacioni është
poashtu relacion me shkallë të njejtë (numër të njejtë të atributeve) me relacionin ndaj
të cilit kryhet operacioni. Operacioni i këtillë shënohet si vijon

σC(R)
ku R është relacion ndërsa C është formulë logjike (kusht logjik) i cili formohet prej
operandëve (konstanta ose atribute), operacioneve të krahësimit ( = , <, >, ≤, ≥, ≠ ) dhe
operacioneve logjike ( ∧, ∨, ¬ ).
Shembull.
Relacioni R

a b c d
α α 1 7 σ a=b ∧d>5 ( R )

α β 5 7 a b c d
β β 12 3 α α 1 7
β β 23 10 β β 23 10

Pyetja 1. “ Të gjenden të gjithë studentët në vitin e parë”.


Gjejmë relacionin e ri sipas shprehjes
RESULT=σviti_st=1(Studenti)

RESULT
s# emri_st viti_st
970001 Arta 1

Pyetje 2: “Të gjenden të gjitha lëndët me emrin ‘Programim’”.

2
RESULT=σtitulli=’Programim’(Kursi)

RESULT
k# titulli emri_ar
124 Programim Bujar

Pyetja 3: “Të gjenden të gjithë studentët të cilët nga lënda me numër 037 kanë
fituar notë më të lartë se tetë”.
RESULT=σ(k#=037) ∧ (nota>8)(Raporti)

RESULT
s# k# nota
950879 037 9
950127 037 10
961269 037 10

Projekcioni. Operacion unar i cili prej relacionit nxjer (ekstrakton) atributet e


dhëna. Projekcionin e relacionit R në atributet e tija A1, A2, …, An e shënojmë me

πA1, A2, …, An(R).


Relacioni rezultat posedon vetëm atributet e specifikuara në operacionin e
projekcionit dhe gjithashtu eleminohen n-shet duplikate. Me marrëveshtje caktojmë
që projekcioni të ketë përparësi më të madhe në krahësim me operacionet tjera. Me
ndihmën e projekcionit mundësohen disa lloje përzgjedhësish.
Shembull.
Relacioni R π a,c ( R )

a b c a c a c
α 10 1 α 1 α 1
α 20 1 α 1 Eliminimi i
rreshtave
β 1
β 30 1 β 1 duplikat β 2
β 40 2 β 2

Pyetje 1: “Gjej numrat e dhomave të gjithë arsimtarëve”.

RESULT=πdh#(Arsimtari)

RESULT
dh#
17
11
21
15

Pyetje 2: “ Gjeje emrin e mësimdhënësit i cili mbanë lëndën numër 102”.

RESULT=πemri_ar(σk#=102(Kursi))

3
RESULT
emri_ar
Gjergj

Operacionet e bashkësive: Relacionet janë bashkësi të n-sheve, prandaj, ndaj


relacioneve mund të zbatohen operacionet e bashkësive (unioni, prerja, ndryshimi dhe
prodhimi Cartesian). Gjatë operacioneve me bashkësi, relacionet operanda duhet të
jenë union kompotibile (përjashtim bënë operacioni i prodhimit Cartesian). Union
kompatibil do të thotë që relacionet të kenë

 shkallë të njejtë (pra numër të njejtë të atributeve) dhe


 atributet gjegjëse (nga e majta në të djathtë) të kenë domenë të njejtë (pra
vlerat e atributeve gjegjëse të jenë të tipit të njejtë).

Sa i përket emrimit të atributeve gjegjëse, emrimi mund të dallohet.

Le të jetë R dhe S dy relacione union kompotibile, kemi:

Unioni. Unioni i relacionit R dhe S është bashkësia e n-sheve të cilët janë në


relacionin R ose relacionin S ose në të dy relacionet. Unioni shënohet

RUS

dhe rezultati trashëgon emrat e atributeve nga relacioni R, pra, rezultati është relacion
identik (për nga emrat e atributeve) me relacionin R. Në relacionin rezultat n-shet
duplikat eliminohen. Unioni është operacion komutativ, pra, vlenë

RUS = S UR.
Shembull.

a b
a b
a b α 1
α 1
R S α 2 R U S α 2
α 2
β 3 β 1
β 1
β 3

Shembull. Marrim relacionin Studenti_ri i cili është union kompotibil me


relacionin Studenti

Studenti_ri
s# emri_st Viti_st
950342 Mimoza 1
961698 Linda 2
950879 Petrit 3
973472 Berat 3
950127 Vjollca 3
950326 Flora 3

Unioni i relacionit Studenti dhe Studenti_ri është

4
Studenti U Studenti_ri
s# emri_st viti_st
970001 Arta 1
950879 Petrit 3
961269 Blerim 2
950127 Vjollca 3
950342 Mimoza 1
961698 Linda 2
973472 Berat 1
950326 Flora 3

Diferenca e bashkësive (set defference). Diferenca e bashkësive për relacionin


R dhe S, shënohet R–S dhe për rezultat jep bashkësinë e n-sheve të cilat janë në R dhe
nuk janë në S. Operacioni i diferencës së bashkësive nuk është komutativ, pra,

R−S ≠ S −R.

Rezultati trashëgon emrat e atributeve nga relacioni R, pra, rezultati është


relacion identik (për nga emrat e atributeve) me relacionin R.
Shembull.
a b
a b a b
α 1
R S α 2 R - S α 1
α 2
β 3 β 1
β 1

Shembull. Ndryshimi i relacionit Studenti dhe Studenti_ri

Studenti–Studenti_ri
s# emri_st viti_st
970001 Arta 1
961269 Blerim 2

Prerja (intersect). Operacioni i prerjes për relacionet R dhe S shënohet R I S


dhe për rezultat jep bashkësinë e n-sheve të cilët janë në R dhe S. Operacioni i prerjes
është komutativ
RIS = S IR.

Relacioni rezultat trashëgon emrat e atributeve nga relacioni R, respektivisht


rezultati merret që të jetë identik (për nga emrat e atributeve) me relacionin R.
Shembull.
a b
a b a b
α 1
R S α 2 R ∩ S α 2
α 2
β 3
β 1

Operacioni i prerjes nuk është operacion themelor sepse mund të derivohet


(nxjerret) nga operacionet themelore respektivisht nga operacioni i diferencës së
bashkësive, vlenë
R I S = R − (R − S ) .

5
Shembull. Prerja e relacionit Studenti dhe Studenti_ri

Studenti I Studenti_ri
s# emri_st viti_st
950879 Petrit 3
950127 Vjollca 3

Prodhimi Cartesian. Le të jenë R dhe S relacione me shkallët n dhe m


respektivisht. Prodhimi Cartesian i R dhe S, shënohet R × S dhe për rezultat jep
shemën relacionale që përmbanë të gjithë atributet nga R të ndjekura me të gjithë
atributet nga S. Relacioni rezultat përbëhet nga n-shet e formës r, s për çdo çiftë të
n-sheve r ∈ R dhe s ∈ S . Pra, rezultat është bashkësia e të gjitha (n+m)-sheve ku n
komponentat e para janë n-shet nga relacioni R dhe m komponentat e dyta janë m-shet
nga relacioni S. Atributet në relacioni R × S kanë emra të njejtë sikurse atributet
përgjrgjës në R respektivisht në S dhe nëse ndodh që të kemi përputhje të emrave
atëherë emrat e njejtë shënohen bashkë me emrin e relacionit nga i cili vjenë të ndarë
me pike, p.sh. sipas formës emir_i_relacionit.emri_i_atributit.

Shembull.

R×S
a b c d e
S α 1 α 10 +
R c d e α 1 β 10 +
a b α 10 + α 1 β 20 -
α 1 β 10 + α 1 γ 10 -
β 2 β 20 - β 2 α 10 +
γ 10 - β 2 β 10 +
β 2 β 20 -
β 2 γ 10 -

Shembull. Për çdo student të shkruhen lista e provimeve të cilat ai nuk i ka


regjistruar.

Së pari i gjejmë të gjitha kombinimet në mes shifrave të studentëve dhe


shifrave të lëndëve

All _ comb = π s # (Studenti ) × π k # (Kursi )

dhe tani prej relacionit të fituar e minusojmë relacionin Raporti

Nuk _ Ka _ Regjistruar = All _ comb − π s #, k # (Raporti )

Rezultati është

6
Nuk _ Ka _ Regjistruar
s# k#
970001 124
970001 215
950879 124
950879 102
950879 215
961269 102
961269 215

Riemërimi. Le të jetë E një relacion arbitrar. Operacioni i riemërimit të


relacionit E në relacion R shënohet ρ ( R, E ) dhe rezultati i këtij operacioni do të jetë
relacioni (i ri) R i cili është plotësisht identik me relacionin E. Operacioni i këtillë
shpeshherë quhet operacioni aliases (i cili relacionit në të cilin vepron i ngjit një
pseudonim). Forma e përgjithshme e këtij operacioni është ρ ( R( F ), E ) ku F paraqet
listën e riemërimeve të atributeve të relacionit E në relacionin R. Elementet në listen F
mund të jepen si vijon (2→b, e→c) që do të thotë:
2→b, atributi i dytë me rradhë (nga e majta në të djathtë) nga relacioni E në
relacionin R do të riemërohet në b dhe
e→c, atributi e nga relacioni E në relacionin R do të riemërohet në c.

Shembull.
ρ(R(2 →b, e →c),E)
E R
a d e a b c
α 10 + α 10 +
β 10 + β 10 +
β 20 - β 20 -
γ 10 - γ 10 -

Pyetje: “Të gjenden të gjitha çiftet e studentëve të cilët gjenden në vit të


njejtë”.
Pasi duhet të përdoret relacioni i njejtë në vend të të dy operandëve, këtu
përdoret operatori i riemërimit
ρ (Temp, Studenti )

ku relacionit Studenti i shoqëron pseodonimin Temp (respektivisht krijojm relacionin


Temp i cili është identik me relacionin Studenti) tani përgjigja në pyetjen është

Result = π Temp.emri _ st , Studenti. Emri _ st (σ (Temp.viti _ st = Studenti.viti _ st ) ∧ (Temp.s # < Studenti.s # ) (Temp × Student ) )

dhe relacioni i fituar është


Result
Temp.emri_st Studenti.emri_st
Vjollca Petrit

Forma më e qartë e përgjigjes, respektivisht ndarjen e përgjigjes në


nënrezultatet:

7
ρ (Temp, Studenti)
Temp2 = Temp × Student
Temp3 = σ (Temp.viti _ st =Studenti.viti _ st )∧(Temp.s #<Studenti.s #) (Temp 2)
Result = π Temp.emri _ st , Studenti.Emri _ st (Temp3)

Lidhja (Join). Operacioni i lidhjes është operacion mjaft i fuqishëm në


algjebrën relacionale, i kombinon dhe nxjer të dhënat nga dy relacione. Lidhja mund
të definohet si prodhim Cartesian i ndjekur me operacionin e selektimit dhe
ndonjëherë edhe me operacionin e projektim. Operacioni i prodhimit Cartesian
zakonisht është më i gjërë se operacioni i lidhjes, prandaj, me rendësi është
identifikimi i lidhjes pa ndërthurjen e prodhimit Cartesian. Lidhja e dy relacioneve R
dhe S shënohet R >< S . Operacioni i lidhjes paraqitet në tri variante:
i. Lidhja e kushtëzuar,
ii. Lidhja – barazi dhe
iii. Lidhja natyrale.

Lidhja e kushtëzuar (Condition Join). Operacioni i lidhjes së kushtëzuar


paraqet formën e përgjithshme të operacionit të lidhjes dhe për relacionet R dhe S
shënohet R >< C S . Operacioni lidhja e kushtëzuar definohet si vijon

R >< C S = σ C ( R × S )

ku C paraqet kushtin e lidhjes dhe kushti është i njejtë sikurse kushti tek operacioni i
selektimit. Operacioni i lidhjes së kushtëzuar njihet edhe si operacioni i lidhjes theta
(θ).
Shembull.

S R
a b c d a e f
22 b1 c1 d1 22 e1 f1
31 b2 c2 d2 58 e2 f2
58 b3 c3 d3

S >< S .a < R.a R


S.a b c d R.a e f
22 b1 c1 d1 58 e2 f2
31 b2 c2 d2 58 e2 f2

Lidhja – barazi (Equi – Join). Operacioni lidhja–barazi parqet rast special të


lidhjes së kushtëzuar ku kushti përbëhet nga barazia e vlerave të dy atributeve, njëri
nga relacioni R dhe tjetri nga relacioni S. Operacioni i lidhjes-barazi kërkon që
operandat të kenë të paktën një atribut të përbashkët sipas domenës, pra, me domenë
të njejtë. Rezultat është relacioni i cili përbëhet nga të gjitha n-shet të fituara me
ngjitjen e një n-sheje prej R me një n-she prej S e cila ka vlerë të njejtë të atributit të
përbashkët me n-shen nga R. Në relacionin rezultat atributi i përbashkët nga relacioni
i dytë, relacioni S nuk paraqitet (pra fshihet).

8
Shembull.
R R.b=S.b S
a b c b e f a b c e f
α 1 α 1 X α
β α 1 α X α
R
β 5 γ S
3 X α 1 α X γ
γ 4 β 1 X γ α 1 γ X α
α 1 γ 2 Y δ 1
δ 2 β 3 Y ε
α γ X γ
δ 2 β Y δ

Operacioni i lidhjes barazi mund të përbëhet nga më tepër çifte barazi të lidhur
me operacionin logjik ∧ , si p.sh. R >< ( a = b ) ∧ ( c = d ) S .
Lidhja natyrale. Lidhja natyrale (natural join) është operacion binar i cili
vepron në dy relacione R dhe S të cilët kanë të paktën një atribut të përbashkët.
Operacioni i lidhjes natyrale shënohet R >< S . Lidhja natyrale paraqet rast special të
lidhjes–barazi ku kërkohet barazi në mes të gjithë atributeve të përbashkëta, pra,
rezultat është relacioni i cili përbëhet nga të gjitha n-shet të fituara me ngjitjen e një
n-sheje prej R me një n-she prej S e cila ka vlerë të njejtë të atributeve gjegjëse të
përbashkëta me n-shen nga R. Në relacionin rezultat atributet e përbashkëta paraqiten
vetëm një herë.
Shembull. Për shembull le të jetë R(A,B,C) dhe S(B,C,D) të dhënë në instancat
relacionale:

R S
A B C B C D
a1 b1 c1 b1 c1 d1
a2 b1 c1 b1 c1 d2
a3 b2 c2 b2 c3 d3
a4 b2 c3

relacioni R >< S është


R >< S
A B C D
a1 b1 c1 d1
a1 b1 c1 d2
a2 b1 c1 d1
a2 b1 c1 d2
a4 b2 c3 d3

Nëse relacionet nuk kanë attribute të përbashkëta atëherë definohet që rezultat


i lidhjes natyrale të jetë prodhimi Cartesian i relacioneve.

Pyetje 1. “ Të gjenden emrat e të gjithë studentëve që kanë regjistruar lëndën


me numër 124”.
Result = π emri _ st (σ k # =124 (Raporti ) >< Studenti )

Pyetje 2. “ Të gjendet numri i dhomës së arsimtarit i cili ligjëron lëndëm me


shifrën 037”.
Result = π dh # (σ k # = 037 (Kursi ) >< Arsimtari )

9
Pyetja 3. “ Gjej emrat e arsimtarëve të cilët ligjërojn lëndën të cilën e ka
regjistruar të paktën një student në vitin e tretë”.

Result = π emri _ ar ((σ viti _ st = 3 (Studenti ) >< Raporti ) >< Kursi )


σ viti _ st =3 (Studenti ) >< Raporti
s# emri_st viti_st k# nota
σ viti _ st =3 (Studenti) 950879 Petrit 3 037 9
s# emri_st viti_st 950127 Vjollca 3 037 10
950879 Petrit 3 950127 Vjollca 3 124 8
950127 Vjollca 3 950127 Vjollca 3 102 9

(σ viti _ st =3
(Studenti) >< Raporti )>< Kursi Result
s# emri_st viti_st k# nota titulli emri_ar emri_ar
950879 Petrit 3 037 9 Bazat e inf. Fatmir Fatmir
950127 Vjollca 3 037 10 Bazat e inf. Fatmir
Bujar
950127 Vjollca 3 124 8 Programim Bujar
950127 Vjollca 3 102 9 Hardveri Gjergj Gjergj

Lidhja çdo herë mund të shprehet nëpërmjrt operacioneve tjerë, p.sh. le të jenë
relacionet R(A,B,C,D) dhe S(C,D,E), për lidhjen natyrale vlenë

R >< S = π A, B , R.C , R.D , E (σ ( R.C = S .C )∧ ( R.D = S .D ) (R × S ))

Pjestimi. Le të jetë R relacion i shkallës n dhe S relacion i shkallës m dhe të


gjithë atributet e S le të paraqiten edhe te relacioni R. Rezultati i pjestimit të R me S, i
cili shënohet R / S është bashkësia e të gjithë (n-m)-sheve (x) ashtu që n-shet (x,y)
paraqiten në R për të gjitha m-shet (y) që paraqiten në S. Këtu x dhe y janë grupe prej
një ose më tepër atribute. Pra, pjestimi R / S është bashkësia e të gjithë x vlerave nga
R (pjesa x e n-shes nga R) ashtu që për çdo y vlerë n-she nga S ekziston n-sheja
x, y në R.
Shembuj:
R1 R2 R3 R1/R2 R1/R3 R S R/S
S# K# K# K# S# S# x y y x
α 1 1 α
s1 c1 c1 c1 s1 s1 α 2 2 ε
s1 c2 s2 α 3
c2 β 1
s1 c3 s3
c3 γ 1
s2 c1 δ 1
s2 c2 δ 3
δ 4
s3 c1
ε 1
s4 c4 ε 2

Një definicion alternative i pjestimit është: për çdo x vlerë nga R shiqohet
bashkësia e y vlerave të cilët paraqiten në n-shet në R sëbashku me x dhe nëse kjo
bashkësi përmban të gjithë y vlerat n-she nga S atëherë x vlera paraqet n-she në
rezultatin e pjestimit R / S .
Gjithashtu mund të bëhet analogji në mes pjestimit të numrave të plotë dhe
pjestimit të instancave relacionale. Për shembull pjestimi i numrit R me numrin S

10
është numri Q ashtu që Q * S ≤ R . Ndërsa për instancat relacionale kemi: pjestimi i
instancës relacionale R me instancën relacionale S është instance relacionale Q ashtu
që Q × S ⊆ R .
Operacioni i pjestimit nuk është operacion themelor, prandaj, mund të
shprehet me ndihmën e operacioneve tjera

R / S = π x ( R) − π x ((π x ( R) × S ) − R) .

Shembull.
Temp1←πR-S(R) ku R-S=(x,y)–y=x
Temp2←πR-S((Temp1×S)–R)
Result=Temp1–Temp2

R S
x y y ( Temp1 × S ) – R
x
α 1 1 Temp1 x x y
R / S α
α 2 α
2 β 2
ε
α 3 β
γ 2
β 1 γ
δ 2
γ 1 δ
δ 1 ε
Temp2
δ 3
δ 4
ε 1
ε 2

Pyetje 1. “Të gjenden emrat e të gjithë studentëve të cilët kanë regjistruar


lëndën me shifrën 102”.
Result = π emri _ st (π s # (Raporti / π k # (σ k # =102 (Kursi ))) >< Studenti )
e njejta pyetje mund të zgjidhet edhe si vijon
Result = π emri _ st (Studenti >< π s # (σ k # =102 (Raporti )))
relacioni rezultat është
EMRI_ST
Arta
Vjollca

Pyetja 2. “Të gjenden emrat e studentëve të cilët i kanë regjistruar të gjithë


lëndët”.
Result = π emri _ st ((Raporti / π k # (Kursi )) >< Studenti )

relacioni Result është i zbrazët sepse asnjë n-she nuk plotësok kërkesën e shprehur me
shprehjen në të djathtë.

Pyetja 3. “Të gjenden numrat e studentëve të cilët kanë regjistruar të paktën


ata lëndë të cilat i ka regjistruar studenti me numër 970001 (dhe ndonjë lëndë tjetër)”.

Result = π s # (Raporti / π k # (σ s # = 970001 (Raporti )))


Rezultati është: studentët me numrat 970001 dhe 950127.

11
Shembull. Pjestimi mund të shprehet me ndihmën e operacioneve të
mëparshme, p.sh. për relacionet R(A, B, C, D) dhe S(C, D) kemi

R / S = π A, B ( R) − π A, B ((π A, B ( R ) × S ) − R )

Funkcionet agregate. Funksione matematike për kolekcionimin e të dhënave


nga database-i. Funksione të tilla janë:
- SUM(…) – llogaritja e shumës së vlerave të atributit (kolonës) të dhënë,
- AVERAGE(…) – llogaritja e vlerës mesatare të vlerave të atributit të
dhënë,
- MAX(…), MIN(…) – maksimumi, minimumi i vlerave të atributit të
dhënë,
- COUNT(…) – numërimi i n-sheve,
- etj.
Tre pika në klapa do të thotë atributi sipas të cilit kryhet funksioni, te disa
funksione është pjesë opcionale dhe mund të mos përdoret, p.sh. COUNT mund të
përdoret edhe pa argumentin respektivisht pjesën në kllapa.
Funksionet agregate përdoren si vijon

F<lista e funksioneve>(R)

Pyetje 1. “Të gjendet numri i studentëve të cilët kanë regjistruar lëndën me


shifrën 102”.
FCOUNT (σ k # =102 (Raporti ))

Zakonisht funksionet agregate përdoren me klauzulën për grupim, për


shembull nëse kërkojmë numrin e studentëve të ndarë sipas gjinisë, përdorimi i
funksionit COUNT pa grupimin sipas gjinisë nuk do të na japë zgjidhjen e kërkuar.
Përdorimi i klauzulës për grupim (GROUP BY) bëhet si vijon:

<atributet e grupimit>F<lista e funksioneve>(R)

Pyetje 2. “Të gjendet numri i studentëve nëpër gjenerata, p.sh. sa janë në vitë
të parë, në vitë të dytë, etj.”.

Viti_stFCOUNT(s#)(Studenti)
dhe rezultati është
Viti_st n#
1 1
2 1
3 2

Pyetje 3. “Të gjendet nota mesatare e çdo studenti”.

s#FAVERAGE(nota)(Raporti).

12
5.2. Algjebra relacionale – Ushtrime

Analizojmë database-in e të dhënave për gurmanët (adhuruesit, provuesit e


gjellrave), restoranet dhe gjellat të cilat i servojnë ata. Database-i është dhënë me ER
shemën

GURMANET M
N

FREKUENCA PELQEN

M N
N M
RESTORANI SERVON GJELLA

Relacionet janë:

GURMANET(G#, …)
GJELLA(GJ#, …)
RESTORANT(R#, …)
FREKUENCA(G#, R#)
SERVON(R#, GJ#)
PELQEN(G#, GJ#)

Detyra 1: Për database-in për gurmanët, gjellat dhe restoranet pyetjet e


ardhshme të shprehen në algjebrën relacionale:

Pyetja 1. Paraqite listën e restoreneve të cilët servojn gjellën të cilën e pëlqen


‘Joe’.
GJELLAT _ JOES = π GJ # (σ G # = ' Joe' ( PELQEN ))
RESTORANTET_JOES = π R # (GJELLAT _ JOES >< SERVON )

Pyetja 2. Paraqite listën e gurmanëve të cilët vizitojnë të paktën njërin nga


restoranet të cilët servojnë gjellën që ai e pëlqen.

RESULT = π G # (( PELQEN >< SERVON ) >< FREKUENCA)

Pyetja 3. Paraqite listën e të gjithë restoraneve të cilët servojnë të gjitha gjellat


të cilat i pëlqen Joe.

GJELLAT _ JOES = π GJ # (σ G # = ' Joe ' ( PELQEN ))


RESULT = SERVON / GJELLAT _ JOES
Pyetja mund të zgjidhet edhe pa përdorimin e operacionit të pjestimit

GJELLAT _ JOES = π GJ # (σ G # = ' Joe ' ( PELQEN ))


ALL _ RESTORANT = π R # ( SERVON )
ALL _ COM = ALL _ RESTORANT × GJELLAT _ JOES
NOT _ JOES = π R # ( ALL _ COM − SERVON )
RESTORANET _ JOES = ALL _ RESTORANT − NOT _ JOES

13
Analizojmë database-in e të dhënave për huazimin e librave:

LIBRI(SH_L#, TITULLI, AUTORI, BOTUESI)


ANTARI(SH_A#, EMRI, ADRESA)
HUAZIMI(SH_L#, SH_A#, DATA_HUAZIMIT)

Detyra 2. Për database-in e huazimeve të librave pyetjet në vazhdim të


shprehen në algjebrën relacionale.

Pyetja 1. Gjej të gjithë autorët dhe titujt e librave të botuar prej ‘Prentice Hall’.

Result = π TITULLI , AUTORI (σ BOTUESI = ' Prentice Hall ' ( LIBRI ))

Pyetja 2. Gjej titujt e të gjitha librave të cilët janë huazuar 15. Shkurt. 2003.

Te _ Huazuarit = π SH _ L # (σ DATA _ HUAZIMIT = '15− Feb − 2003' ( HUAZIMI ))


Result = π TITULLI ( LIBRI >< Te _ Huazuarit )

Pyetja 3. Gjej emrin e antarit i cili në 15 Mars 2003 ka huazuar librin “Për kë
bien kombanat”.
Result1 = σ TITULLI = ' Për kë bien kombanat ' ( LIBRI )
Result2 = σ DATA _ HUAZIMIT = '15 − Mar − 2003' ( HUAZIMI )
Result = π EMRI (( Result1 >< Result2) >< ANTARI )

Pyetja 4. Shkruaj titullin dhe autorin e cilit do libër të botuar nga botuesi
‘Prentice Hall’ të cilin e ka huazuar antari me emrin ‘John Smith’ para datës 21.
Korik. 2003.

Result1 = π SH _ L # (σ EMRI = ' John Smith ' ( ANTARI ) >< σ DATA _ HUAZIMIT < '21− Jul − 2003' ( HUAZIMI ))
Result = π TITULLI , AUTORI (σ BOTUESI = ' Prentice Hall ' ( LIBRI ) >< Results1)

Pyetja 5. Gjej emrat dhe adresat e të gjithë antarëve të cilët i kanë huazuar të
gjitha librat e autorit Ernest Heminguay.

Result1 = π SH _ L # (σ AUTORI = ' Ernest Heminguay' ( LIBRI ))


Result2 = π SH _ L #, SH _ A # ( HUAZIMI ) / Result1
Result = π EMRI , ADRESA ( ANTARI >< Results2)
Pa operacionin e pjestimit:
Result1 = π SH _ L # (σ AUTORI = ' Ernest Heminguay' ( LIBRI ))
ALL _ COMB = Result1 × π SH _ A # ( ANTARI )
JO _ HUAZUARA = π SH _ A# ( ALL _ COMB − π SH _ L #, SH _ A# ( HUAZIMI ))
Result2 = π SH _ A# ( ANTARI ) − JO _ HUAZUARA
Result = π EMRI , ADRESA ( ANTARI >< Results2)

14
Pyetja 6. Shkruaj titujt dhe autorët e librave të cilët asnjëher nuk janë huazuar.

Result1 = π SH _ L # ( LIBRI ) − π SH _ L # ( HUAZIMI )


Result = π TITULLI , AUTORI ( Result1 >< LIBRI )

Pyetja 7. Shkruaj të dhënat për librat të cilat asnjëherë nuk i ka huazuar antari
me shifër 67542.

Result1 = π SH _ L # (σ SH _ A # = 67542 ( HUAZIMI ))


Result2 = π SH _ L # ( LIBRI ) − Result1
Result = LIBRI >< Results2

Pyetje 8. Shkruaj emrat e të gjithëve të cilët kanë huazuar të gjithë librat të


cilat i ka huazuar anëtari me shifrën 67542.

Result1 = π SH _ L # (σ SH _ A # = 67542 ( HUAZIMI ))


Result2 = π SH _ L #, SH _ A # ( HUAZIMI ) / Result1
Result = π EMRI ( ANTARI >< Results2)

Zgjidhja e detyrës pa përdorimin e operacionit e pjestimit

Result1 = π SH _ L # (σ SH _ A# = 67542 ( HUAZIMI ))


ALL _ COMB = Result1 × π SH _ A# ( ANTARI )
JO _ HUAZUARA = π SH _ A # (( ALL _ COMB − π SH _ L #, SH _ A # ( HUAZIMI ))
Result2 = π SH _ A # ( ANTARI ) − JO _ HUAZUARA
Result = π EMRI ( ANTARI >< Results2)

Analizojmë database-in e të dhënave për huazimin e anijeve:

Sailors ( sid, sname, age, rating)


Boats ( bid, bname, color )
Reserves ( sid, bid, date )

Detyra 3. Për database-in e huazimeve të anijeve pyetjet në vazhdim të


shprehen në algjebrën relacionale.

Pyetje 1. Gjej emrat e marinarëve të cilët kanë huazuar anijen me shifër 103.
- Zgjidhja 1:
Result=πsname((σbid=103(Reserves) Sailors)
- Zgjidhja 2:
ρ(Temp1,σbid=103(Reserves ))
ρ(Temp2,Temp1 Sailors)
Result=πsname(Temp2)
- Zgjidhja 3:
Result=πsname(,σbid=103(Reserves Sailors))

15
Pyetje 2. Gjej emrat e marinarëve të cilët kanë huazuar të paktën anije me
ngjyrë të kuqe.

- Zgjidhja 1:
Result=πsname((σbid=’red’(Boats) Reserves) Sailors)
- Zgjidhja 2:
Result=πsname(πsid((πbid(σcolor=‘red’(Boats)) Reserves) Sailors)

Pyetje 3. Të gjenden emrat e marinarëve të cilët kanë rezervuar të paktën


anijen e kuqe ose të gjelbërt.
Identifikojmë anijet e keqe dhe të gjelbërta dhe pastaj gjejm marinarët të cilët
kanë rezervuar ndonjë nga ata.

- Zgjidhja 1:
ρ(Tempboats, (σcolor=‘red’ V color=‘green’(Boats)))
Result=πsname(Tempboats Reserves Sailors)

− Zgjidhje 2:
Result=πsname((σcolor=‘red’(Boats) Reserves) Sailors) U
πsname((σcolor=‘green’(Boats) Reserves) Sailors)

Pyetje 4. Gjej emrat e marinarëve të cilët kanë rezervuar të paktën anije të


kuqe dhe anije të gjelbërt.
Zgjidhja 1 më lartë nuk do të funksionoj. Duhet të gjejmë marinarët të cilët
kanë rezervuar anije të kuqe dhe marinarët që kanë rezervuar anije të gjelbërt dhe
pastaj gjejmë prerjen.

ρ(Tempred, πsid((σcolor=‘red’(Boats) Reserves))


ρ(Tempgreen, πsid((σcolor=‘green’(Boats) Reserves))
Result=πsname((Tempred∩Tempgreen) Sailors)

Pyetje 5. Emrat e marinarëve të cilët kanë rezervuar të gjithë anijet.

ρ(Tempsids, (πsid,bid(Reserves) / (πbidBoats))


Result=πsname(Tempsids Sailors)

Pyetje 6. Gjej marinarët të cilët kanë rezervuar të gjithë anijet e kuqe:

ρ(Tempsids, (πsid,bid(Reserves) / (πbid(σcolor=‘red’(Boats))


Result=πsname(Tempsids Sailors)

16
5.3. Llogaritjet relacionale (Relational Calculus)

Llogaritja relacionale është propozuan nga E. F. Codd-i si alternativë e


algjebrës relacionale. Këtu bëhet fjalë për shënimin matematik të bazuar në llogaritjet
me predikatë. Pyetjet këtu janë predikate të cilët n-shet duhet patjetër t’i plotësojnë.
Dallojmë dy lloje të llogaritjeve relacionale:

 llogaritjet e orientuara në n-shet (objektet bazë janë n-shet) dhe


 llogaritjet e orientuara në domenën (objektet bazë janë elementet e domenës së
atributit).

Llogaritjet e orientuara në n-shet. Në shprehjet e këtilla paraqiten këta


elemente:

1. Variablat n-she marrin vlera nga relacioni i shënuar (i dhënë). Nëse t është
variabël që kalon nëpër relacionin R, atëherë t.A shënon komponentën A të t-së ku A
është atribut prej R.
2. Kushtet e formës xθy, ku θ është operacion për krahësim ( =, <, ≤, ≥, >, ≠ ).
Të paktën njëri nga x ose y duhet të jetë i formës t.A ndërsa tjetri mund të jetë edhe
konstantë. Kushti gjithashtu mund të jetë edhe i formës R(t) që do të thotë se t është
n-she në relacionin R. Kushti paraqet një formulë e cila quhet formulë atom.
3. Formula e formualuar (formuar) mirë (ang. Well–Formed–Formula, WFF),
është e ndërtuar nga lidhëset logjike ( ∧ (and), ∨ (or), ¬ (not), ⇒ ) dhe
kuantifikatorët ∃ (ekziston), ∀ (për çfarëdo) në përputhshmëri me rregullat në
vazhdim:

(i) çdo atom (çdo kusht) është formulë e formuluar mirë,


(ii) nëse f1 dhe f2 janë formula të formuluara mirë atëherë edhe f1 ∧ f2,
f1 ∨ f2, ¬ f1, ¬ f2, f1 ⇒ f2 dhe f2 ⇒ f1 gjithashtu janë formula të formuluara mirë,
(iii) nëse f është formulë e formuluar mirë në të cilën t paraqitet si variabël
e lirë (variabla e paraqitur në formulën të formuluar mirë është e lidhur nëse ajo
variabël është paraqitur me kuantifikator, përndryshe është e lirë) atëherë edhe
∃t ( f ) dhe ∀t ( f ) janë formula të formuluara mirë,
(iv) asnjë formulë tjetër (përveç këtyre të dhënë) nuk është formulë e
formuluar mirë.

Shprehja e llogaritjes të orientuar në n-shet është e formës

{t.A, u.B, v.C, … | f}

ku t, u, v, … janë variabla n-she, A, B, C, … janë atributet e relacioneve gjegjëse dhe f


është formulë e formuluar mirë e cila përmban t, u, v, … si variabla të lira.
Për një variabël themi se është e lidhur (bind) nëse në formulë paraqitet me
kuntifikator, përndryshe variabla është e lirë (free).

Pyetje 1. “Gjej shifrat e të gjithë lëndëve”.

{c.k# | Kursi(c)}

17
Pyetje 2. “Gjej shifrat e studentëve në vitin e parë”.

{s.s# | Studenti(s) ∧ s.viti_st=1}

Pyetje 3. “Gjej shifrat dhe emrat e studentëve të cilët kanë regjistruar lëndën
me shifër 121”

{s.s#, s.emri_st | Studenti(s) ∧ ∃r (Raporti(r) ∧ r.s# = s.s# ∧ r.k# = 121)}

Pyetje 4. “Gjej shifrat e atyre lëndëve të cilat i ka regjistruar të paktën një


student në vitin e parë”.

{c.s#|Kursi(c) ∧ ∃r (Raporti(r) ∧ r.k#=c.k# ∧ ∃s (Studenti(s) ∧ s.s#=r.s# ∧


s.viti_st = 1))}

Pyetje 5. “Gjej emrat e të gjithë studentëve të cilët i kanë regjistruar të gjitha


lëndët”.

{s.emri_st|Studenti(s) ∧ ∀c ∃r (Kursi(c) ∧ Raporti(r) ∧ c.k#=r.k# ∧ r.s#=s.s#)}

Pyetje 6. Të gjenden marinarët me kueficientin mbi 7.

{s|Sailors(s) ∧ s.rating>7}

Pyetje 7. Të gjendet emri dhe mosha e marinarëve me kueficientin mbi 7.

{s.name, s.age|Sailors(s) ∧ s.rating>7}

Pyetje 8. Të gjendet emri i marinarit, shifra (id) e anijes dhe data e rezervimit
për çdo rezervim të bërë.

{s.name, r.bid, r.date|Sailors(s) ∧ ∃r (Reserves(r) ∧ s.sid=r.sid)}

Pyetje 9. Të gjendet emri i marinarit i cili ka rezervuar anien me 103.

{s.name|Sailors(s) ∧ ∃r (Reserve(r) ∧ s.sid=r.sid ∧ r.bid=103)}

Pyetje 10. Të gjendet emri i marinarit i cili ka rezervuar anien me ngjyrë të


kuqe.

{s.name|Sailors(s) ∧ ∃r (Reserves(r) ∧ s.sid=r.sid ∧ ∃b (Boats(b) ∧ r.bid=b.sid ∧


b.color=’red’))}

Pyetje 11. Të gjendet emri i marinarit i cili ka rezervuar të paktën dy anie.

{s.name|Sailors(s) ∧ ∃r (Reserves(r) ∧ ∃r1 (Reserves(r1) ∧ s.sid=r.sid ∧ r.sid=r1.sid ∧


r.bid≠r1.bid))}

Pyetje 12. Të gjenden emrat e marinarëve të cilët i kanë rezervuar të gjithë


aniet.

18
{s.name|Sailors(s) ∧ ∀b (Boats(b) ∧ ∃r (Reserves(r) ∧ s.sid=r.sid ∧ r.bid=b.sid))}

Pyetje 13. Të gjenden marinarët të cilët i kanë rezervuar të gjithë aniet me


ngjyrë të kuqe.

{s|Sailors(s) ∧ ∀b (Boats(b) ∧ b.color=’Red’ ⇒ ∃r (Reserves(r) ∧ s.sid=r.sid ∧


r.bid=b.sid))}

Llogaritja e orientuar në domonë. Variablat “kalojnë” nëpër domenë,


gjithashtu kemi kushte “kushte të anëtarësisë” (është element) në formën:

R(A:v1, B:v2, C:v3, …)

ku A, B, C, … janë atribute të relacionit R dhe v1, v2, v3, … janë variabla ose konstanta.
Për shembull kushti Studenti(s#:87251, viti_st:1) është i saktë nëse dhe vetëm nëse në
relacionin Studenti ekziston n-she ashtu që s#=87251 dhe viti_st=1.
Rregullat për WFF (formulë e formuluar mirë) janë të njejta sikurse te
llogaritja e orientuar në n-shet.
Pyetje 1. “Gjej shifrat e të gjithë lëndëve”.

{c | Kursi(K# : c)}

Pyetje 2. “Gjej shifrat e të gjithë studentëve në vitin e parë të studimeve”.

{s|Studenti(s# : s, viti_st : 1)}

Pyetje 3. “ Gjej shifrat dhe emrat e studentëve të cilët kanë regjistruar lëndën
me shifër 121”.
{s, n|Studenti(s#: s, emri_st : n) ∧ Raporti(s#: s, k#: 121)}

Pyetje 4. “Gjej shifrat dhe titujt e lëndëve të cilat i ka regjistruar të paktën një
student në vitin e parë”.

{k, t|Kursi(k#:k, titulli:t) ∧ ∃ s(Raporti(k#:k, s#:s) ∧ Studenti(s#:s, viti_st:1))}

Pyetje 5. “Gjej emrat e atyre studentëve të cilët kanë regjistruar të gjitha


lëndët”.
{n| ∃ s(Studenti(s#:s, emri_st:n) ∧ ∀ k(Kursi(k#:k) ⇒ Raporti(s#:s, k#:k)))}

Llogaritja relacionale është jo procedurale në krahësim me algjebrën


relacionale. Bazuar në llogaritjen e orientuar në n-she ekziston gjuha programore për
përshkrim, manipulim dhe parashtrim të pyetjeve për database-et, gjuha SQL, ndërsa
bazuar në llogaritjet e orientuara në domanë gjuha QBE (Query By Example).

19
5.4.Optimizimi i pyetjeve

Që pyetjet e parashtruara të kryhen (ekzekutohen) më me sukse është e


nevojshme të bëhet edhe optimizimi i pyetjeve. Optimizimin e pyetjeve e bën DBMS-
ja. DBMS-ja optimizimin e pyetjeve e bënë në dy mënyra:
- në nivelin e lartë (nivelin logjik), duke e riformuluar shprehjen algjebrike në
formën ekuivalente me atë të fillimit por më të përshtatshme në aspektin e vlerësimit
(llogaritjes) të shpejtë,
- në nivelin e ulët (nivelin fizik), duke zgjedhur algoritëm më të mirë për
vlerësim (llogaritje) të çdo operacioni themelor në shprehjen algjebrike. Gjithashtu
shfrytëzon prezencën e strukturatve ndihmëse eventuale (si p.sh. indeksat dhe
ngjashëm).

Raporti në mes algjebrës relacionale dhe llogaritjes relacionale: Çdo pyetje e


shprehur në algjebrën relacionale mund të zëvendësohet me pyetjen ekuivalente të
shprehur në llogaritjen relacionale (Pohimi i këtillë është dhënë nga Ullman J. D.
‘Principles of Database Systems’, 1980). Për shembull:

R1 U R2 {t|R1(t) ∨ R2(t)}
R1–R2 {t|R1(t) ∧ ¬ R2(t)}
R1 × R2 {<t,r>|R1(t) ∧ R2(r)}
σf(X)(R1) {t|R1(t) ∧ f(t.x)}
πX(R1) {t.x|R1(t)}

Çdo pyetje e shprehur me ndihmën e llogaritjes relacionale mund të


formulohet edhe me ndihmën e algjebrës relacionale (Pohimi i këtillë është dhënë nga
Codd E. F. ‘Database Systems’, 1972). Codd ka shprehur edhe algoritmin e reduktuar
me ndihmën e të cilit shprehja e dhënë në llogaritjen relacionale mund të kalohet në
shprehje të algjebrës relacionale.
Kështu në vazhdim pa e humbur kuptimin e përgjithësisë mund të marrim një
pyetje të shprehur në algjebrën relacionale dhe atë do ta shprehim (diskutojmë) sipas
llogaritjes relacionale.

Pyetje . Të gjendet emri i marinarit me kueficient më të madh se 7 dhe i cili ka


rezervuar anien me ngjyrë të kuqe.

Përgjigja e pyetjes në algjebër relacionale

Result= πsname((πsid(Reserves σcolor=’red’(Boats)) (πsid,sname(Sailors))

ndërsa në llogaritjet relacionale (të bazuara në n-shet) është

{s.name|Sailors(s) ∧ s.rating>7 ∧ ∃r (Reserves(r) ∧ s.sid=r.sid ∧ ∃b (Boats(b) ∧


r.bid=b.sid ∧ b.color=’red’))}

Rregullat themelore për optimizim.


i. Kombinimi i selekcionit (operacionit të selektimit):

σB1(σB2(R))= σB1 ∧ B2(R)

20
Me këtë arrijmë që të zvoglojmë kohën e nevojshme për kryerje nëse të dy
selekcionet kryhen në mënyrë të barabartë ngadalë (d.m.th. shiqimin e krejtë
relacionit). Nëse njëra nga selekcionet kryhet shpejtë (duke falemenderuar prezencën
e strukturave fizike të të dhënave) ndërsa tjetra ngadalë atëherë kombinimi nuk ka
llogari sepse selekcioni përfundimtar gjithashtu do të kryhet ngadal. Vendimi se cila
është më e përshtatshme varet nga ndërtimi fizik i database-it.

ii. Nxjerja e selekcionit përpara lidhjes respektivisht prodhimit: Nëse B


përmban atribute nga R dhe jo nga S atëherë vlenë:

σB(R S)= σB(R) S


σB(R × S)= σB(R) × S
Nëpërgjithësi nëse B mund të zbërthehet në B=BR ∧ BS ∧ BRS ∧ B’ ku BR
përmban vetëm atributet nga R, BS përmban atributet nga S, BRS përmban atributet e
përbashkëta nga R dhe S dhe B’ përmban atributet tjera nga B atëherë vlenë

σB(R S)=σB’ (σBR ∧ BRS(R) σBS ∧ BRS(S))


Shembull: Gjej shifrat e të gjithë studentëve në vitin e parë të cilët kanë
regjistruar ndonjë lëndë të cilën e ligjeron arsimtari ‘Fatmir’ dhe në atë lëndë kanë
fituar notë më të madhe se 7.

Result:=πs#(σviti_st=1 ∧ nota>7 ∧ emri_ar=’Fatmir’(Studenti Rraporti Kursi))

Zgjidhja e optimizuar:

Result=πs#(σviti_st=1(Studenti ) σnota>7(Rraporti) σemri_ar=’Fatmir’(Kursi))


iii. Nxjerja e selekcionit para projekcionit: Nëse kushti B përmban vetëm
atributin X i cili projektohet atëherë vlenë

σB(πX (R)=πX(σB(R))
iv. Kombinimi i projekcioneve: Nëse X, Y dhe Z janë atribute nga R atëherë
vlenë:

πX(πX,Y(πX,Y,Z(R))=πX(R)
v. Nxjerja e projekcionit para lidhjes: Nëse X paraqet atributet e përbashkëta
të R dhe S atëherë vlenë

πX (R S)=πX(R) πX(S)
Kjo rregull nuk vlenë për çfarëdo bashkësie X të atributeve. Le të jetë AR
bashkësia e atributeve nga R, AS bashkësia e atributeve nga S dhe ARS=AR I AS
bashkësia e atributeve të përbashkëta të R dhe S atëherë vlenë

21
πX(R S)=πX( π ( X I AR ) U ARS ( R ) π ( X I AS ) U ARS ( S ) )

Përfundimisht vendimi se cila formë është më e përshtatshme varet nga


ndërtimi fizik i bazës së të dhënave.

vi. Optimizimi i operacioneve të bashkësive:

σ B ( R U S ) = σ B ( R ) U σ B (S )
σ B ( R − S ) = σ B ( R ) − σ B (S )
π X (R U S ) = π X (R ) U π X (S )
π X (R − S ) = π X (R ) − π X (S ) (vlenë nën supozimin se X përmban atributet çelës
të relacionit R (edhe të relacionit S))

π X (σ B1 (R )) U π X (σ B 2 (R )) = π X (σ B1∨ B 2 (R ))
π X (σ B1 (R )) − π X (σ B 2 (R )) = π X (σ B1∧ ¬B 2 (R ))

Kështu insistohet që të zvoglohet numri i n-sheve të cilat do të marin pjesë në


realizimin e unionit ose zbritjes.

22

You might also like