Está en la página 1de 74

Baze podataka

Relaciona algebra
13.10.2011 Relaciona algebra 1
Relaciona algebra
Relaciona algebra pripada kategoriji formalnih upitnih jezika
proceduralnog karaktera
ini je skup operatora za rad sa relacijama, a rezultati
operacija su takoe relacije
Relaciona algebra je osnova za upitne jezike koje koriste
ljudi
Svaki od algebarskih izraza je jedan upit ili pretraivanje
Upitni jezik jezik kojim korisnici zahtevaju informacije iz BP
13.10.2011 Relaciona algebra 2
Relaciona algebra
- operacije -
ini je skup od 8 operacija koje se nazivaju osnovnim (5
elementarnih i 3 izvedene)
Elementarne: restrikcija (selekcija), projekcija, unija,
razlika, Dekartov proizvod
Izvedene: presek, spajanje, deljenje
Klasifikacija prema broju operanada:
Unarne (1 operand)
Binarne (2 operanda)
E.F.Codd podela:
Tradicionalne (pogodne za auriranje)
Posebne (pogodne za izvetavanje)
13.10.2011 Relaciona algebra 3
Relaciona algebra
- operacije -
13.10.2011 Relaciona algebra 4
simbol naziv sloenost operanada
o restrikcija elementarna unarna
t projekcija elementarna unarna
unija elementarna binarna
- razlika elementarna binarna
presek izvedena binarna
D. proizvod elementarna binarna
>< spajanje izvedena binarna
deljenje izvedena binarna
Restrikcija (o)
(selekcija, ogranienje)
Definicija: iz polazne relacije po zadatom
kriterijumu izdvaja podskup n-torki
Izbor n-torki koje zadovoljavuju odreeni uslov
Kriterijum je neki logiki izraz koji je
izraunljiv nad svakom n-torkom
Dobijena relacija ima istu strukturu kao i
polazna
13.10.2011 Relaciona algebra 5
Restrikcija (o)
(selekcija, ogranienje)
Notacija - o
P
(r)
P uslov za selekciju
P se sastoji iz lanova koji su povezani sa:
. (and), v (or), (not)
Svaki lan je u sledeoj formi:
<atribut> op <atribut> ili <konstanta>
gde je op jedan od: =, =, >, >, <, s
Primer selekcije:
o
BrInd=125/2004
(student)
13.10.2011 Relaciona algebra 6
Restrikcija (o)
(selekcija, ogranienje)
13.10.2011 Relaciona algebra 7
Relacija r
A B C D
o
o
|
|
o
|
|
|
1
5
12
23
7
7
3
10
o
A=B ^ D > 5
(r)
A B C D
o
|
o
|
1
23
7
10
Restrikcija (o)
(selekcija, ogranienje)
Primer: Iz relacije naslov izdvojiti samo one
naslove ija je ifra oblasti (SIFO) jednaka PJ
o
SIFO=PJ
(naslov) t(SIFN,NAZIV,SIFO)
Dobija se relacija t:

t (SIFN NAZIV SIFO)
PP00 PASCAL programiranje PJ
PJC0 Programski jezik C PJ
13.10.2011 Relaciona algebra 8
Restrikcija (o)
(selekcija, ogranienje)
Primer: Posmatra se relacija je_autor. Da bi dobili
podatke za naslove koji imaju vie od jednog
autora primeniti:
o
KOJI>1
(je_autor) t(SIFA,SIFN,KOJI)

t (SIFA SIFN KOJI)
JN0 RBP0 2
DM0 PP00 2
IT0 PP00 3
ZP0 PJC0 2
13.10.2011 Relaciona algebra 9
Restrikcija (o)
(selekcija, ogranienje)
Operacija restrikcije kao rezultat moe da da
prazan skup C n-torki.
Primer: Izdvojiti sve autore koji imaju vie od tri
naslova
o
KOJI>3
(je_autor) t(SIFA,SIFN,KOJI)= C
Zakljuak za restrikciju:
Struktura relacije se ne menja, ema rezultata odgovara
emi operanda (polazne relacije)
Za broj n-torki u relaciji vai:
N(t) s N(r)
Restrikcija, selekcija selekcija n-torki
13.10.2011 Relaciona algebra 10
Restrikcija (o)
(selekcija, ogranienje)
Primer: Nad relacijom
student(BrInd#,Ime,Adresa,Telefon,,...)
Napraviti restrikciju po atributu Adresa
Izdvojiti samo one studente koji su iz Subotice
o
ADRESA=Subotica
(student)
Prethodnom restrikcijom nastaje iz relacije
student nova relacija, sa novim imenom
Upiti kojima se vri selekcija moraju uvek biti
logini i izvodljivi
13.10.2011 Relaciona algebra 11
Restrikcija (o)
(selekcija, ogranienje)
Nad relacijom
kredit(BR_KRED#, IME_EXP, IME_KL, IZNOS)
elimo da vidimo sve transakcije kredita u ekspozituri IEX
o
IME_EXP=IEX
(kredit) kredit_IEX(...)
Dozvoljeno je koristiti sledee operatore:
=, , <, >, , , ., v
npr: o
(IME_EXP=IEX) . (IZNOS>1000)
(kredit)
Kao kriterijum se moe uvesti i poreenje izmeu
dva atributa
13.10.2011 Relaciona algebra 12
13.10.2011 Relaciona algebra 13
k x y
1 A 2
2 B 4
3 C 6
restrikcija:
y>2 and X<>'C'
k x y
2 B 4
k x y
1 A 2
2 B 4
3 C 6
restrikcija:
y>2
k x y
2 B 4
3 C 6
Projekcija (t)
Definicija: iz polazne relacije po zadatom skupu
atributa formira se nova relacija kao skup n-torki
nad tim atributima
Zadati skup atributa mora biti podskup skupa
atributa polazne relacije
Vrednosti atributa u n-torkama nastale relacije
odgovaraju onima u polaznoj relaciji
13.10.2011 Relaciona algebra 14
Projekcija (t)
Primenom operacije projekcije mogue je da vie n-torki
polazne relacije daje iste vrednosti
Poto rezultat operacije mora biti relacija, uzima se samo
jedna rezultantna relacija
Primer: Iz relacije naslov elimo da dobijemo pregled svih
naziva i ifara oblasti: t
NAZIV,SIFO
(naslov) t(NAZIV,SIFO)
Kao rezultat dobija se relacija
t ( NAZIV SIFO)
Relacione baze podataka BP
Raunarske komunikacije RM
PASCAL programiranje PJ
Programski jezik C PJ
13.10.2011 Relaciona algebra 15
Projekcija (t)
13.10.2011 Relaciona algebra 16
Relacija r:
A B C
o
o
|
|
10
20
30
40
1
1
1
2
A C
o
o
|
|
1
1
1
2
=
A C
o
|
|
1
1
2
t
A,C
(r)
Projekcija (t)
Ilustracija sluaja kada vie n-torki polazne relacije
daje jednu n-torku u novoj:
t
SIFO
(naslov) t(SIFO)
Kao rezultat dobija se relacija
t ( SIFO)
BP
RM
PJ
Vrednost PJ se pojavljuje jednom dok je u polaznoj
relaciji naslov ta vrednost prisutna dva puta
13.10.2011 Relaciona algebra 17
Projekcija (t)
Jedna od namena operacije projekcije je promena
redosleda atributa:
t
NAZIV,SIFN,SIFO
(naslov)t(NAZIV,SIFN,SIFO)
Kao rezultat dobija se relacija
t ( NAZIV SIFN SIFO)
Relacione baze podataka RBP0 BP
Raunarske komunikacije RK00 RM
PASCAL programiranje PP00 PJ
Programski jezik C PJC0 PJ
13.10.2011 Relaciona algebra 18
Projekcija (t)
Operacije relacione algebre se mogu kombinovati
Primer: Sloena operacija
t
NAZIV
(o
SIFO=PJ
(naslov))pj_naslov(NAZIV)
Kao rezultat dobijaju se nazivi svih naslova za koje je ifra
oblasti jednaka PJ:
pj_naslov ( NAZIV)
PASCAL programiranje
Programski jezik C
Zakljuak z projekciju:
ema relacije se menja i odreuje je zadati skup atributa
Za broj n-torki u relaciji vai: N(t) s N(r)
Projekcija selekcija po atributima
13.10.2011 Relaciona algebra 19
Projekcija (t)
Primer: Nad relacijom
roba(SIFRA#,NAZIV,PROIZVOA,DATUM,ADRESA,...)
Projekcija relacije roba po atributima: SIFRA#, NAZIV i
ADRESA dobili bi novu relaciju:
roba1(SIFRA#,NAZIV,ADRESA)
koja ima isti broj n-torki kao i polazna
Primer:
student(BROJIND#,IME,PREZIME,IMEOCA,DATROD,)
Projekcija po BROJIND#, zadrava se broj n-torki
Projekcija po IME, smanjuje se broj n-torki (mogue su
greke, jer se briu svi ostali studenti)
13.10.2011 Relaciona algebra 20
Projekcija (t)
Primer: Nad relacijom
kredit(BR_KRED#, IME_EXP, IME_KL, IZNOS)
elimo da vidimo klijente i ekspoziture iz kojih su klijenti
uzeli kredit
Ne interesuje nas iznos kredita niti broj kredita
t
IME_EXP, IME_KL
(kredit)
kredit_lista(IME_EXP, IME_KL)
13.10.2011 Relaciona algebra 21
Projekcija (t)
Rezultat primene je podskup kolona relacije, uz
uklanjanje duplikata
13.10.2011 Relaciona algebra 22
k x y
1 A 2
2 B 4
3 C 6
4 A 2
projekcija na
kolone x i y
x y
A 2
B 4
C 6
Unija ()
Definicija: iz dve polazne relacije formira novu koja
sadri sve n-torke iz obe relacije
Ova operacija nije mogua izmeu bilo koje dve
relacije, tj. mora biti zadovoljeno:
eme relacija moraju imati isti broj atributa
Atributi ema relacija redom odgovaraju po
znaenju i tipu (ne mora po nazivu)
Navedeni uslovi se nazivaju:
unijska kompatibilnost
13.10.2011 Relaciona algebra 23
Unija ()
Svaka n-torka koja je prisutna u obe relacije
pojavljuje se samo jednom u rezultantnoj
Primer: Posmatraju se relacije clan i autor. Ako
elimo podatke o svim osobama u evidenciji, to se
postie primenom operacije unije:
clan autor osoba(SIFx,IME)
13.10.2011 Relaciona algebra 24
Unija ()
13.10.2011 Relaciona algebra 25
Relacije r, s:
r s:
A B
o
o
|
1
2
1
A B
o
|
2
3
r
s
A B
o
o
|
|
1
2
1
3
Unija ()
Primer: Posmatraju se relacije drzi i pozajmica. elimo da
utvrdimo koje knjige su trenutno ili su nekada bile kod
lanova.
Pre operacije unije prvo se moraju uskladiti eme relacija:
t
SIFK
(drzi) t1(SIFK)
t
SIFK
(pozajmica) t2(SIFK)
Zatim se primeni operacija unije:
t1 t2 knjiga_u_prometu(SIFK)
Zakljuak z uniju:
eme relacija se prethodno moraju uskladiti
max(N(r),N(s)) s N(t) s N(r)+N(s)
13.10.2011 Relaciona algebra 26
Unija ()
13.10.2011 Relaciona algebra 27
IFRA# PREZIME IME TEL.BROJ
3244 Aksentijevi Petar 011 334 952
1772 Maksimovi Ilija 015 723 543
IFRA# PREZIME IME TEL.BROJ
3244 Aksentijevi Petar 011 334 952
2345 Petrovi Dara 023 47 946
IFRA# PREZIME IME TEL.BROJ
3244 Aksentijevi Petar 011 334 952
1772 Maksimovi Ilija 015 723 543
2345 Petrovi Dara 023 47 946
A
B
AB
Unija ()
Primer: Nad relacijama
kredit(BR_KRED#, IME_EXP, IME_KL, IZNOS)
racun(IME_EXP, BR_RAC#, IME_KL#, STANJE)
Nai sve klijente koji u ekspozituri IEX imaju ili raun ili
kredit
Nai sve klijente koji imaju kredit u IEX
t
IME_KL
(o
IME_EXP=IEX
(kredit)) t1
Nai sve klijente koji imaju racun u IEX
t
IME_KL
(o
IME_EXP=IEX
(racun)) t2
Rezultat je: t1 t2
13.10.2011 Relaciona algebra 28
Unija ()
13.10.2011 Relaciona algebra 29
Razlika (-)
Definicija: iz dve polazne relacije formira
novu koja sadri sve n-torke prve relacije
koje se ne nalaze u drugoj
Ova operacija je mogua samo izmeu
unijski kompatibilnih relacija.
13.10.2011 Relaciona algebra 30
Razlika (-)
Primer: Posmatraju se relacije drzi i pozajmica.
elimo da utvrdimo koji lanovi itaju koje knjige
prvi put.
Pre operacije razlika prvo se moraju uskladiti eme
relacija:
t
SIFC,SIFK
(drzi) t1(SIFC,SIFK)
t
SIFC,SIFK
(pozajmica) t2(SIFC,SIFK)
Zatim se primeni operacija razlike:
t1 - t2 cita_1(SIFC,SIFK)
13.10.2011 Relaciona algebra 31
Razlika (-)
13.10.2011 Relaciona algebra 32
t1 ( SIFC SIFK )
JJ0 001
PP0 002
JJ0 004
t2 ( SIFC SIFK )
JJ0 004
PP0 007
JJ1 005
JJ0 008
PP0 002
JJ1 009
t1-t2 = cita_1 ( SIFC SIFK )
JJ0 001
Razlika (-)
Primer: Ako elimo uvid u ifre lanova koji trenutno ne
dre ni jednu knjigu kod sebe, mora se izvriti sledea
sekvenca operacija:
t
SIFC
(clan) t1(SIFC)
t
SIFC
(drzi) t2(SIFC)
t1 - t2 ne_drzi(SIFC)
Zakljuak za operaciju razlika:
eme relacija se prethodno moraju uskladiti
Broj n-torki u rezultatu 0 s N(t) s N(r)
13.10.2011 Relaciona algebra 33
Razlika (-)
13.10.2011 Relaciona algebra 34
t1 ( SIFC )
JJ0
JJ1
PP0
MM0
t2 ( SIFC )
JJ0
PP0
JJ0
t1-t2 = ne_drzi ( SIFK )
JJ1
MM0
Razlika (-)
13.10.2011 Relaciona algebra 35
IFRA# PREZIME IME TEL.BROJ
3244 Aksentijevi Petar 0710 334 952
1772 Maksimovi Ilija 015 723 543
IFRA# PREZIME IME TEL.BROJ
3244 Aksentijevi Petar 0710 334 952
2345 Petrovi Dara 023 47946
IFRA# PREZIME IME TEL.BROJ
1772 Maksimovi Ilija 015 723 543
A
B
A-B
IFRA# PREZIME IME TEL.BROJ
2345 Petrovi Dara 023 47946
B-A
Razlika (-)
Primer: Nad relacijama
kredit(BR_KRED#, IME_EXP, IME_KL, IZNOS)
racun(IME_EXP, BR_RAC#, IME_KL#, STANJE)
Nai sve klijente koji u ekspozituri IEX imaju raun ali jo
uvek nemaju kredit
Nai sve klijente koji imaju racun u IEX
t
IME_KL
(o
IME_EXP=IEX
(racun)) t1
Nai sve klijente koji imaju kredit u IEX
t
IME_KL
(o
IME_EXP=IEX
(kredit)) t2
Rezultat je: t1 - t2
13.10.2011 Relaciona algebra 36
Razlika (-)
13.10.2011 Relaciona algebra 37
Presek ()
Definicija: iz dve polazne relacije formira
novu koja sadri sve n-torke prve relacije
koje se nalaze u drugoj relaciji
Ova operacija je mogua samo izmeu
unijski kompatibilnih relacija.
Presek je izvedena operacija, moe se
izvesti iz:
r s = r (r-s)
13.10.2011 Relaciona algebra 38
Presek ()
Primer: Posmatraju se relacije drzi i pozajmica. elimo da
odredimo koji lanovi ponovo itaju koju knjigu.
Pre operacije presek prvo se moraju uskladiti eme relacija:
t
SIFC,SIFK
(drzi) t1(SIFC,SIFK)
t
SIFC,SIFK
(pozajmica) t2(SIFC,SIFK)
Zatim se primeni operacija preseka:
t1 t2 cita_opet(SIFC,SIFK)
Zakljuak operaciju presek:
eme relacija se prethodno moraju uskladiti
Broj n-torki u rezultatu
0 s N(t) s min(N(r),N(s)
13.10.2011 Relaciona algebra 39
13.10.2011 Relaciona algebra 40
t1 ( SIFC SIFK )
JJ0 001
PP0 002
JJ0 004
t2 ( SIFC SIFK )
JJ0 004
PP0 007
JJ1 005
JJ0 008
PP0 002
JJ1 009
t1 t2 = cita_opet ( SIFC SIFK )
PP0 002
JJ0 004
Presek ()
IFRA# PREZIME IME TEL.BROJ
3244 Aksentijevi Petar 0710 334 952
1772 Maksimovi Ilija 015 723 543
IFRA# PREZIME IME TEL.BROJ
3244 Aksentijevi Petar 0710 334 952
2345 Petrovi Dara 023 47946
IFRA# PREZIME IME TEL.BROJ
3244 Aksentijevi Petar 0710 334 952
13.10.2011 Relaciona algebra 41
A
B
AB
Presek ()
Primer: Nad relacijama
kredit(BR_KRED#, IME_EXP, IME_KL, IZNOS)
racun(IME_EXP, BR_RAC#, IME_KL#, STANJE)
Nai sve klijente koji u ekspozituri IEX imaju i raun i kredit
Nai sve klijente koji imaju racun u IEX
t
IME_KL
(o
IME_EXP=IEX
(racun)) t1
Nai sve klijente koji imaju kredit u IEX
t
IME_KL
(o
IME_EXP=IEX
(kredit)) t2
Rezultat je: t1 t2
13.10.2011 Relaciona algebra 42
Presek ()
13.10.2011 Relaciona algebra 43
Dekartov proizvod ()
Definicija: iz dve polazne relacije formira se nova
sa n-torkama dobijenim tako to se svaka n-torka
prve relacije spaja sa svakom iz druge
ema nastale relacije sadri sve atribute polaznih
relacija
Oznaavanje: za puni naziv atributa se moe
koristiti relacija.atribut
13.10.2011 Relaciona algebra 44
Dekartov proizvod ()
13.10.2011 Relaciona algebra 45
Relacije r, s:
r x s:
A B
o
|
1
2
A B
o
o
o
o
|
|
|
|
1
1
1
1
2
2
2
2
C D
o
|
|

o
|
|

10
10
20
10
10
10
20
10
E
a
a
b
b
a
a
b
b
C D
o
|
|

10
10
20
10
E
a
a
b
b
r
s
Dekartov proizvod
Primer: Posmatraju se relacije naslov i oblast. Ako
izvrimo operaciju Dekartovog proizvoda:
naslov oblast
t(SIFN,N.NAZIV,N.SIFO,O.SIFO,O.NAZIV)
Dobijena relacija kao celina nema smisla, meutim
pojedine n-torka imaju jasno znaenje
Zakljuak z operaciju Dekartov proizvod:
ema rezultantne relacije sadri sve atribute polaznih
relacija
Broj n-torki u rezultatu: N(t) = N(r)-N(s)
13.10.2011 Relaciona algebra 46
Dekartov proizvod
13.10.2011 Relaciona algebra 47
t (SIFN, NAZIV N.SIFO O.SIFO O.NAZIV )
RBP0 Relacione baze podataka BP BP Baze podataka
RBP0 Relacione baze podataka BP RM Raunarske mree
RBP0 Relacione baze podataka BP PJ Programski jezici
RK00 Raunarske komunikacuje RK BP Baze podataka
RK00 Raunarske komunikacuje RK RM Raunarske mree
RK00 Raunarske komunikacuje RK PJ Programski jezici
PP00 PASCAL Programiranje PJ BP Baze podataka
PP00 PASCAL Programiranje PJ RM Raunarske mree
PP00 PASCAL Programiranje PJ PJ Programski jezici
PJC0 Programski jezik C PJ BP Baze podataka
PJC0 Programski jezik C PJ RM Raunarske mree
PJC0 Programski jezik C PJ PJ Programski jezici
U oznaenim n-torkama, uz svaki deo iz relacije naslov nalazi se
odgovarajui deo iz relacije oblast
Dekartov proizvod
Primer: Nad relacijama
klijent(IME_KL, UL_BR, GRAD),
licni_bankar(IME_KL, IME_SL)
Nai sve klijente sa linim bankarom IS1 i gradove u kojima
klijenti ive
licni_bankar klijent
t(LB.IME_KL, LB.IME_SL, K.IME_KL, K.UL_BR, K.GRAD)
Broj n-torki
u klijent je N1, u licni_bankar je N2
u t je N1-N2
Neke od n-torki u t su ne vaee
13.10.2011 Relaciona algebra 48
Zoran Savska Beograd
Milan Nika Novi Sad
Petar Kralja Milana Kruevac
Zoran Sl1
Milan Sl2
Petar Sl3
Zoran Savska Beograd Zoran Sl1
Zoran Savska Beograd Milan Sl2
Zoran Savska Beograd Petar Sl3
Milan Nika Novi Sad Zoran Sl1
Milan Nika Novi Sad Milan Sl2
Milan Nika Novi Sad Petar Sl3
Petar Kralja Milana Kruevac Zoran Sl1
Petar Kralja Milana Kruevac Milan Sl2
Petar Kralja Milana Kruevac Petar Sl3
13.10.2011 Relaciona algebra 49
Klijent
Lini_bankar
Klijent Lini_bankar
Spajanje (><)
Definicija: iz dve polazne relacije formira se nova
sa n-torkama dobijenim u dva koraka:
Svaka n-torka iz prve relacije redom se spaja sa
svim n-torkama iz druge relacije
Iz tako dobijenih n-torki izdvajaju se one koje
zadovoljavaju zadati uslov P
13.10.2011 Relaciona algebra 50
u-spajanje
Prethodna definicija dozvoljava proizvoljni uslov P, pod
uslovom da je izraunljiv za svaku n-torku nakon
Dekartovog proizvoda
Neka su r i s relacije nad emom R(X) i S(Y). Neka su X
i
i
Y
k
atributi za koje vai da je X
i
eX i Y
i
eY. Pod u spajanjem
r >
Xi u Yi
< s
podrazumeva se spajanje kod koga operator u oznaava
bilo koji operator poreenja: (=,s,<,>,>,=)
13.10.2011 Relaciona algebra 51
Ekvi-spajanje
Prethodno u spajanje ograniava formu uslova
spajanja, meutim i dalje dobijeni rezultat nema
praktinu primenu.
Specijalni sluaj gde u predstavlja jednakost (=) je
est sluaj u praksi.
U pr. za Dekartov proizvod nad relacijama naslov i
oblast, ekvi-spajanjem pod uslovom jednakosti
atributa SIFO, dobili bi izdvojene n-torke (koje imaju
smisla).
13.10.2011 Relaciona algebra 52
Ekvi-spajanje
13.10.2011 Relaciona algebra 53
Relacije r, s:
A B
o
|
1
2
C D
o
|
|

10
10
20
10
E
a
a
b
b
r
s
A B C D E
o
|
|
1
2
2
o
|
|
10
10
20
a
a
b
o
A=C
(r x s)
Prirodno spajanje
Prethodno spajanje daje jedan suvian atribut, zato to su
vrednosti atributa po kojima se vri spajanje uvek iste.
Nepotrebni atribut se eliminie dodatnom operacijom
projekcije
Navedeni sluaj je est u praksi, pa je uvedena specijalna
operacija prirodnog spajanja:
Podrazumeva sekvencu tri elementarne oper.
Dekartov proizvod relacija
Restrikciju po uslovu jednakosti atributa
Projekcija po razlici unije svih atributa i skupa spojnih
atributa iz bilo koje od relacija
13.10.2011 Relaciona algebra 54
Prirodno spajanje
Prirodno spajanje dve relacije po jednom atributu oznaava
se sa:
r >
Xi,*,Yk
< s
U sluaju vie spojnih atributa
r >
(X1,X2,...,Xn) * (Y1,Y2,...,Yn)
< s
Specijalni sluaj oznaavanja:
r >
*
< s
podrazumeva prirodno spajanje po svim atributima koji
imaju jednake nazive u obe r
13.10.2011 Relaciona algebra 55
Prirodno spajanje
13.10.2011 Relaciona algebra 56
Relacije r, s:
A B
o
|
1
2
C D
o
|
|

10
10
20
10
E
a
a
b
b
r
s
A B
o
|
|
1
2
2
r >
*
< s = t
XY-B
(o
A=C
(r x s))
D E
10
10
20
a
a
b
Prirodno spajanje
IFRAD# NAZIV MESTO
d001 Comex Toronto
d002 Unita Vancuver
d003 Dual Beograd
IFRAD# IFRAP# BROJ KOM.
d001 p991 123
d002 p678 23
d003 p007 12564
IFRAD# NAZIV MESTO IFRAP# BROJ KOM.
d001 Comex Toronto p991 123
d002 Unita Vancuver p678 23
d003 Dual Beograd p007 12564
13.10.2011 Relaciona algebra 57
ALFA
BETA
GAMA
Deljenje (/)
Najsloenija operacija relacione algebre
Operacija deljenja daje one vrednosti X u r koje u
kombinaciji sa Y pokrivaju skup vrednosti zadat
relacijom s.
13.10.2011 Relaciona algebra 58
Deljenje se ne moe izvesti sa
proizvoljnim tabelama
Za A/B potrebno je da se svi atributi
relacije B nalaze u relaciji A
Npr: Mogue je deljenje za:
a (X1,X2,...,Xn,Y1,Y2,...,Ym)
b (Y1,Y2,...,Ym)
Primer:
X
033
061
044
Y
a43
a00
13.10.2011 Relaciona algebra 59
X Y
017 a22
033 a43
077 a86
061 a43
044 a00
a b
c=a/b
Deljenje (division)
13.10.2011 Relaciona algebra 60
Deljenje (division)
13.10.2011 Relaciona algebra 61
A
B
o
|
1
2
A B
o
o
o
|

o
o
o
e
e
|
1
2
3
1
1
1
3
4
6
1
2
r
s
Relacije r, s:
r/s:
Deljenje (division)
13.10.2011 Relaciona algebra 62
Relacije r, s:
r/s:
A B
o
o
o
|
|



a
a
a
a
a
a
a
a
C D
o






|
a
a
b
a
b
a
b
b
E
1
1
1
1
3
1
1
1
D
a
b
E
1
1
A B
o

a
a
C


r
s
Upiti relacione
algebre
Upiti izrazi sa operacijama relacione algebre, koji se
sastavljaju u cilju dobijanja eljenih podataka iz RBP
Vano:
Tabelama koje nastaju kao meurezultati davati nazive koji
govore o njihovom znaenju
Zapisivanje strukture meurezultata (koje atribute sadri
njegova ema relacije)
Sloeni upiti
Teko je napisati reenje u formi jednog izraza
Postupno reavanje problema
13.10.2011 Relaciona algebra 63
Postupak sekvence
operacija
Svaki sloeni upit predstaviti kao sekvencu jednostavnijih
izraza nad polaznim relacijama i meurezultatima (relacije
koje nastaju)
Primer 1:
Treba sastaviti upit koji daje imena svih lanova koji dre ili
su pozajmljivali bar jednu knjigu
Na poetku: uoiti u kojim se sve relacijama nalaze podaci
potrebni za reenje
13.10.2011 Relaciona algebra 64
clan , sa iframa i imenima svih lanova
drzi , sa iframa lanova koji dre knjige kod sebe
pozajmica , sa iframa lanova koji su pozajmljivali knjige
Pre zapoinjanja postupnog reavanja, stvoriti optu
predstavu o tome ta sve treba da se uradi
Za poetak: postupak reavanja problema formulisati
reima
13.10.2011 Relaciona algebra 65
Projekcijom drzi po SIFC dobija se relacija sa iframa
lanova koji dre knjige
Projekcijom pozajmica po SIFC dobijamo relaciju sa
iframa lanova koji su pozajmljivali knjige
Unijom prethodne dve relacije dobijamo relaciju sa iframa
lanova koji dre ili su pozajmljivali knjige
Prirodnim spajanjem (po SIFC) prethodne relacije sa clan
dobijamo relaciju koja sadri samo podatke o lanovima koji
dre ili su pozajmljivali knjige
Projekcijom prethodne relacije po IME dobijamo imena
lanova koji dre ili su pozajmljivali knjige
13.10.2011 Relaciona algebra 66
Formira se sledea sekvenca operacija:
t
SIFC
(drzi) drz(SIFC) oni koji dre
t
SIFC
(pozajmica) poz(SIFC) oni koji su pozajmljivali
drz poz drzpoz(SIFC) oni koji dre ili su
pozajmljivali
clan >
*
< drzpoz svedrzpoz(SIFC,IME) sve o onima
koji dre ili su pozajmljivali
t
IME
(svedrzpoz) resenje(IME) imena onih koji dre ili
su pozajmljivali
Sloe izraz bi bio:
t
IME
(clan >
*
< (t
SIFC
(drzi) t
SIFC
(pozajmica) ))

13.10.2011 Relaciona algebra 67
Primer 2:
Treba sastaviti upit koji daje imena autora koji su napisali
bar jedan naslov iz oblasti ija je ifra PJ
Podaci potrebni za ovaj upit nalaze se u tabelama: autor,
je_autor i naslov
Reenje u sledeim koracima:
13.10.2011 Relaciona algebra 68
o
SIFO=PJ
(naslov) t1(SIFN,NAZIV,SIFO) naslovi
iz oblasti PJ
t
SIFN
(t1) t2(SIFN) ifre tih naslova
je_autor >
*
< t2 t3(SIFA,SIFN,KOJI) autorstva
tih naslova
t
SIFA
(t3) t4(SIFA) ifre tih autora
autor >
*
< t4 t5(SIFA,IME) sve o tim autorima
t
IME
(t5) resenje(IME) imena tih autora

13.10.2011 Relaciona algebra 69
Primer 3:
Treba sastaviti upit koji daje imena lanova koji su
proitali sve naslove iz oblasti ifre PJ i ni jedan iz
oblasti BP
Napomena: za lanove koji dre knjige smatra se da
su ih proitali
Podaci potrebni za ovaj upit nalaze se u tabelama:
drzi i pozajmica ifre lanova i ifre knjiga koje su
proitali
knjiga: veze knjiga naslov
naslov: veza naslov - oblast
Reenje je u sledeim koracima:
13.10.2011 Relaciona algebra 70
t
SIFC,SIFK
(drzi) t
SIFC,SIFK
(pozajmica)
t1(SIFC,SIFK) koji lanovi su proitali koje knjige
t
SIFC,SIFK
(knjiga >
*
< t1) t2(SIFC,SIFN) koji
lanovi su procitali koje naslove
t
SIFN
(o
SIFO=PJ
(naslov)) t3(SIFN) svi naslovi
oblasti PJ
t2/t3 t4(SIFC) svi lanovi koji su proitali sve
naslove oblasti PJ
t
SIFN
(o
SIFO=BP
(naslov)) t5(SIFN) svi naslovi
oblasti BP
t
SIFK
(knjiga >
*
< t5) t6(SIFK) sve knjige iz
oblasti BP
13.10.2011 Relaciona algebra 71
t1 >
*
< t6 t2(SIFC,SIFK) koji lanovi su itali
koje knjige iz oblasti BP
t4 - t
SIFC,SIFK
(t7) t8(SIFC) lanovi koji su itali
sve knjige oblasti PJ i ni jednu oblasti BP
t
IME
(clan >
*
< t8) resenje(SIFK) imena lanova
koji su itali sve knjige oblasti PJ i ni jednu
oblasti BP

13.10.2011 Relaciona algebra 72
Postupak stabla upita
Zasniva se na konstruisanju stabla izraunavanja vrednosti
relacionog izraza
Elementarni izrazi su nad izvornim relacijama (listovi stabla),
a traeno reenje koren stabla
Primer 1:
Sastaviti upit koji daje ifre naslova koje su lanovi
rezervisali, a u biblioteci ima slobodnih knjiga sa njima
Neophodni podaci su u : rezervacija, knjiga i drzi
13.10.2011 Relaciona algebra 73
13.10.2011 Relaciona algebra 74
rezervacija
(SIFN,SIFC,DATUM)
knjiga
(SIFK,SIFN)
drzi
(SIFC,SIFK)
t1(SIFN)
t2(SIFK)
t3(SIFK)
t4(SIFK)
knjiga
(SIFK,SIFN)
t5(SIFK,SIFN)
t6(SIFN)
resenje(SIFN)
t
SIFN

t
SIFK
t
SIFK

>
*
<
t
SIFN


Rezervisani i slobodni naslovi
Rezervisani
naslovi
Sve knjige
Uzete
knjige
Slobodne
knjige
Slobodne
knjige-naslovi
Slobodni naslovi