32
Relacijska algebra Relacijska algebra Krunoslav Štefanek Krunoslav Štefanek Ivona Zeljko Ivona Zeljko Maja Libl Maja Libl Martina Tolj Martina Tolj

Relacijska Algebra - Baze Podataka

Embed Size (px)

DESCRIPTION

baze podataka

Citation preview

Page 1: Relacijska Algebra - Baze Podataka

Relacijska algebraRelacijska algebra

Krunoslav ŠtefanekKrunoslav ŠtefanekIvona ZeljkoIvona Zeljko

Maja LiblMaja LiblMartina ToljMartina Tolj

Page 2: Relacijska Algebra - Baze Podataka

Relacijski modelRelacijski model

• Edgar F. Codd izmislio u teoriji Edgar F. Codd izmislio u teoriji relacijski model za upravljanje bazom relacijski model za upravljanje bazom podataka (IBM, 70-tih)podataka (IBM, 70-tih)

• prve realizacije na računalu- suviše prve realizacije na računalu- suviše sporespore

i neefikasnei neefikasne• danas većina DBMS-ova koristi danas većina DBMS-ova koristi

relacijski modelrelacijski model• baza podataka se sastoji od skupabaza podataka se sastoji od skupa pravokutnih pravokutnih tablica ili tablica ili relacijarelacija

Page 3: Relacijska Algebra - Baze Podataka

Relacijski podjezici baze Relacijski podjezici baze podatakapodataka

• podjezik= jezik za pretraživanje i podjezik= jezik za pretraživanje i ažuriranje BP, bez komponenti za njihovo ažuriranje BP, bez komponenti za njihovo izvođenje na PC-uizvođenje na PC-u

• ugrađen u prog.jezik ili kao samostalni ugrađen u prog.jezik ili kao samostalni jezik BP (“upitni jezik”)jezik BP (“upitni jezik”)

• svi potječu od 2 podjezika:svi potječu od 2 podjezika:

-relacijska algebra-relacijska algebra

-relacijski račun (neproceduralan, -relacijski račun (neproceduralan, definira se trazeni rezultat, a sistem bira definira se trazeni rezultat, a sistem bira put do njega)put do njega)

Page 4: Relacijska Algebra - Baze Podataka

Relacijska algebraRelacijska algebra

• proceduralan i sastoji se od skupa proceduralan i sastoji se od skupa operatora kojima su definirane operatora kojima su definirane operacije za rad na relacijama(Codd, operacije za rad na relacijama(Codd, Yang, Date):Yang, Date):

-tradicionalne(nad skupovima) : unija, -tradicionalne(nad skupovima) : unija, presjek, razlika, Kartezijev produktpresjek, razlika, Kartezijev produkt -posebne: selekcija, projekcija, -posebne: selekcija, projekcija, pridruživanje, dijeljenjepridruživanje, dijeljenje

• Spoj- operacija nad n-torkama kao dio Spoj- operacija nad n-torkama kao dio vise razlicitih operacijavise razlicitih operacija

Page 5: Relacijska Algebra - Baze Podataka

Unijska kompatibilnostUnijska kompatibilnost

• U, ∩, - su bin.operacije koje se mogu U, ∩, - su bin.operacije koje se mogu izvoditi samo na međusobno izvoditi samo na međusobno usporedivim relacijama – unijska usporedivim relacijama – unijska kompatibilnostkompatibilnost

• Codd(prema domenama):Codd(prema domenama):• jednostavne -su unijski kompatibilnejednostavne -su unijski kompatibilne• slozene- ako imaju isti stupanj, i-ta slozene- ako imaju isti stupanj, i-ta

jednostavna domena je u.k. sa i-tom jednostavna domena je u.k. sa i-tom jednostavnom domenom druge složenejednostavnom domenom druge složene

Page 6: Relacijska Algebra - Baze Podataka

Unijska kompatibilnostUnijska kompatibilnost

• relacije (podskupovi slozenih relacije (podskupovi slozenih domena, redoslijed stupaca nije domena, redoslijed stupaca nije vazan)- isti stupanj, ako izmedu 2 vazan)- isti stupanj, ako izmedu 2 skupa jednostavnih domena postoji f-skupa jednostavnih domena postoji f-ja 1:1 kojom se domena preslika u ja 1:1 kojom se domena preslika u drugudrugu

• no npr., KUĆNI BROJ- no npr., KUĆNI BROJ- GOD.ROĐENJA nisu u.k. ( iako iste GOD.ROĐENJA nisu u.k. ( iako iste domene), zatodomene), zato

Page 7: Relacijska Algebra - Baze Podataka

Unijska kompatibilnostUnijska kompatibilnost

• atributi su u.k. ako su zadani na istoj atributi su u.k. ako su zadani na istoj domenidomeni

• relacijske sheme: ako imaju isti relacijske sheme: ako imaju isti stupanj,stupanj,

i postoji preslikavanje 1:1 između i postoji preslikavanje 1:1 između 2 2 skupa atributa od kojih se sheme skupa atributa od kojih se sheme

sastojesastoje• relacije su medijski kompatibilne ako relacije su medijski kompatibilne ako

su zadane na unijski kompatibilnim su zadane na unijski kompatibilnim rel.shemamarel.shemama

Page 8: Relacijska Algebra - Baze Podataka

Unija (Unija (rUsrUs))

• Operacija dviju unijski Operacija dviju unijski kompatibilnih relacija kompatibilnih relacija r(R)r(R) i i s(S)s(S)

• Rezultat - skup n-torki sadržanih Rezultat - skup n-torki sadržanih u relaciji u relaciji r,r, relaciji relaciji s s ili u obadvojeili u obadvoje

strttsr :

Page 9: Relacijska Algebra - Baze Podataka

• Problemi:Problemi:

a)a) Vrijedi R=S i redoslijed atributa je Vrijedi R=S i redoslijed atributa je usklađenusklađen

r(A B C) s(A B C) (rUs)(A B C)r(A B C) s(A B C) (rUs)(A B C)

g h 1 g h 1 g h 1g h 1 g h 1 g h 1

k l 2 g l 4 k l 2k l 2 g l 4 k l 2

k h 3 k h 3k h 3 k h 3

g l 4g l 4

Page 10: Relacijska Algebra - Baze Podataka

b) b) Vrijedi R=S, ali redoslijed atributa Vrijedi R=S, ali redoslijed atributa nije usklađennije usklađen

r (A B C) s (C A B)r (A B C) s (C A B)

g h 1 1 g hg h 1 1 g h

k l 2 4 g lk l 2 4 g l

k h 3k h 3

s (A B C)s (A B C)

g h 1g h 1

g l 4g l 4

Page 11: Relacijska Algebra - Baze Podataka

Svojstva unijeSvojstva unije

1.1. Komutativnost – operandi mogu Komutativnost – operandi mogu zamijeniti mjesta.zamijeniti mjesta.

2.2. Asocijativnost : Neka su relacije Asocijativnost : Neka su relacije r,s r,s ii t t međusobno unijski kompatibilne. međusobno unijski kompatibilne. Redoslijed kojim ćemo izvesti operacije Redoslijed kojim ćemo izvesti operacije unije, neće utjecati na rezultat. unije, neće utjecati na rezultat.

rssr

)()( tsrtsr

),,( tsrtsr

Page 12: Relacijska Algebra - Baze Podataka

Razlika r-sRazlika r-s

• Operandi međusobno unijski Operandi međusobno unijski kompatibilne relacijekompatibilne relacije

• Rezultat – relacija zadana na Rezultat – relacija zadana na relacijskoj shemi R, odnosno relacijskoj shemi R, odnosno relacijskoj shemi prvog operanda i relacijskoj shemi prvog operanda i obuhvaća sve n-torke sadržane u obuhvaća sve n-torke sadržane u relaciji relaciji rr, koje istovremeno nisu , koje istovremeno nisu sadržane u relaciji sadržane u relaciji ss

Page 13: Relacijska Algebra - Baze Podataka

• Prije izvođenja operacije razlike moraju Prije izvođenja operacije razlike moraju se uskladiti redoslijedi i nazivi unijski se uskladiti redoslijedi i nazivi unijski kompatibilnih atributakompatibilnih atributa

• Binarna operacijaBinarna operacija• Nije komutativna ni asocijativna operacijaNije komutativna ni asocijativna operacija• Vrijedi:Vrijedi:

)()( tsrtsr

Page 14: Relacijska Algebra - Baze Podataka

Kartezijev produkt Kartezijev produkt rrxxss

• Rezultat – skup n-torki koje su nastale Rezultat – skup n-torki koje su nastale kao rezultat spajanja svake pojedine n-kao rezultat spajanja svake pojedine n-torke sadržane u relaciji torke sadržane u relaciji rr sa svakiom sa svakiom pojedinom n-torkom relacije pojedinom n-torkom relacije ss

strtttsr srsr :)(

Page 15: Relacijska Algebra - Baze Podataka

• Kao skup n-torki, može, ali ne mora Kao skup n-torki, može, ali ne mora biti relacijabiti relacija

• Ako je presjek skupa atributa Ako je presjek skupa atributa relacijskih shema R i S prazan skup, relacijskih shema R i S prazan skup, Kartezijev produkt je relacijaKartezijev produkt je relacija

• Relacijska shema na kojoj je ta Relacijska shema na kojoj je ta relacija zadana je unije skupova relacija zadana je unije skupova atributa shema R i Satributa shema R i S

Page 16: Relacijska Algebra - Baze Podataka

PrimjerPrimjer

• Neka su r(R) i s(S) relacije na Neka su r(R) i s(S) relacije na relacijskim shemama R i S.relacijskim shemama R i S.

a)a) Neka vrijedi R∩S= Kartezijev Neka vrijedi R∩S= Kartezijev produkt r produkt r xx s je relacija. s je relacija.

r( ) s( ) (r x s) ( r( ) s( ) (r x s) ( ) )

1

2

1

f

e

d

BA

ck

hg

DC

ckf

hgf

cke

hge

ckd

hgd

DCBA

1

1

2

2

1

1

Page 17: Relacijska Algebra - Baze Podataka

b)b) Neka vrijedi . Kartezijev produkt Neka vrijedi . Kartezijev produkt rxs nije relacija.rxs nije relacija.

r ( ) s ( ) (r x s) ( r ( ) s ( ) (r x s) ( ) )

SR

1

2

1

f

e

d

BA

h

g

DB

2

1

hf

gf

he

ge

he

gd

DBBA

21

11

22

12

22

11

Page 18: Relacijska Algebra - Baze Podataka

• Elementi Kartezijevog produkta Elementi Kartezijevog produkta relacija su n-torke, dok su elementi relacija su n-torke, dok su elementi Kartezijsvog produkta skupova Kartezijsvog produkta skupova uređene n-torkeuređene n-torke

• Kartezijev produkt relacija je Kartezijev produkt relacija je komutativna i asocijativna relacijakomutativna i asocijativna relacija

Page 19: Relacijska Algebra - Baze Podataka

ProjekcijaProjekcija• Je unarna operacija kojom se iz relacije izdvajaju pojedini stupci po kojima Je unarna operacija kojom se iz relacije izdvajaju pojedini stupci po kojima

se obavlja projiciranjese obavlja projiciranje• Projekcija relacije R nova je relacija T koja se sastoji od atributa relacije R Projekcija relacije R nova je relacija T koja se sastoji od atributa relacije R

po kojima je obavljena operacija projekcije i u kojoj su uklonjene jednake po kojima je obavljena operacija projekcije i u kojoj su uklonjene jednake n-torken-torke

ΠΠAi,Aj,…,Am(R) Ai,Aj,…,Am(R) ili PROJEKCIJA(R,Aili PROJEKCIJA(R,Aii,A,Ajj,…,A,…,Amm))

• Ako je X podskup atributa relacije R, projekcija relacije R po X se dobiva Ako je X podskup atributa relacije R, projekcija relacije R po X se dobiva uklanjanjem atributa R – X i uklanjanjem višestrukih n-torkiuklanjanjem atributa R – X i uklanjanjem višestrukih n-torki

Page 20: Relacijska Algebra - Baze Podataka

PrimjerPrimjer

ΠMJESTO(OSOBA)

MB IME MJESTO MB IME MJESTO1 Marko Osijek 1 Marko Osijek2 Boris Zagreb 2 Boris Zagreb3 Petra Rijeka 3 Petra Rijeka4 Antun Zagreb 4 Antun Split5 Mihaela Split 5 Mihaela

OSOBA ΠMB,IME(OSOBA)

Page 21: Relacijska Algebra - Baze Podataka

Selekcija (restrikcija)Selekcija (restrikcija)

• je unarna operacija kojom se iz relacije izdvaja skup n-torki je unarna operacija kojom se iz relacije izdvaja skup n-torki koje ispunjavaju zadani (jednostavan ili kompleksan) uvjetkoje ispunjavaju zadani (jednostavan ili kompleksan) uvjet

• Selekcija relacije Selekcija relacije R(AR(A11,A,A22,…,A,…,Ann) jest nova relacija T(A) jest nova relacija T(A11,A,A22,,…,A…,Ann) koja se sastoji od n-torki relacije R koje ispunjavaju ) koja se sastoji od n-torki relacije R koje ispunjavaju zadani uvjet zadani uvjet

σσuvjetuvjet(R) ili SELEKCIJA(R,uvjet)(R) ili SELEKCIJA(R,uvjet)

• Jednostavan uvjet opisuje se formom Jednostavan uvjet opisuje se formom ‹ ‹atribut› ‹operator› ‹vrijednost›atribut› ‹operator› ‹vrijednost› operator = { = , ≠ , < , > }operator = { = , ≠ , < , > }• U kompleksnim uvjetima koriste se i logički operatori U kompleksnim uvjetima koriste se i logički operatori

{I,ILI,NE} kojima se povezuju jednostavni uvjeti{I,ILI,NE} kojima se povezuju jednostavni uvjeti

Page 22: Relacijska Algebra - Baze Podataka

PrimjerPrimjer

MB IME MJESTO MB IME MJESTO MB IME MJESTO1 Marko Osijek 2 Boris Zagreb 4 Antun Zagreb2 Boris Zagreb 4 Antun Zagreb3 Petra Rijeka4 Antun Zagreb5 Mihaela Split

σMJESTO=Zagreb(OSOBA)OSOBA σMJESTO=Zagreb AND MB>1(OSOBA)

Page 23: Relacijska Algebra - Baze Podataka

PresjekPresjek

• Presjek dviju unijski kompatibilnih relacija Presjek dviju unijski kompatibilnih relacija R(AR(A11,A,A22,,

…,A…,Ann) i (A) i (A

11,A,A22,…,A,…,Ann) je nova relacija T(A) je nova relacija T(A

11,A,A22,,

…,A…,Ann) koja obuhvaća sve n-torke što se istovremeno ) koja obuhvaća sve n-torke što se istovremeno

nalaze u relaciji R i u relaciji Snalaze u relaciji R i u relaciji S

RS ili PRESJEK(R,S)RS ili PRESJEK(R,S)

• Može se izvesti pomoću osnovnih operacija:Može se izvesti pomoću osnovnih operacija:

PRESJEK(R,S)=R-(R\S) ili PRESJEK(R,S)=S-(S\R)PRESJEK(R,S)=R-(R\S) ili PRESJEK(R,S)=S-(S\R)

Page 24: Relacijska Algebra - Baze Podataka

PrimjerPrimjer

MB IME MB IME MB IME1 Marko 2 Boris 2 Boris2 Boris 4 Antun 4 Antun3 Petra 7 Dario4 Antun5 Mihaela

OSOBA1 OSOBA2 OSOBA1OSOBA2

Page 25: Relacijska Algebra - Baze Podataka

Pridruživanje (join)Pridruživanje (join)

• Je složena binarna operacijaJe složena binarna operacija• Možemo ju predočiti preko tri koraka:Možemo ju predočiti preko tri koraka:

1.1. Iz dviju relacija se dobiva Kartezijev Iz dviju relacija se dobiva Kartezijev produkt relacijaprodukt relacija

2.2. Iz Kartezijevog produkta se izdvaja Iz Kartezijevog produkta se izdvaja podskup n-torki podskup n-torki

3.3. ““Prirodno pridruživanje” koje se izvodi Prirodno pridruživanje” koje se izvodi samo u nekim slučajevima – iz tabele samo u nekim slučajevima – iz tabele dobivene u 2. koraku se izdvajaju dobivene u 2. koraku se izdvajaju određeni stupciodređeni stupci

Page 26: Relacijska Algebra - Baze Podataka

PrimjerPrimjer• Neka su r(R) i s(S) relacije i neka vrijedi BNeka su r(R) i s(S) relacije i neka vrijedi BєєR i DR i DєєS. Neka S. Neka

je uvjet izdvajanja B<D. Operacija pridruživanja relacija r i je uvjet izdvajanja B<D. Operacija pridruživanja relacija r i s imala bi slijedeći tok:s imala bi slijedeći tok:

r(A B) s(C D) (rxs)=r’ (A B C D) r(A B) s(C D) (rxs)=r’ (A B C D) σσB<DB<D(r’)=r’’ ( A B C D)(r’)=r’’ ( A B C D)

d 1 g 3 d 1 g 3 d 1 g 3d 1 g 3 d 1 g 3 d 1 g 3

e 2 k 1 d 1 k 1 e 2 g 3e 2 k 1 d 1 k 1 e 2 g 3 f 1 e 2 g 3 f 1 g 3 f 1 e 2 g 3 f 1 g 3 e 2 k 1e 2 k 1 f 1 g 3f 1 g 3 f 1 k 1f 1 k 1

Page 27: Relacijska Algebra - Baze Podataka

Theta pridruživanjeTheta pridruživanje

• Najopćenitiji oblik operacije pridruživanjaNajopćenitiji oblik operacije pridruživanja• Rezultat ove operacije je skup n-torki koji Rezultat ove operacije je skup n-torki koji

zadovoljava sljedeće uvjete:zadovoljava sljedeće uvjete:

a)a) Podskup je Kartezijevog produkta relacija r Podskup je Kartezijevog produkta relacija r i si s

b)b) Svaki element tog podskupa zadovoljava Svaki element tog podskupa zadovoljava kriterij izdvajanja kriterij izdvajanja [[AAiiΘΘBBjj]]

• Ukoliko je Kartezijev prodkut relacija Ukoliko je Kartezijev prodkut relacija relacija, onda će i rezultat operacije relacija, onda će i rezultat operacije ΘΘ--pridruživanja biti relacija.pridruživanja biti relacija.

Page 28: Relacijska Algebra - Baze Podataka

Prirodno pridruživanje (natural Prirodno pridruživanje (natural join)join)

• Prirodnim pridruživanjem dviju Prirodnim pridruživanjem dviju relacija spajaju se međusobno n-relacija spajaju se međusobno n-torke tih relacija na osnovi torke tih relacija na osnovi vrijednosti atributa koji se nalaze u vrijednosti atributa koji se nalaze u shemi jedne i druge relacije. shemi jedne i druge relacije.

• Neka su r(R) i s(S) relacije i neka je Neka su r(R) i s(S) relacije i neka je RS=T. Prirodno pridruživanje RS=T. Prirodno pridruživanje označavamo s roznačavamo s r||XX||s. Rezultat te s. Rezultat te operacije bit će relacija q(T)operacije bit će relacija q(T)

Page 29: Relacijska Algebra - Baze Podataka

Primjer (Maier, 1983.)Primjer (Maier, 1983.)

Aparat OvlaštenjeAparat Ovlaštenje

Aparat Aparat ||XX|| Ovlaštenje Ovlaštenje

LINIJA AVION

860 727

860 747

876 727

876 747

920 707

PILOT AVION

JOVANOVIĆ 707

JOVANOVIĆ 727

KOVAČEVIĆ 747

POPOVIĆ 727

POPOVIĆ 747

LINIJA AVION PILOT

860 727 JOVANOVIĆ

860 727 POPOVIĆ

860 747 KOVAČEVIĆ

860 747 POPOVIĆ

876 727 JOVANOVIĆ

876 727 POPOVIĆ

876 747 KOVAČEVIĆ

876 747 POPOVIĆ

920 707 JOVANOVIĆ

Page 30: Relacijska Algebra - Baze Podataka

DijeljenjeDijeljenje

• Je binarna operacijaJe binarna operacija• Neka su r(R) i s(S) relacije i neka Neka su r(R) i s(S) relacije i neka

vrijedi R={X,Y} i Y je unijski vrijedi R={X,Y} i Y je unijski kombatibilan s S. Dijeljenje relacije r kombatibilan s S. Dijeljenje relacije r s relacijom s označavamo s r/s. s relacijom s označavamo s r/s. Rezultat ove operacije je relacija Rezultat ove operacije je relacija q(X)q(X)

Page 31: Relacijska Algebra - Baze Podataka

Grafički prikaz operacija Grafički prikaz operacija relacijske algebrerelacijske algebre

• Grafički prikazi napravljeni su prema Grafički prikazi napravljeni su prema Dateu (1986.)Dateu (1986.)

• U njima se umjesto krugova kao U njima se umjesto krugova kao simboli relacija koriste pravokutnici simboli relacija koriste pravokutnici nad kojima se izvodi operacija.nad kojima se izvodi operacija.

Page 32: Relacijska Algebra - Baze Podataka

LiteraturaLiteratura

• Tkalac, Slavko; Relacijski model Tkalac, Slavko; Relacijski model podataka, Zagreb: Društvo za razvoj podataka, Zagreb: Društvo za razvoj informacijske pismenosti (DRIP), informacijske pismenosti (DRIP), 1993 1993