relacijska algebra - baze podataka

Post on 02-Feb-2016

66 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

baze podataka

TRANSCRIPT

Relacijska algebraRelacijska algebra

Krunoslav ŠtefanekKrunoslav ŠtefanekIvona ZeljkoIvona Zeljko

Maja LiblMaja LiblMartina ToljMartina Tolj

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

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)

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

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

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

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

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 :

• 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

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

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

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

• 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

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 :)(

• 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

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

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

• 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

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

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)

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

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)

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)

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

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

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

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.

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)

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Ć

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)

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.

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

top related