baze podataka - university of novi sad · baze podataka vežbei. ... 1 = mbp,naziv (del...

23
Baze podataka Vežbe I

Upload: others

Post on 26-Dec-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

Baze podataka

Vežbe I

Page 2: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

Baza podataka

• Baza podataka dobro struktuirana kolekcijapodataka koja postoji relativno dugo i kojukoristi više korisnika, odnosno programa(aplikacija).

• Aspekti izučavanja baza podataka:

▫ sistemi za upravljanje bazom podataka

▫ modeli podataka

Page 3: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

...

• Model objekti-veze• SUBP-ova zasnovana na relacionom modelu,

objektno-relacioni model• Razlog rasprostranjenosti - matematička

podloga relacionog modela podataka• Standardni jezik relacionih baza

podataka• Neproceduralni jezici (upitni jezici)• Procesor upita (Query Processor)

Page 4: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

Relaciona algebra

• teoretski model upitnog jezika relacionih baza podataka

• skupovno orijentisani, visoko deklarativni, upitni jezik

• »Skup je objedinjenje nekog mnoštva elemenata u jednu celinu«

• Osnova - matematička teorija skupovaS = {x | P(x)}

Page 5: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

Skupovi

• Jednakost skupovaA=B ( x) | ((x A x B) (x B x A))

• UnijaA B = {x | x A x B }

• PresekA B = {x | x A x B }

• RazlikaA B = {x | x A x B }

• Podskupovi

Page 6: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

• Uređen par

(a,b) ={{a},{a,b} }

• Jednakost parova

(a,b) = (c,d) a=c b=d

• n-torka (a1,a2,...,an-1,an)

(a1,a2,...,an) = ((a1,a2,...,an-1), an ).

Page 7: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

Descartesov proizvod

• A B = { (a,b) | a A b B }

• A B= { (1,a), (1,b), (2,a), (2,b) }

• A B C=

{(1,a,3),(1,a,4),(1,a,5),(1,b,3),(1,b,4),(1,b,5),(2,a,3),(2,a,4),(2,a,5),(2,b,3),(2,b,4),(2,b,5) }

• r(R)= { (1,a,3), (1,b,3), (2,a,5) }

Page 8: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

Predstavljanje podataka

• Tabela predstavlja najpogodnije sredstvo za prezentovanje relacija.

• Zaglavlje tabele sadrži obeležja skupa R, a vrste R-vrednosti, odnosno torke.

• Redosled torki u relaciji je proizvoljan.

Page 9: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

Operatori i operandi

• Operatori

▫ standardni (unija, presek i razlika )

▫ specijalni

• Operandi

▫ skupovi torki, ili reprezanti skupova torki

Page 10: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

Unija, presek i razlika

, , : SAT(R) SAT(R) SAT(R)

• r(R) s(R) = { t Tuple(R) | t r t s }• r(R) s(R) = { t Tuple(R) | t r t s }• r(R) s(R) = { t Tuple(R) | t r t s }

• mogu se primeniti samo nad relacijama koje su definisane nad istim

skupom obeležja

Page 11: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

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

a1 b1 c1 a1 b2 c1

a1 b2 c1 a2 b2 c1

a2 b1 c2 a2 b2 c2

Page 12: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

Selekcija

• služi za zadavanje kriterijuma po kojem se izdvajaju (selektuju) torke iz relacije

• A B, pri čemu su A i B obeležja iz univerzalnog skupa obeležja U, a relacioni operator iz skupa R= { , , , , , },

• A c, pri čemu je A U, c dom(A) i R ili• fi(x1,...,xk) , pri čemu je fi izračunljiva,

parcijalna logička funkcija, a x1,...,xk njeni argumenti.

F (r(R)) = { t r | F(t) = T }

Page 13: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

Primer selekcije

• Upit: “Prikazati preduzeća iz Novog Sada koja imaju više od 100 zaposlenih“ se realizuje putem sledeće selekcije:

r1= (MESTO = “Novi Sad”) (BRRAD > 100) (preduzeće)

• Upit: “Prikazati privatna preduzeća iz Subotice“ se realizuje putemselekcije:

r2= (MESTO = ”Subotica) substr(NAZIV, 2, “PP”) (preduzeće)

Page 14: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

Projekcija

• projekcija odabira podskup kolona iz tabele

• Data je relacija r(R), R U i skup obeležja XR. Projekcija relacije r je unarni operator: X :

SAT(R) SAT(X), definisan na sledeći način:

X (r(R)) = { t Tuple(X) | ( t’ r ) ( t = t’ [X]) }.

• Upit: “Prikazati matični broj i naziv preduzeća sa šifromdelatnosti 125777“ se realizuje pomoću

izraza:

• p1= MBP,NAZIV( DEL =125777(preduzeće))

Page 15: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

Prirodni spoj

• daje mogućnost formiranja nove relacije na osnovu sadržaja dve druge relacije.

• Date su relacije r(R) i s(S), pri čemu je R, S U.Prirodni spoj relacija r i s je funkcija : SAT(R)

SAT(S) SAT(RS), definisana na sledećinačin:r(R) s(S) = { t Tuple(RS) | t[R] r t[S] s }.

Page 16: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

Primer

Sve torke relacije r >< s su dobijene spajanjem svih torkirelacije r i s sa istim vrednostima nad skupom obeležja ABC

BCD = BC.

Page 17: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

Teta spoj

• Date su relacije r(R) i s(S), pri čemu je R, S Ui R S = . Teta spoj relacija r i s po selekcionoj formuli F je funkcija [F]: SAT(R) SAT(S)SAT(RS), definisana na sledeći način:

r(R) [F] s(S) = F (r s).Specijalan slučaj tetaspajanja relacija r(R) is(S) je ekvi spajanje, kod kojeg je selekcionaformula oblika F: A1 = B1

... An = Bn, pri čemu je ( i {1, ..., n}) (Ai RBi S).

Page 18: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

Primer

• “prikazati sve mogućnosti za putovanje na relaciji Beograd-Subotica s presedanjem u Novom Sadu u toku dana” se realizuje teta spajanjem: r [PNS DNS] s.

Page 19: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

Količnik (deljenje)

• Date su relacije r(R) i s(S), pri čemu je S R. Količnik (deljenje) relacija r i s je funkcija : SAT(R) SAT(S) SAT(R \ S), definisana na sledeći način:

r(R) s(S) = { t Tuple(R \ S) | ( ts S) ( tr

R) (tr[R \ S] = t tr[S] = ts) }.

Page 20: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

Primer

• Na slici su prikazane relacije r i s, pri čemu je značenje obeležja sledeće: P – programer i J – programski jezik. Upit: “Prikazati programere koji mogu programirati u svim programskim jezicima“ se realizuje putem deljenja r(PJ) s(J).

Page 21: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja
Page 22: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

• Skup šema relacije:

S={Radnik({MBR, IME PRZ, PLT,SEF}),

Projekat({SPR,NAP,RUK},{SPR}),

RadProj({MBR,SPR,BRC},{MBR+SPR})}

• Ograničenja:

I={RadProj[MBR] Radnik[MBR]

RadProj[SPR] Projekat[SPR]

Projekat[RUK] Radnik[MBR]

Radnik[SEF] Radnik[MBR]}

Page 23: Baze podataka - University of Novi Sad · Baze podataka VežbeI. ... 1 = MBP,NAZIV (DEL =125777(preduzeće)) Prirodni spoj •daje mogućnost formiranja nove relacije na osnovu sadržaja

MBR IME PRZ PLT SEF

10 Mile Car 1600 w

20 Mira Car 1500 10

30 Iva Han 1800 10

40 Ana Tot 2800 20

50 Ana Tot 3200 20

60 Boro Kun 4600 w

Radnik =

SPR NAP RUK

501 CMS 10

230 DW 20

1070 WRG 30

Projekat = MBR SPR BRC

10 501 200

20 501 50

30 230 100

30 1070 250

60 230 10

10 230 5

RadProj =