You are on page 1of 52

KAPITULLI 6

ALGJEBRA RELACIONALE

OBJEKTIVAT

Shembull i Aplikimit KOMPANIA


Algjebra Relacionale
Veprimet Relacionale Unare
Veprimet e Algjebres Relacionale nga Teoria e
Bashkesive
Veprimet Relacionale Binare
Veprime te tjera Relacionale
Shembuj Queries ne Algjebren Relacionale

Njehsime Relacionale (Relational Calculus)


Tuple Relational Calculus
Domain Relational Calculus
Overview e gjuhes QBE
2

Skema e Databazes Relacionale


KOMPANIA

Algjebra Relacionale

Bashkesia kryesore e veprimeve per modelin relacional njihet si


algjebra relacionale. Keto veprime i japin mundesine perdoruesit
te specifikoje kerkesat kryesore retrieval.

Rezultati i nje retrieval eshte nje relacion i ri, i cili mund te jete
formuar nga nje ose me teper relacione. Veprimet e
algjebres ne kete menyre krijojne relacione te reja, te cilat me
pas mund te perpunohen duke perdorur veprime te te njejtes
algjeber.

Nje varg veprimesh te algjebres relacionale formon nje


relational algebra expression, rezultati i se ciles gjithashtu
do te jete nje relacion qe paraqet rezultatin e nje database
query (or
retrieval request).
4

Veprimet Relacionale Unare

Veprimi SELECT
Veprimi SELECT perdoret per te zgjedhur nje
nenbashkesi tuples nga nje relacion qe
ploteson nje kusht perzgjedhjeje (a
selection condition). Ai eshte nje filter qe
mban vetem ato tuples qe plotesojne nje
kusht kualifikues (a qualifying condition )
ato qe plotesojne kushtin perzgjidhen ndersa
te tjeret nuk merren parasysh.
5

Veprimet Relacionale Unare


SELECT

Shembull: Per te perzgjedhur ato tuples te


PUNONJESI numri i departamentit te te cileve eshte
pese ose ato per te cilet paga eshte me e madhe se
30000 perdoret simbolika e meposhtme:
DNO = 5 (PUNONJESI)
PAGA > 30,000 (PUNONJESI)
Ne pergjithesi, veprimi select tregohet nga <kushti
i selektimit>(R) ku simboli (sigma) perdoret per te
treguar operatorin select, dhe kushti i selektimit
eshte nje shprehje Boolean e specifikuar ne atributet
e relacionit R
6

Veprimet Relacionale Unare


SELECT

Vecorite e Veprimit SELECT


- Veprimi SELECT <kushti i selektimit> (R) prodhon nje relacion S qe ka te
njejten skeme si R
Veprimi SELECT eshte commutative; p.sh.,
<kusht1> ( < kushti2> (R)) = <kushti2> ( < kushti1> ( R))
Nje veprim cascaded SELECT mund te zbatohet ne cfaredo lloj
rendi; p.sh.,
<kushti1> ( < kushti2> ( <kushti3> (R))
= <kushti2> ( < kushti3> ( < kushti1> ( R)))
Nje veprim cascaded SELECT mund te zevendesohet nga nje
perzgjedhje e vetme me nje bashkim te te gjithe kushteve; p.sh.,
<kusht1> ( <kushti2> ( <kushti3> (R))
= <kushti1> AND < kushti2> AND < kushti3> ( R)

Veprimet Relacionale Unare


SELECT
Rezultati i veprimit SELECT
(a)
(DNO=5 AND PAGA>30000) (PUNONJESI).

Veprimet Relacionale Unare


SELECT
Rezultati i veprimit SELECT
(b) (DNO=5 AND PAGA>30000) OR (DNO=4 AND PAGA >20000) (PUNONJESI)

Veprimet Relacionale Unare


PROJECT

Veprimi PROJECT
Ky veprim perzgjedh disa kolona nga
tabela duke lene menjane te tjerat.
PROJECT krijon nje ndarje vertikale
nje me kolonat (atributet) qe
permbajne rezultatet e veprimit dhe
tjetra qe permban Kolonat e
panevojshme.
10

Veprimet Relacionale Unare


PROJECT

Shembull: Per te afishuar emrin, mbiemrin dhe


pagen e cdo punonjesi perdorim:
Emri, Mbiemri, Paga (PUNONJESI)
Forma e pergjithshme e veprimit project eshte
<liste atributesh> (R) ku (pi) eshte simboli i
perdorur per te paraqitur veprimin project dhe
<liste atributesh> eshte lista e deshiruar e
atributeve prej atributeve te relacionit R.
Veprimi project largon cdo tuples te dublikuar,
keshtu qe rezultati i veprimit project eshte nje
bashkesi tuples, pra nje relacion i vlefshem.
11

Veprimet Relacionale Unare


PROJECT

Vecorite e Veprimit PROJECT


- Numri i tuples ne rezultatin e projektimit
<list> (R) eshte gjithmone me i vogel ose i
barabarte me numrin e tuples ne R.
- Nese lista e atributeve perfshin nje celes
te R, atehere numri i tuples eshte i barabarte
me numrin e tuples ne R.
<list1> ( <list2> (R) ) = <list1> (R) per aq
kohe sa <list2> permban atributet ne <list1>
12

Veprimet Relacionale Unare


PROJECT
Rezultati i veprimit PROJECT
(a) Emri, Mbiemri, Paga (PUNONJESI) .

13

Veprimet Relacionale Unare


PROJECT
Rezultati i veprimit PROJECT
(b) GJINIA, PAGA (PUNONJESI)

14

Veprimet Relacionale Unare


(vazhd.)

Veprimi RENAME
Ne mund te duam te zbatojme disa veprime
te algjebres relacionale njeri pas tjetrit. Ose
mund te shkruajme veprimet si nje shprehje
e vetme e algjebres relacionale duke I
vendosur veprimet njeri brenda tjetrit, ose
mund te zbatome nje veprim nje here dhe te
krijojme relacione te rezultatit te
ndermjetem. Me pas, ne mund tI
emertojme relacionet qe mbajne rezultatet e
ndermjetme.
15

Veprimet Relacionale Unare


(vazhd.)

Shembull: Per te terhequr emrin, mbiemrin, dhe


pagen e te gjithe punonjesve qe punojne ne
departamentin me numer 5 ne mund te zbatojme nje
veprim Select dhe nje veprim Project. Ne mund te
shkruajme nje shprehje te vetme relacionale si me
poshte:
Emri, Mbiemri, Paga ( DNO=5(PUNONJESI))
Ose ne menyre explicite te paraqesim vargun e
veprimeve, duke I dhene nje emer cdo relacioni te
ndermjetem:
DEP5_PUNS DNO=5(PUNONJESI)
RESULT Emri, Mbiemri, Paga (DEP5_PUN)
16

Veprimet Relacionale Unare


(vazhd.)

Veprimi RENAME (Vazhd.)


Operatori rename operator eshte
Veprimi Rename ne menyre te pergjithshme mund te shprehet me nje
nga format e meposhtme:
S(B1, B2, , Bn )(R) eshte nje relacion I riemertuar S I bazuar ne R me
emrat e kolonave B1, B2, , Bn.
S (R) eshte nje relacion I riemertuar S I bazuar ne R (qe nuk
specifikon emrat e kolonave).
(B1, B2, , Bn )(R) eshte nje relacion I riemertuar me emrat e kolonave
B1, B2, ..Bn qe nuk specifikon nje emer relacioni te ri.

17

Veprimet Relacionale Unare


(vazhd.)
Rezultatet e shprehjeve te Algjebres Relacionale
(a)
Emri, Mbiemri, Paga ( DNO=5 (PUNONJESI))
(b)
E njejta shprehje duke perdorur relacionet e ndermjetme dhe te
riemertimit te atributeve.
(a)

(b)

18

Veprimet e Algjebres
Relacionale nga Teoria e
Bashkesive

Veprimi I Bashkimit UNION


Rezultati I ketij veprimi, I paraqitur nga R U S, eshte nje relacion qe
perfshin te gjitha tuples qe ndodhen ose ne R ose ne S ose edhe
ne R edhe ne S. Tuples e dubluara eliminohen.
Shembull: Per te perzgjedhur ID e te gjithe punonjesve qe ose
punojne ne departamentin 5 ose direkt mbikqyrin nje punonjes qe
punon ne departamentin 5, ne mund te perdorim veprimin e
bashkimit si me poshte:
DEP5_PUNS DNO=5 (PUNONJESI)
RESULT1 ID(DEP5_PUNS)
RESULT2(ID) SUPE RV.ID (DEP5_PUNS)
RESULT RESULT1 U RESULT2
Veprimi I bashkimit krijon tuples qe bejne pjese ose ne RESULT1
ose ne RESULT2 ose ne te dyja. RESULT2 or both. Te dy operandet
duhet te jene type compatible.
19

Veprimet e Algjebres
Relacionale nga Teoria e
Bashkesive

Type Compatibility
Relacionet operande R1(A1, A2, ..., An) dhe
R2(B1, B2, ..., Bn) duhet te kene te njejtin
numer atributesh, dhe domain-et e atributeve
korresponduese duhet te jene compatible;
pra, dom(Ai)=dom(Bi) for i=1, 2, ..., n.
Relacioni rezultat per R1 U R2,R1 R2, or
R1-R2 ka te njejtat emra te atributeve si edhe
relacioni I pare operand R1 (me
marreveshje).
20

Veprimet e Algjebres
Relacionale nga Teoria e
Bashkesive

Shembull UNION

21

Veprimet e Algjebres
Relacionale nga Teoria e
Bashkesive

VEPRIMI I NDERPRERJES
Rezultati I ketij veprimi, I paraqitur nga R S, eshte nje relacion qe
perfshin te gjithe tuples qe jane njekohesisht edhe ne R edhe ne S. Te
dy operandet duhet te jene "type compatible.
Shembull: Rezultati I veprimit te nderprerjes (figura me poshte)
perfshin vetem ato qe jane njekohesisht punonjes dhe manaxhere.

22

Veprimet e Algjebres
Relacionale nga Teoria e
Bashkesive

Diferenca e Bashkesive Veprimi MINUS


Rezultati I ketij veprimi, I paraqitur nga R S eshte nje relacion
qe perfshin te gjithe tuples qe jane ne R por jo ne S. Te dy
operandet duhet te jene"typecompatible.
Shembull: Figura paraqet emrat e punonjesve qe nuk jane
manaxhere.

23

Veprimet e Algjebres
Relacionale nga Teoria e
Bashkesive

Shenojme qe edhe veprimi union dhe veprimi


intersection jane veprime commutative
qe do te thote qe R U S = S U R, dhe R S=S R
Te dy veprimet, union dhe intersection mund te
trajtohen si veprime n-ary te aplikueshme mbi
cfaredo numri relacionesh dhe qe te dy jane veprime
associative; qe do te thote
R U (S U T) =(R U S) U T, dhe (RS)
T=R(ST)
Veprimi minus nuk eshte commutative; qe do te
thote, ne pergjithesi R-S <> SR
24

Veprimet e Algjebres
Relacionale nga Teoria e
Bashkesive

Veprimi CARTESIAN (ose cross product)


Ky veprim perdoret per te kombinuar tuples nga dy relacione ne
nje menyre te kombinueshme. Ne pergjithesi, rezultati I R (A1,
A2,, An) x S (B1, B2,, Bm) eshte nje relcion Q I grades n+m
atribute Q (A1, A2,, An, B1, B2,, Bm). Relacioni rezultat Q ka
nje tuple per cdo kombinim tuples nje prej R dhe nje prej S.
Qe ketej, nqse R ka nR tuples (paraqitur si |R| = nR ), dhe S ka
nS tuples, atehere| RxS | do te kete nR*nS tuples.
Te dy operandet nuk kane "type compatible.
Shembull: Femer_PUNS GJINIA=F (PUNONJESI)
PUNEMERS EMRI, MBIEMRI, ID (Femer_PUNS)
PUN_VARTESS PUNEMERS x VARTES

25

Relacionale nga Teoria e


Bashkesive
Nje ilustrim I Veprimit te Produktit
Cartezian

26

Veprimet Relacionale Binare

Veprimi JOIN
Sekuenca e prodhimit kartezian e ndjekur nga select
perdoret shpesh per te identifikuar dhe zgjedhur tuples
e lidhur prej dy relacioneve, nje veprim special, I
quajtur JOIN. Ai paraqitet nga simboli
Ky veprim eshte shume I rendesishem per cdo
databaze relacionale me me teper se nje relacion, sepse
na lejon te krijojme relacione midis relacioneve.
Forma e pergjithshme e nje veprimi join ne dy
relacione R(A1, A2,. . ., An) dhe S(B1, B2, . . ., Bm) eshte:
R
<join condition> S ku R dhe S mund te jene cdo relacion
qe rezulton nga relational algebra expressions.

27

Veprimet Relacionale Binare

Shembull: Supozojme qe duma te perzgjedhim


emrin e manaxherit te cdo departamenti. Per te
gjetur emrin e manaxherit, eshte e nevojshme te
kombinohet cdo DEPARTMENTI tuple me
PUNONJESI tuple vlera e ID-se se te cilit koordinon
me vleren e MGID-se ne departament tuple. Kete
gje e realizojme duke perdorur veprimin join
operation.
DEPT_MGR DEPARTAMENTI JOIN MGID=ID
PUNONJESI

28

Veprimet Relacionale Binare

Veprimi EQUIJOIN
Perdorimi me I zakonshem I join perfshin kushte per join vetem me
krahasimet e barazise. Nje join I tille, ku I vetmi operator krahasues I
perdorur eshte =, quhet nje EQUIJOIN. Ne rezultatin e nje EQUIJOIN
ne gjithmone kemi nje ose me teper cifte atributesh (emrat e te cileve
nuk eshte te thene te jene identike) qe kane vlera identike ne cdo
tuple. JOIN I pare ne shembullin e meparshem ishte nje EQUIJOIN.
Veprimi NATURAL JOIN
Per aresye se nje nga atributet e cdo cifti me vlera identike eshte I
tepert, nje veprim I ri I quajtur natural joinI paraqitur nga * eshte
krijuar per te hequr atributin e dyte (te tepert) ne nje kusht
EQUIIJOIN.
Percaktimi standart I natural join kerkon qe te dy atributet e lidhjes
(join), ose cdo cift I atributeve korresponduese join, te kene te njejtin
emer ne te dy relacionet. Nese nuk ndodh keshtu, atehere se pari
duhet te zbatohet nje veprim renaming.

29

Veprimet Relacionale Binare


Shembull: Per te zbatuar nje natural join
atributet DNUMER te DEPARTAMENTi dhe
DEPARTAMENTI_VENDNDODHJE, eshte e
mjaftueshme te shkruajme:
DEPT_VENDS DEPARTAMENTI *
DEPARTAMENTI_VENDNDODHJE

30

Bashkesia e Plote e
Veprimeve Relacionale

Bashkesia e veprimeve qe perfshin select ,


project , union , set difference - , dhe
cartesian product X quhet nje bashkesi
komplete sepse cdo shprehje tjeter e
algjebres relacionale mund te shprehet nga
nje kombinim I ketyre pese veprimeve.
Per shembull:
R S = (R S ) ((R S) (S R))
R Join <join condition> S = <join condition> (R X S)
31

Veprimet Relacionale Binare

Veprimi I Pjestimit - DIVISION


Veprimi I pjestimit zbatohet mbi dy relacione
R(Z) S(X), ku X ben pjese ne Z. Le te jete Y =
Z - X (dhe qe ketej Z= X Y); pra, let Y le te
jete bashkesia e atributeve te R qe nuk jane
atribute te S.
Rezultati I DIVISION eshte nje relacionT(Y) qe
perfshin nje tuple t nese tuples tR shfaqet ne R
me tR [Y] = t, dhe me tR [X] = ts per cdo tuple ts
ne S.
Per nje tuple t te shfaqur ne rezultatinT te
DIVISION, vlerat ne t duhet te shfaqen ne R ne
kombinim me cdo tuple ne S.
32

Veprimet Relacionale
Binare

Shembull I veprimit DIVISION: T R S


X = {A} dhe Y = {B} jane atribute te thjeshta. Veme re qe
b1 dhe b4 shfaqen ne R ne kombinim me te tre tuples te S;
prandaj ato shfaqen ne rezultatin T. Te gjitha vlerat e tjera
te B ne R nuk shfaqen ne kombinim me te gjithe tuples ne
S dhe prandaj nuk jane zgjedhur; b2 nuk shfaqet me a2
dhe b3 nuk shfaqet me a1.

33

Veprimet Relacionale Binare

Veprimi DIVISION mund te shprehet si nje


sekuence e , X, dhe si me poshte:
T1 y (R)
T2 y ((SXT1)- R)
T T1 T2

34

Veprime te Tjera Relacionale

Funksionet Aggregate dhe Grupimet


Nje tip kerkese qe nuk mund te shprehet ne algjebren baze
relacionale eshte specifikimi matematikor i funksioneve aggregate
ne bashkesine e vlerave te databazes.
Shembuj te funksioneve te tille perfshijne gjetjen e totalit ose te
mesatares se pages te te gjithe punonjesve ose numrin total te
tuples te punonjesve. Keto funksione perdoren ne queries te
thjeshta statistikore qe permbledhin (summarize) informacionin nga
tuples te databazes.
Funksionet me te zakonshme qe zbatohen mbi bashkesine e
vlerave numerike perfshijne SUM, AVERAGE, MAXIMUM, dhe
MINIMUM. Funksioni COUNT perdoret per numerimin e tuples ose
te vlerave.

35

Veprime te Tjera Relacionale


(vazhd.)

Perdorimi i operatorit Funksional


MAX Paga (Punonjesi) gjen vleren maksimale te pages
nga relacioni Punonjesi
MIN Paga (Punonjesi) gjen vleren minimale te pages
nga relacioni Punonjesi
SUM Paga (Punonjesi) gjen totalin e pagave nga
relacioni Punonjesi
DNO COUNT ID, AVERAGE Paga (Punonjesi) grupon punonjesit
sipas DNO (numrit te departamentit) dhe llogarit numrin
e punonjesve dhe pagen mesatare per departament.
[ Shenim: count vetem numeron numrin e rreshtave, pa
hequr dublikatet]

36

Veprime te Tjera Relacionale


(vazhd.)
(a)

(b)

R(DNO, NR_PUNONJESVE,
PAGA_MESATARE) DNO
AVERAGE PAGA (PUNONJESI)

COUNT ID, AVERAGE PAGA

COUNT ID,

(PUNONJESI)

37

Veprime te Tjera Relacionale


(vazhd.)

Veprimet e Mbylljes Rekursive (Recursive Closure)


Nje tip tjeter veprimi qe, ne pergjithesi, nuk mund te specifikohet ne
bazen origjinale te algjebres relacionale eshte recursive closure. Ky
veprim zbatohet mbi nje recursive relationship.
Nje shembull i nje veprimi rekursiv eshte gjetja e te gjithe
SUPERVIZOREVE te nje PUNONJESI p ne te gjitha nivelet pra, te
gjithe PUNONJESIT p te supervizuar direkt nga p; te gjithe punonjesit
p te supervizuar direkt nga cdo punonjes p; te gjithe punonjesit p te
supervizuar nga cdo punonjes p; e me radhe.
Megjithese eshte e mundur te gjenden punonjesit ne cdo nivel dhe me
pas te merret bashkimi i tyre, ne nuk mundemi, ne pergjithesi, te
specifikojme nje query te tille si gjej supervizoret e Mira Bregu ne te
gjitha nivelet pa perdorur nje mekanizem looping.
SQL3 standarte perfshin sintakse per recursive closure.

38

Veprime te Tjera Relacionale


(vazhd.)
BREGU_ID ID ( EMRI = Mira AND MBIEMRI =
Bregu (PUNONJESI))
SUPERVIZOR (ID1, ID2) ID, SUPERV.ID
(PUNONJESI)
REZULT1(ID) ID1 (SUPERVIZOR Join
ID2=ID BREGU_ID)
BREGU_ID = 999887

39

Veprime te Tjera Relacionale


(vazhd.)
Per te gjetur te gjithe punonjesit e
supervizuar nga BREGU ne nivelin dy pra
te gjithe punonjesit p te supervizuar nga
disa punonjes p te cilet direkt
supervizohen nga BREGU - ne mund te
zbatojme nje tjeter Join mbi rezultatin e
query-s se pare si me poshte:
REZULT2(ID) ID1 (SUPERVIZOR Join
ID2=ID REZULT1)
40

Veprime te Tjera Relacionale


(vazhd.)
Per te gjetur njekohesisht
bashkesine e punonjesve te
supervizuar ne nivelet nje dhe dy
nga Mira Bregu, ne mund te
zbatojme veprimin UNION te dy
rezultateve, si me poshte:
REZULT3 (REZULT1 U REZULT2)
(rekursion me dy nivele)

41

Veprime te Tjera Relacionale


(vazhd.)

Veprimi Join I jashtem - OUTER JOIN


Ne NATURAL JOIN tuples pa nje koincidim (ose lidhes)
eliminohen nga rezultati i join.Tuples me null ne atributet join
eliminohen gjithashtu. Kjo con ne humbje te informacionit.
Nje bashkesi veprimesh, e quajtur outer join, mund te perdoret
kur ne duam te mbajme te gjithe tuples te R, ose te gjithe ato
te S, ose te gjithe ato te te dy relacioneve ne rezultatin e join,
pa i dhene rendesi nese kane ose jo matching tuples ne
relacionin tjeter.
Veprimi outer join i majte mban cdo tuple te relacionit te pare
ose te majte R ne R
S; Ne se ne S nuk gjenden matching
tuple , atehere atributet e S ne rezultatin join mbushen me vlera
null.
Nje veprim i ngjashem, outer join i djathte, mban cdo tuple te
relacionit te dyte ose te djathte S ne rezultatin e R
S
Nje veprim i trete , outer join i plote, i paraqitur me
mban
te gjithe tuples ne te dy relacionet, majte dhe djathte kur nuk
gjenden matching tuples, duke i mbushur ato me vlera null.

42

Veprime te Tjera Relacionale


(vazhd.)

43

Veprime te Tjera Relacionale


(vazhd.)

Shembull: Duam nje liste te te gjithe emrave te punonjesve


dhe gjithashtu emrat e departamenteve qe ato manaxhojne ,
nese ndodh qe ato manaxhojne nje departament; ne mund te
zbatojme nje veprim Left Outer Join per te marre rezultatin si
me poshte:
TEMP (PUNONJESI Left Outer Join ID=MGID DEPARTAMENTI)
REZULT EMRI, MBIEMRI, DEMER (TEMP)
Veprimi Left Outer Join mban cdo tuple ne relacionin e pare
ose te majte R (punonjesi) ; nese nuk gjenden matching tuples
ne S , atehere atributet e S ne rezultat mbushen me vleren
null.
Rezultati paraqitet ne figuren me poshte :

44

Veprime te Tjera Relacionale


(vazhd.)

Veprimet OUTER UNION


Veprimi outer union u krijua per te marre bashkimin e tuples nga dy relacione
nese keto dy relacione nuk jane union compatible.
Ky veprim do te marre bashkimin e tuples te dy relacioneve R(X, Y) dhe S(X, Z)
qe jane partially compatible, ne kuptimin qe vetem disa prej atributeve, te
themi X, jane union compatible.
Atributet qe jane union compatible paraqiten vetem nje here ne rezultat, dhe
ato atribute qe nuk jane union compatible prej cilitdo ralacion mbahen
gjithashtu ne relacionin rezultat T(X, Y, Z).
Shembull: Nje outer union mund te zbatohet ne dy relacione skemat e te
cileve jane STUDENTI(Emri, ID, Departamenti, Konsulenti) dhe
INSTRUKTORI(Emri, ID,Departamenti, Kategoria). Tuples nga te dy relacionet
koordinohen ne baze te kombinimit te vlerave te atributeve te perbashketa
(shared) Emri, ID, Departamenti. Relacioni rezultat
STUDENTI_OSE_INSTRUKTORI do te kete atributet e meposhtme:
STUDENTI_OSE_INSTRUKTORI (Emri, ID, Departamenti, Konsulenti,
Kategoria).
Te gjithe tuples nga te dy relacionet jane perfshire ne rezultat. Tuples te
STUDENTI do te kene vleren null per atributin Kategoria, nderkohe qe
INSTRUKTORI tuples do te kene nje vlere null per atributin Konsulenti. Nje tuple
qe ben pjese ne te dy relacionet do te kete vlera per te gjithe atributet.
45

Njehsimet Relacionale

Nje shprehje njehsimi relacional krijon nje relacion te ri, i cili


specifikohet ne termat e variablave qe levizin mbi rreshtat e
relacioneve te databazes se ruajtur (ne njehsimet tuple) ose
mbi kolonat e relacioneve te ruajtura (ne njehsimet domain).
Ne nje shprehje njehsimi, nuk ka nje rend te veprimeve per te
specifikuar si te gjejme query- n rezultat nje shprehje njehsimi
specifikon vetem se cfare informacioni duhet te permbaje
rezultati. Kjo eshte vecoria kryesore qe dallon algjebren
relacionale dhe njehsimet relacionale.
Relational calculus konsiderohet si nje gjuhe nonprocedural.
Kjo ndryshon nga algjebra relacionale, ku ne mund te
shkruajme nje varg veprimesh per te specifikuar nje kerkese
perzgjedhjeje; keshtu algjebra relacionale mund te konsiderohet
si nje menyre procedural e deklarimit te nje query.

46

Njehsimet Relacionale Tuple

Njehsimi relacional tuple bazohet ne specifikimin e nje numri


variablash tuple. Cdo variabel tuple shtrihet mbi nje relacion te
vecante te databazes, ne kuptimin qe variabli mund te marre si vlera te
tij cdo tuple individual nga ky relacion.
Nje query njehsimi i thjeshte relacional tuple eshte i formes
{t|COND(t)} ku t eshte nje variabel tuple dhe COND (t) eshte nje
shprehje e kushtezuar qe perfshin t. Rezultati i nje query te tille eshte
bashkesia e te gjithe tuples t qe permbushin COND (t).
Shembull: Per te gjetur emrat dhe mbiemrat e te gjithe punonjesve
paga e te cileve eshte mbi 50000, ne mund te shkruajme shprehjen e
meposhtme te njehsimit tuple :{t. EMRI, t.MBIEMRI
|PUNONJESI(t) AND t.PAGA>50000}.
Kushti PUNONJESI(t) specifikon qe range relation i variablit tuple t
eshte PUNONJESI. Emri dhe Mbiemri (PROJECTION EMRI, MBIEMRI) i
cdo tuple t i PUNONJESI qe ploteson kushtin t.PAGA>50000
(SELECTION PAGA >50000) do te perzgjidhet.

47

Percaktuesit (Quantifiers)
Existential dhe Universal

Dy simbole speciale te quajtura percaktues (quantifiers) mund te shfaqen ne


formula; keto jane universal quantifier () dhe existential quantifier ().
Ne menyre jo formale, nje variabel tuple t eshte i kufizuar nese eshte i
percaktuar, ne kuptimin qe shfaqet ose ne nje pjese ( t) ose ( t) ; perndryshe
ai eshte free.
Ne se F eshte nje formule, atehere keshtu eshte ( t)(F), ku t eshte nje variabel
tuple. Formula ( t)(F) eshte true nese formula F rezulton true per disa (te
pakten nje) tuple te paracaktuar ne free occurrences te t ne F; perndryshe (
t)(F) eshte false.
Ne se F eshte nje formule, atehere keshtu eshte ( t)(F), ku t eshte nje variabel
tuple. Formula ( t)(F) eshte true nese formula F rezulton ne true per cdo tuple
(in the universe) te paracaktuar ne free occurrences te t ne F; perndryshe (
t)(F) eshte false. Ajo quhet universal ose for all quantifier sepse cdo tuple ne
the universe of tuples mund te beje F true per te bere quantified formula true.

48

Perdorur Existential
Quantifier

Gjeni emrin dhe adresen e te gjithe punonjesve qe punojne per departamentin


Manaxhim.
Query : {t. EMRI, t.MBIEMRI, t.ADRESA|PUNONJESI(t) and ( d)(
DEPARTAMENTI(d) and d.DEMRI=Manaxhim and d.DNUMER=t.DNO)
I vetmi variabel free tuple ne nje shprehje njehsimi relacional duhet te jene ato
qe shfaqen ne te majte te simbolit bar (|). Ne query e mesiperme, t eshte i
vetmi free variable; ai me pas eshte kufizuar ne menyre te njepasnjeshme tek
cdo tuple. Ne se nje tuple ploteson kushtet e specifikuara ne query, atributet
EMRI, MBIEMRI, dhe ADRESA perzgjidhen per cdo tuple te tille.
Kushtet PUNONJESI(t) and DEPARTAMENTI(d) specifikojne range relations per t
dhe d. Kushti d.DEMER =Manaxhim eshte nje kusht selection dhe
korrespondon me nje veprim SELECT ne algjebren relacionale, nderkohe qe
kushti d.DNUMER =t.DNO eshte nje kusht JOIN.

49

Gjuhet e Bazuara ne Tuple


Relational Calculus

Gjuha SQL bazohet ne tuple calculus. Ajo perdor kryesisht strukturat bllok
SELECT <list of attributes>
FROM <list of relations>
WHERE <conditions>
per te shprehur queries ne tuple calculus ku fjala SELECT nenkupton atributet
qe do te projektohen, fjala FROM nenkupton relacionet e nevojshme ne query,
dhe fjala WHERE nenkupton selection po aq sa edhe kusht join.
Nje gjuhe tjeter e bazuar ne tuple calculus eshte QUEL e cila aktualisht perdor
range variables si ne tuple calculus.
Sintaksa e saj perfshin:
RANGE OF <variable name> IS <relation name>
Me pas perdor
RETRIEVE <list of attributes from range variables>
WHERE <conditions>

50

Domain Relational Calculus

Nje tjeter variant i njehsimeve relacionale i quajtur domain relational


calculus, ose thjesht, domain calculus eshte ekuivalent me tuple
calculus dhe me algjebren relacionale.
Gjuha e quajtur QBE (Query-By-Example) qe lidhet me domain calculus
eshte zhvilluar pothuajse ne menyre konkurrente me SQL at IBM Research,
Yorktown Heights, New York. Domain calculus u menduan si nje menyre
per te shpjeguar se cfare ben nje QBE.
Domain calculus ndryshon nga tuple calculus ne tipin e variablave te
perdorur ne formula:
me teper se kufizimi i variablave pergjate tuples, variablat kufizohen mbi
vlera te vecanta prej domeneve te atributeve .Per te formuar nje relacion
te grades n per nje rezultat query , ne duhet te kemi n variabla te ketyre
domeneve nje per cdo atribut.
Nje shprehje e domain calculus eshte e formes
{x1, x2, . . ., xn | COND(x1, x2, . . ., xn, xn+1, xn+2, . . ., xn+m)}
ku x1, x2, . . ., xn, xn+1, xn+2, . . ., xn+m jane variablat domain qe
kufizohen pergjate domeneve (te atributeve) dhe COND eshte nje
condition ose formule e domain relational calculus.
51

Shembull Query duke


perdorur Domain Calculus

Gjeni Dat.Lindjen dhe gjinine e punonjesit me emer Ilir Mali.


Query :
{tu | ( q) ( r) ( s) ( v) ( w) ( x)
(PUNONJESI(qrstuvwx) dhe q=Ilir and r=Mali)}
Tete variabla per relacionin punonjesi jane te nevojshme, njeri i
kufizuar pergjate domenit te secilit atribut sipas radhes. Prej
tete variablave q, r, s,, x, vetem t dhe u jane free.
Specifiko requested attributes, Dat.Lindja dhe Gjinia, me free
domain variables, t per Dat.Lindjen dhe u per Gjinia.
Specifiko kushtin per selektimin e nje tuple pas simboli bar ( |
) qe do te thote qe vargu i vlerave te caktuara nga variablat
qrstuvwx te jete nje tuple i relacionit punonjesi dhe qe vlerat
per q(EMRI), r(MBIEMRI) te jene Ilir, dhe Mali, respektivisht.

52

You might also like