Baze podataka
Vežbe I
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
...
• 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)
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)}
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
• 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 ).
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) }
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.
Operatori i operandi
• Operatori
▫ standardni (unija, presek i razlika )
▫ specijalni
• Operandi
▫ skupovi torki, ili reprezanti skupova torki
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
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
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 }
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)
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))
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 }.
Primer
Sve torke relacije r >< s su dobijene spajanjem svih torkirelacije r i s sa istim vrednostima nad skupom obeležja ABC
BCD = BC.
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).
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.
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) }.
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).
• 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]}
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 =