Professional Documents
Culture Documents
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
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
RESULT
s# emri_st viti_st
970001 Arta 1
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
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
RESULT=πdh#(Arsimtari)
RESULT
dh#
17
11
21
15
RESULT=πemri_ar(σk#=102(Kursi))
3
RESULT
emri_ar
Gjergj
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
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
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
R−S ≠ S −R.
Studenti–Studenti_ri
s# emri_st viti_st
970001 Arta 1
961269 Blerim 2
5
Shembull. Prerja e relacionit Studenti dhe Studenti_ri
Studenti I Studenti_ri
s# emri_st viti_st
950879 Petrit 3
950127 Vjollca 3
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 -
Rezultati është
6
Nuk _ Ka _ Regjistruar
s# k#
970001 124
970001 215
950879 124
950879 102
950879 215
961269 102
961269 215
Shembull.
ρ(R(2 →b, e →c),E)
E R
a d e a b c
α 10 + α 10 +
β 10 + β 10 +
β 20 - β 20 -
γ 10 - γ 10 -
Result = π Temp.emri _ st , Studenti. Emri _ st (σ (Temp.viti _ st = Studenti.viti _ st ) ∧ (Temp.s # < Studenti.s # ) (Temp × Student ) )
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)
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
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
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ë”.
(σ 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ë
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
relacioni Result është i zbrazët sepse asnjë n-she nuk plotësok kërkesën e shprehur me
shprehjen në të djathtë.
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 )
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
s#FAVERAGE(nota)(Raporti).
12
5.2. Algjebra relacionale – Ushtrime
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#)
13
Analizojmë database-in e të dhënave për huazimin e librave:
Pyetja 1. Gjej të gjithë autorët dhe titujt e librave të botuar prej ‘Prentice Hall’.
Pyetja 2. Gjej titujt e të gjitha librave të cilët janë huazuar 15. Shkurt. 2003.
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.
14
Pyetja 6. Shkruaj titujt dhe autorët e librave të cilët asnjëher nuk janë huazuar.
Pyetja 7. Shkruaj të dhënat për librat të cilat asnjëherë nuk i ka huazuar antari
me shifër 67542.
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)
- 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)
16
5.3. Llogaritjet relacionale (Relational Calculus)
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:
{c.k# | Kursi(c)}
17
Pyetje 2. “Gjej shifrat e studentëve në vitin e parë”.
Pyetje 3. “Gjej shifrat dhe emrat e studentëve të cilët kanë regjistruar lëndën
me shifër 121”
{s|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ë.
18
{s.name|Sailors(s) ∧ ∀b (Boats(b) ∧ ∃r (Reserves(r) ∧ s.sid=r.sid ∧ r.bid=b.sid))}
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 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ë”.
19
5.4.Optimizimi i pyetjeve
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)}
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.
Zgjidhja e optimizuar:
σ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 ) )
σ 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 ))
22