74
21.11.2006 Relaciona algebra 1 Relaciona algebra Baze podataka Baze podataka Lekcija 8 Lekcija 8

Baze podataka

  • Upload
    tegan

  • View
    59

  • Download
    4

Embed Size (px)

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 1

Relaciona algebra

Baze podatakaBaze podataka

Lekcija 8Lekcija 8

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 25

• Relacije r, s:

r s:

A B

1

2

1

A B

2

3

rs

A B

1

2

1

3

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 29

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 37

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 43

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 60

Deljenje (division)

21.11.2006 Relaciona algebra 61

A

B

1

2

A B

12311134612

r

s

Relacije r, s:

r/s:

Deljenje (division)

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