View
61
Download
4
Category
Preview:
DESCRIPTION
Lekcija 8. Baze podataka. Relaciona algebra. Relaciona algebra. Relaciona algebra pripada kategoriji formalnih upitnih jezika proceduralnog karaktera Čini je skup operatora za rad sa relacijama, a rezultati operacija su takođe relacije - PowerPoint PPT Presentation
Citation preview
21.11.2006 Relaciona algebra 2
• Relaciona algebra pripada kategoriji formalnih upitnih jezika proceduralnog karaktera
• Čini je skup operatora za rad sa relacijama, a rezultati operacija su takođe relacije
• Relaciona algebra je osnova za upitne jezike koje koriste ljudi– Svaki od algebarskih izraza je jedan upit ili pretraživanje
• Upitni jezik – jezik kojim korisnici zahtevaju informacije iz BP
Relaciona algebra
21.11.2006 Relaciona algebra 3
• Č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 ažuriranje)– Posebne (pogodne za izveštavanje)
Relaciona algebra- operacije -
21.11.2006 Relaciona algebra 4
simbol naziv složenost operanada
restrikcija elementarna unarna
projekcija elementarna unarna
unija elementarna binarna
- razlika elementarna binarna
presek izvedena binarna
D. proizvod elementarna binarna
>< spajanje izvedena binarna
deljenje izvedena binarna
Relaciona algebra- operacije -
21.11.2006 Relaciona algebra 5
Restrikcija ()(selekcija, ograničenje)
• Definicija: iz polazne relacije po zadatom kriterijumu izdvaja podskup n-torki – Izbor n-torki koje zadovoljavuju određeni uslov
• Kriterijum je neki logički izraz koji je izračunljiv nad svakom n-torkom
• Dobijena relacija ima istu strukturu kao i polazna
21.11.2006 Relaciona algebra 6
• Notacija - P(r)
• P – uslov za selekciju• P se sastoji iz članova koji su povezani sa:
(and), (or), (not)• Svaki član je u sledećoj formi:
<atribut> op <atribut> ili <konstanta>
gde je op jedan od: =, , >, , <, • Primer selekcije:
BrInd=‘125/2004’ (student)
Restrikcija ()(selekcija, ograničenje)
21.11.2006 Relaciona algebra 7
• Relacija r A B C D
1
5
12
23
7
7
3
10
A=B ^ D > 5 (r)A B C D
1
23
7
10
Restrikcija ()(selekcija, ograničenje)
21.11.2006 Relaciona algebra 8
• Primer: Iz relacije naslov izdvojiti samo one naslove čija je šifra oblasti (SIFO) jednaka PJ
SIFO=‘PJ’ (naslov) t(SIFN,NAZIV,SIFO)
• Dobija se relacija t:
t (SIFN NAZIVSIFO)
PP00 PASCAL programiranje PJ PJC0 Programski jezik C PJ
Restrikcija ()(selekcija, ograničenje)
21.11.2006 Relaciona algebra 9
• Primer: Posmatra se relacija je_autor. Da bi dobili podatke za naslove koji imaju više od jednog autora primeniti: KOJI>1 (je_autor) t(SIFA,SIFN,KOJI)
t (SIFA SIFN KOJI) JN0 RBP0 2 DM0 PP00 2 IT0 PP00 3 ZP0 PJC0 2
Restrikcija ()(selekcija, ograničenje)
21.11.2006 Relaciona algebra 10
• Operacija restrikcije kao rezultat može da da prazan skup n-torki.
• Primer: Izdvojiti sve autore koji imaju više od tri naslova KOJI3 (je_autor) t(SIFA,SIFN,KOJI)=
• Zaključak za restrikciju:– Struktura relacije se ne menja, šema rezultata odgovara
šemi operanda (polazne relacije)– Za broj n-torki u relaciji važi:
N(t) N(r)– Restrikcija, selekcija selekcija n-torki
Restrikcija ()(selekcija, ograničenje)
21.11.2006 Relaciona algebra 11
• Primer: Nad relacijom student(BrInd#,Ime,Adresa,Telefon,,...)– Napraviti restrikciju po atributu Adresa– Izdvojiti samo one studente koji su iz Subotice
ADRESA=‘Subotica’ (student)
• Prethodnom restrikcijom nastaje iz relacije student nova relacija, sa novim imenom
• Upiti kojima se vrši selekcija moraju uvek biti logični i izvodljivi
Restrikcija ()(selekcija, ograničenje)
21.11.2006 Relaciona algebra 12
• Nad relacijom kredit(BR_KRED#, IME_EXP, IME_KL, IZNOS)– Želimo da vidimo sve transakcije kredita u ekspozituri IEX IME_EXP=IEX (kredit) kredit_IEX(...)
• Dozvoljeno je koristiti sledeće operatore:=, ≠, <, >, ≤, ≥, , npr: (IME_EXP=IEX) (IZNOS>1000) (kredit)
• Kao kriterijum se može uvesti i poređenje između dva atributa
Restrikcija ()(selekcija, ograničenje)
21.11.2006 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
21.11.2006 Relaciona algebra 14
Projekcija ()
• 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
21.11.2006 Relaciona algebra 15
• Primenom operacije projekcije moguće je da više n-torki polazne relacije daje iste vrednosti– Pošto rezultat operacije mora biti relacija, uzima se
samo jedna rezultantna relacija• Primer: Iz relacije naslov želimo da dobijemo pregled svih
naziva i šifara oblasti: NAZIV,SIFO(naslov) t(NAZIV,SIFO)
• Kao rezultat dobija se relacijat ( NAZIV SIFO)
Relacione baze podataka BPRačunarske komunikacije RMPASCAL programiranje PJProgramski jezik C PJ
Projekcija ()
21.11.2006 Relaciona algebra 16
• Relacija r: A B C
10
20
30
40
1
1
1
2
A C
1
1
1
2
=
A C
1
1
2
A,C (r)
Projekcija ()
21.11.2006 Relaciona algebra 17
• Ilustracija slučaja kada više n-torki polazne relacije daje jednu n-torku u novoj:SIFO(naslov) t(SIFO)
• Kao rezultat dobija se relacijat ( SIFO)
BPRMPJ
• Vrednost PJ se pojavljuje jednom dok je u polaznoj relaciji naslov ta vrednost prisutna dva puta
Projekcija ()
21.11.2006 Relaciona algebra 18
• Jedna od namena operacije projekcije je promena redosleda atributa:NAZIV,SIFN,SIFO(naslov)t(NAZIV,SIFN,SIFO)
• Kao rezultat dobija se relacijat ( NAZIV SIFN SIFO)
Relacione baze podataka RBP0 BPRačunarske komunikacije RK00 RMPASCAL programiranje PP00 PJProgramski jezik C PJC0 PJ
Projekcija ()
21.11.2006 Relaciona algebra 19
• Operacije relacione algebre se mogu kombinovati• Primer: Složena operacija
NAZIV(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
• Zaključak zа projekciju:– Šema relacije se menja i određuje je zadati skup atributa– Za broj n-torki u relaciji važi: N(t) N(r)– Projekcija selekcija po atributima
Projekcija ()
21.11.2006 Relaciona algebra 20
• Primer: Nad relacijom roba(SIFRA#,NAZIV,PROIZVOĐAČ,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#, zadržava se broj n-torki– Projekcija po IME, smanjuje se broj n-torki (moguće su
greške, jer se brišu svi ostali studenti)
Projekcija ()
21.11.2006 Relaciona algebra 21
• 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 IME_EXP, IME_KL (kredit)
kredit_lista(IME_EXP, IME_KL)
Projekcija ()
21.11.2006 Relaciona algebra 22
• Rezultat primene je podskup kolona relacije, uz uklanjanje duplikata
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
Projekcija ()
21.11.2006 Relaciona algebra 23
Unija ()
• Definicija: iz dve polazne relacije formira novu koja sadrži sve n-torke iz obe relacije
• Ova operacija nije moguća između bilo koje dve relacije, tj. mora biti zadovoljeno:– Šeme relacija moraju imati isti broj atributa– Atributi šema relacija redom odgovaraju po
značenju i tipu (ne mora po nazivu)• Navedeni uslovi se nazivaju:
unijska kompatibilnost
21.11.2006 Relaciona algebra 24
• 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 postiže primenom operacije unije:clan autor osoba(SIFx,IME)
Unija ()
21.11.2006 Relaciona algebra 26
• 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:SIFK(drzi) t1(SIFK) SIFK(pozajmica) t2(SIFK)
• Zatim se primeni operacija unije:t1 t2 knjiga_u_prometu(SIFK)
• Zaključak zа uniju:– Šeme relacija se prethodno moraju uskladiti– max(N(r),N(s)) N(t) N(r)+N(s)
Unija ()
21.11.2006 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 ()
21.11.2006 Relaciona algebra 28
• Primer: Nad relacijama kredit(BR_KRED#, IME_EXP, IME_KL, IZNOS)racun(IME_EXP, BR_RAC#, IME_KL#, STANJE)Naći sve klijente koji u ekspozituri IEX imaju ili račun ili kredit– Naći sve klijente koji imaju kredit u IEX
IME_KL (IME_EXP=IEX(kredit)) t1
– Naći sve klijente koji imaju racun u IEX IME_KL (IME_EXP=IEX(racun)) t2
– Rezultat je: t1 t2
Unija ()
21.11.2006 Relaciona algebra 30
Razlika (-)
• Definicija: iz dve polazne relacije formira novu koja sadrži sve n-torke prve relacije koje se ne nalaze u drugoj
• Ova operacija je moguća samo između unijski kompatibilnih relacija.
21.11.2006 Relaciona algebra 31
• 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:SIFC,SIFK(drzi) t1(SIFC,SIFK) SIFC,SIFK(pozajmica) t2(SIFC,SIFK)
• Zatim se primeni operacija razlike:t1 - t2 cita_1(SIFC,SIFK)
Razlika (-)
21.11.2006 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 (-)
21.11.2006 Relaciona algebra 33
• Primer: Ako želimo uvid u šifre članova koji trenutno ne drže ni jednu knjigu kod sebe, mora se izvršiti sledeća sekvenca operacija: SIFC(clan) t1(SIFC)SIFC(drzi) t2(SIFC)t1 - t2 ne_drzi(SIFC)
• Zaključak za operaciju razlika:– Šeme relacija se prethodno moraju uskladiti– Broj n-torki u rezultatu 0 N(t) N(r)
Razlika (-)
21.11.2006 Relaciona algebra 34
t1 ( SIFC )
JJ0
JJ1
PP0
MM0
t2 ( SIFC )
JJ0
PP0
JJ0
t1-t2 = ne_drzi ( SIFK )
JJ1
MM0
Razlika (-)
21.11.2006 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 47946B-A
Razlika (-)
21.11.2006 Relaciona algebra 36
• Primer: Nad relacijama kredit(BR_KRED#, IME_EXP, IME_KL, IZNOS)racun(IME_EXP, BR_RAC#, IME_KL#, STANJE)Naći sve klijente koji u ekspozituri IEX imaju račun ali još uvek nemaju kredit– Naći sve klijente koji imaju racun u IEX
IME_KL (IME_EXP=IEX(racun)) t1
– Naći sve klijente koji imaju kredit u IEX IME_KL (IME_EXP=IEX(kredit)) t2
– Rezultat je: t1 - t2
Razlika (-)
21.11.2006 Relaciona algebra 38
Presek ()
• Definicija: iz dve polazne relacije formira novu koja sadrži sve n-torke prve relacije koje se nalaze u drugoj relaciji
• Ova operacija je moguća samo između unijski kompatibilnih relacija.
• Presek je izvedena operacija, može se izvesti iz:
r s = r – (r-s)
21.11.2006 Relaciona algebra 39
• 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:SIFC,SIFK(drzi) t1(SIFC,SIFK) SIFC,SIFK(pozajmica) t2(SIFC,SIFK)
• Zatim se primeni operacija preseka:t1 t2 cita_opet(SIFC,SIFK)
• Zaključak за operaciju presek:– Šeme relacija se prethodno moraju uskladiti– Broj n-torki u rezultatu
0 N(t) min(N(r),N(s)
Presek ()
21.11.2006 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
21.11.2006 Relaciona algebra 41
Š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
A
B
AB
Presek ()
21.11.2006 Relaciona algebra 42
• Primer: Nad relacijama kredit(BR_KRED#, IME_EXP, IME_KL, IZNOS)racun(IME_EXP, BR_RAC#, IME_KL#, STANJE)Naći sve klijente koji u ekspozituri IEX imaju i račun i kredit– Naći sve klijente koji imaju racun u IEX
IME_KL (IME_EXP=IEX(racun)) t1
– Naći sve klijente koji imaju kredit u IEX IME_KL (IME_EXP=IEX(kredit)) t2
– Rezultat je: t1 t2
Presek ()
21.11.2006 Relaciona algebra 44
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 sadrži sve atribute polaznih relacija
• Označavanje: za puni naziv atributa se može koristiti relacija.atribut
21.11.2006 Relaciona algebra 45
Relacije r, s:
r x s:
A B
1
2
A B
11112222
C D
1010201010102010
E
aabbaabb
C D
10102010
E
aabbr
s
Dekartov proizvod ()
21.11.2006 Relaciona algebra 46
• Primer: Posmatraju se relacije naslov i oblast. Ako izvršimo operaciju Dekartovog proizvoda:
• naslov oblast t(SIFN,N.NAZIV,N.SIFO,O.SIFO,O.NAZIV)
• Dobijena relacija kao celina nema smisla, međutim pojedine n-torka imaju jasno značenje
• Zaključak zа operaciju Dekartov proizvod:– Šema rezultantne relacije sadrži sve atribute polaznih
relacija– Broj n-torki u rezultatu: N(t) = N(r)N(s)
Dekartov proizvod
21.11.2006 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 Računarske mreže RBP0 Relacione baze podataka BP PJ Programski jezici RK00 Računarske komunikacuje RK BP Baze podataka RK00 Računarske komunikacuje RK RM Računarske mreže RK00 Računarske komunikacuje RK PJ Programski jezici PP00 PASCAL Programiranje PJ BP Baze podataka PP00 PASCAL Programiranje PJ RM Računarske mreže PP00 PASCAL Programiranje PJ PJ Programski jezici PJC0 Programski jezik C PJ BP Baze podataka PJC0 Programski jezik C PJ RM Računarske mreže PJC0 Programski jezik C PJ PJ Programski jezici
U označenim n-torkama, uz svaki deo iz relacije naslov nalazi se odgovarajući deo iz relacije oblast
Dekartov proizvod
21.11.2006 Relaciona algebra 48
• Primer: Nad relacijama klijent(IME_KL, UL_BR, GRAD),licni_bankar(IME_KL, IME_SL)Naći sve klijente sa ličnim 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 N1N2
– Neke od n-torki u t su ne važeće
Dekartov proizvod
21.11.2006 Relaciona algebra 49
Zoran Savska Beograd
Milan Niška Novi Sad
Petar Kralja Milana Kruševac
Zoran Sl1
Milan Sl2
Petar Sl3
Klijent
Lični_bankar
Zoran Savska Beograd Zoran Sl1
Zoran Savska Beograd Milan Sl2
Zoran Savska Beograd Petar Sl3
Milan Niška Novi Sad Zoran Sl1
Milan Niška Novi Sad Milan Sl2
Milan Niška Novi Sad Petar Sl3
Petar Kralja Milana Kruševac Zoran Sl1
Petar Kralja Milana Kruševac Milan Sl2
Petar Kralja Milana Kruševac Petar Sl3
Klijent Lični_bankarLični_bankar
21.11.2006 Relaciona algebra 50
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
21.11.2006 Relaciona algebra 51
-spajanje
• Prethodna definicija dozvoljava proizvoljni uslov P, pod uslovom da je izračunljiv za svaku n-torku nakon Dekartovog proizvoda
• Neka su r i s relacije nad šemom R(X) i S(Y). Neka su Xi i Yk atributi za koje važi da je XiX i YiY. Pod spajanjemr > Xi Yi< spodrazumeva se spajanje kod koga operator označava bilo koji operator poređenja: (=,,,,,)
21.11.2006 Relaciona algebra 52
Ekvi-spajanje
• Prethodno spajanje ograničava formu uslova spajanja, međutim i dalje dobijeni rezultat nema praktičnu primenu.
• Specijalni slučaj gde predstavlja jednakost (=) je čest slučaj 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).
21.11.2006 Relaciona algebra 53
Ekvi-spajanje
Relacije r, s:
A B
1
2
C D
10102010
E
aabbr
s
A B C D E
122
101020
aab
A=C(r x s)
21.11.2006 Relaciona algebra 54
Prirodno spajanje
• Prethodno spajanje daje jedan suvišan atribut, zato što su vrednosti atributa po kojima se vrši spajanje uvek iste.
• Nepotrebni atribut se eliminiše dodatnom operacijom projekcije
• Navedeni slučaj 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
21.11.2006 Relaciona algebra 55
• Prirodno spajanje dve relacije po jednom atributu označava se sa:r > Xi,*,Yk < s
• U slučaju više spojnih atributar > (X1,X2,...,Xn) * (Y1,Y2,...,Yn) < s
• Specijalni slučaj označavanja:r > * < spodrazumeva prirodno spajanje po svim atributima koji imaju jednake nazive u obe r
Prirodno spajanje
21.11.2006 Relaciona algebra 56
Prirodno spajanje
Relacije r, s: A B
1
2
C D
10102010
E
aabbr
s
A B
122
r >*< s = XY-B (A=C(r x s)) D E
101020
aab
21.11.2006 Relaciona algebra 57
Š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
ALFA
BETA
GAMA
Prirodno spajanje
21.11.2006 Relaciona algebra 58
Deljenje (/)
• Najsloženija operacija relacione algebre• Operacija deljenja daje one vrednosti X u r koje u
kombinaciji sa Y “pokrivaju” skup vrednosti zadat relacijom s.
21.11.2006 Relaciona algebra 59
• Deljenje se ne može izvesti sa proizvoljnim tabelama
• Za A/B potrebno je da se svi atributi relacije B nalaze u relaciji A
• Npr: Moguće je deljenje za:a (X1,X2,...,Xn,Y1,Y2,...,Ym)b (Y1,Y2,...,Ym)
• Primer:
X
033
061
044
Y
a43
a00
X Y
017 a22
033 a43
077 a86
061 a43
044 a00
a b
c=a/b
21.11.2006 Relaciona algebra 62
Relacije r, s:
r/s:
A B
aaaaaaaa
C D
aabababb
E
11113111
D
ab
E
11
A B
aa
C
r
s
Deljenje (division)
21.11.2006 Relaciona algebra 63
Upiti relacione algebre
• Upiti – izrazi sa operacijama relacione algebre, koji se sastavljaju u cilju dobijanja željenih podataka iz RBP
• Važno:– Tabelama koje nastaju kao međurezultati davati nazive
koji govore o njihovom značenju– Zapisivanje strukture međurezultata (koje atribute sadrži
njegova šema relacije)• Složeni upiti
– Teško je napisati rešenje u formi jednog izraza– Postupno rešavanje problema
21.11.2006 Relaciona algebra 64
Postupak sekvence operacija
• Svaki složeni upit predstaviti kao sekvencu jednostavnijih izraza nad polaznim relacijama i međurezultatima (relacije koje nastaju)
• Primer 1: Treba sastaviti upit koji daje imena svih članova koji drže ili su pozajmljivali bar jednu knjigu
• Na početku: uočiti u kojim se sve relacijama nalaze podaci potrebni za rešenje
21.11.2006 Relaciona algebra 65
– clan , sa šiframa i imenima svih članova– drzi , sa šiframa članova koji drže knjige kod sebe– pozajmica , sa šiframa članova koji su pozajmljivali
knjige• Pre započinjanja postupnog rešavanja, stvoriti opštu
predstavu o tome šta sve treba da se uradi• Za početak: postupak rešavanja problema formulisati
rečima
21.11.2006 Relaciona algebra 66
– Projekcijom drzi po SIFC dobija se relacija sa šiframa članova koji drže knjige
– Projekcijom pozajmica po SIFC dobijamo relaciju sa šiframa članova koji su pozajmljivali knjige
– Unijom prethodne dve relacije dobijamo relaciju sa šiframa članova koji drže ili su pozajmljivali knjige
– Prirodnim spajanjem (po SIFC) prethodne relacije sa clan dobijamo relaciju koja sadrži samo podatke o članovima koji drže ili su pozajmljivali knjige
– Projekcijom prethodne relacije po IME dobijamo imena članova koji drže ili su pozajmljivali knjige
21.11.2006 Relaciona algebra 67
• Formira se sledeća sekvenca operacija: SIFC (drzi) drz(SIFC) – oni koji drže
SIFC (pozajmica) poz(SIFC) – oni koji su pozajmljivali
• drz poz drzpoz(SIFC) – oni koji drže ili su pozajmljivali
• clan > * < drzpoz svedrzpoz(SIFC,IME) – sve o onima koji drže ili su pozajmljivali
IME (svedrzpoz) resenje(IME) – imena onih koji drže ili su pozajmljivali
• Slože izraz bi bio: IME (clan > * < (SIFC (drzi) SIFC (pozajmica) ))
21.11.2006 Relaciona algebra 68
• 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
• Rešenje u sledećim koracima:
21.11.2006 Relaciona algebra 69
SIFO=‘PJ’ (naslov) t1(SIFN,NAZIV,SIFO) – naslovi iz oblasti ‘PJ’
SIFN (t1) t2(SIFN) – šifre tih naslova
• je_autor > * < t2 t3(SIFA,SIFN,KOJI) – autorstva tih naslova
SIFA (t3) t4(SIFA) – šifre tih autora
• autor > * < t4 t5(SIFA,IME) – sve o tim autorima
IME (t5) resenje(IME) – imena tih autora
21.11.2006 Relaciona algebra 70
• Primer 3: Treba sastaviti upit koji daje imena članova koji su pročitali sve naslove iz oblasti šifre ‘PJ’ i ni jedan iz oblasti ‘BP’
• Napomena: za članove koji drže knjige smatra se da su ih pročitali
• Podaci potrebni za ovaj upit nalaze se u tabelama: – drzi i pozajmica šifre članova i šifre knjiga koje su
pročitali– knjiga: veze knjiga – naslov– naslov: veza naslov - oblast
• Rešenje je u sledećim koracima:
21.11.2006 Relaciona algebra 71
SIFC,SIFK(drzi) SIFC,SIFK(pozajmica) t1(SIFC,SIFK) –koji članovi su pročitali koje knjige
SIFC,SIFK(knjiga > * < t1) t2(SIFC,SIFN) – koji članovi su procitali koje naslove
SIFN(SIFO=‘PJ’(naslov)) t3(SIFN) – svi naslovi oblasti ‘PJ’
• t2/t3 t4(SIFC) – svi članovi koji su pročitali sve naslove oblasti ‘PJ’
SIFN(SIFO=‘BP’(naslov)) t5(SIFN) – svi naslovi oblasti ‘BP’
SIFK(knjiga > * < t5) t6(SIFK) – sve knjige iz oblasti ‘BP’
21.11.2006 Relaciona algebra 72
• t1 > * < t6 t2(SIFC,SIFK) – koji članovi su čitali koje knjige iz oblasti ‘BP’
• t4 - SIFC,SIFK(t7) t8(SIFC) – članovi koji su čitali sve knjige oblasti ‘PJ’ i ni jednu oblasti ‘BP’
IME(clan > * < t8) resenje(SIFK) – imena članova koji su čitali sve knjige oblasti ‘PJ’ i ni jednu oblasti ‘BP’
21.11.2006 Relaciona algebra 73
Postupak stabla upita
• Zasniva se na konstruisanju stabla izračunavanja vrednosti relacionog izraza
• Elementarni izrazi su nad izvornim relacijama (listovi stabla), a traženo rešenje – 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
21.11.2006 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)
SIFN
SIFK SIFK
> * <
SIFN
Rezervisani i slobodni naslovi
Rezervisaninaslovi
Sve knjige
Uzeteknjige
Slobodneknjige
Slobodneknjige-naslovi
Slobodni naslovi
Recommended