osnove relacionog modela podataka
DESCRIPTION
Profesor: Prof. Dr Milorad K. Banjanin. Student: Vasiljević Milan. Osnove relacionog modela podataka. Strukturalna, operacijska i integritetna komponenta relacionog modela podataka. Jedan od aspekata sa kog se mogu izučava ti baz e podataka. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/1.jpg)
Osnove relacionogmodela podataka
Strukturalna, operacijska iintegritetna komponenta
relacionog modela podataka
Profesor:Prof. Dr Milorad K. Banjanin
Student:Vasiljević Milan
![Page 2: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/2.jpg)
Jedan od aspekata sa kog se mogu izučavati baze podataka
Modeli podataka
Modeli podataka su specifične
teorije pomoću kojih se specifikuje i projektuje
neka konkretna
baza podataka ili informacioni
sistem uopšte.
Modeli podataka su specifične
teorije pomoću kojih se specifikuje i projektuje
neka konkretna
baza podataka ili informacioni
sistem uopšte.
![Page 3: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/3.jpg)
Komponenete modela podataka
Struktura modela
Skup koncepata za opis objekata sistema, njihovih atributa i njihovih međusobnih veza
OperacijeOgraničenja
Dinamička pravila integriteta
Dinamička pravila integriteta kojima se definiše osnovno dinamičko ponašanje modela
Ograničenja na vrijednosti podataka u modelu, koja u svakom trenutka posmatranja moraju biti zadovoljena. Ova ograničenja se obično nazivaju statičkim pravilima integriteta baze podataka.
Operacije nad konceptima strukture, preko kojih je moguće prikazati i mjenjati vrijednosti podataka u bazi
![Page 4: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/4.jpg)
Strukturalna komponenta
upitni jezik (QL)
primitivni i složeni koncepti ,”gradivni” elementi modela podataka
pravila za kreiranje složenih koncepata
jezik za definiciju podataka (DDL)
jezik za manipulisanje podacima (DML)
služi za modeliranje LSA, kao statičke strukture sistema – šeme BP
služi za modeliranje dinamike izmene stanja
Operacijska komponenta
![Page 5: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/5.jpg)
. nivo konkretizacije • nivo pojave tipa
opisuje npr. nivo logičke strukture podataka
Integritetna komponenta
Nivoi apstrakcije
skup tipova ograničenja (uslova integriteta)
.
nivo konteksta • nivo tipa opisuje npr. nivo logičke
strukture atributa - šeme
određeni modelom podataka.
služi za modeliranje ograničenja nad podacima u
BP
služi za modeliranje ograničenja nad podacima u
BP
![Page 6: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/6.jpg)
Razlikujemo pet vrsta modela podataka
• Hijerarhijski model• Mrežni model• Model objekti-veze• Relacioni model• Objektni model
![Page 7: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/7.jpg)
Strukturalna komponenta I
Relacioni model podataka
![Page 8: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/8.jpg)
Primitivni kocepti u RMP
Atribut – reprezentuje svojstvo klase entiteta ili veza u realnom sistemu (RS )
Domen – specifikacija skupa mogućih vrijednosti koje neki atributi mogu da dobiju
![Page 9: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/9.jpg)
Polazna pretpostavka strukturalne komponente RMP
Na kojoj se zasnivaju neke tehnike projektovanja relacione šeme BP
Poznat je skup svih atributa sistema – univerzalni skup atributa
U = {A1,…, An}
Poznat je skup svih domena sistema – univerzalni skup domena
D = {D1,…, Dk}
![Page 10: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/10.jpg)
Pravilo pridruživanja domena atributima
• svakom atributu obavezno se pridružuje tačno jedan domen
Dom: U → D, (Ai U)(Dom(Ai) D)U : A1, A2, …, Ai, Aj, …, An
D1 D2
DiDk
![Page 11: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/11.jpg)
Primjer :U = { JMB, IME, POL, SPR, NAP }D = {DIDS, DIME, DPOL, DNAP }– Opis semantike navedenih atributa• JMB – matični broj radnika• IME – ime radnika• POL – pol• SPR – šifra projekta• NAP – naziv projekta
– Opis semantike uvedenih domena• DIDS – domen za identifikacione brojeve
{1,2,...,100000}• DIME –domen za imena radnika {Ana, Aca, Iva}• DPOL –domen za pol osobe {m,ž}• DNAP –domen za nazive projekta {stringovi
dužine 30}
![Page 12: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/12.jpg)
Pridruživanje domena atributima
U = {JMB, IME, POL, SPR, NAP}D ={DIDS, DIME, DPOL DNAP}
• Dom(JMB) = DIDS, dom(JMB) = {1, 2,…, 100000}• Dom(IME) = DIME, dom(IME) = {Ana, Aca, Iva,…}• Dom(POL) = DPOL, dom(POL) = {m, ž}• Dom(SPR) = DIDS, dom(SPR) = {1, 2,…, 100000}• Dom(NAP) = DNAP, dom(NAP) = {stringovi do dužine 30}
![Page 13: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/13.jpg)
Konvencije u označavanju
– skup atributa X = {A, B, C} skraćeno se zapisuje u formi
X = ABCili
X = A+B+Cobavezno u
slučaju višeslovnih
mnemoničkih oznaka atributa
– izraz X Y, gdje su X i Y skupovi atributa, skraćeno se zapisuje kao XY
![Page 14: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/14.jpg)
• Primitivni koncepti nivoa konteksta
– domen– atribut
• Primitivni koncept nivoa konkretizacije
– vrijednost
• Kreiranje svih ostalih (složenih) koncepata
strukturalne komponente RMP– kombinovanjem (strukturiranjem) primitivnih
koncepata– korišćenjem definisanih pravila u RMP
![Page 15: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/15.jpg)
Skup primitivnih i složenih koncepata RMP– za opis LSA (nivo konteksta) i LSP (nivo konkretizacije)Nivo konteksta
Domen
Atribut
Skup atributa
Šema relacije
Šema BP
Nivo konkretizacije
Vrijednost
Podatak
Torka (n - torka)
Relacija
Baza podataka
![Page 16: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/16.jpg)
U = {A1,…, An}
DOM = n I =1 (dom(Ai))– skup svih mogućih vrijednosti
Torka
torka predstavlja preslikavanjet : U→DOM, (Ai U)(t(Ai) dom(Ai))
– REPREZENTUJE JEDNU POJAVU ENTITETA ILI VEZE– pomoću torke se svakom atributu, iz nekog skupaatributa, dodjeljuje konkretna vrijednost-iz skupa mogućih vrijednosti definisanog domenom
![Page 17: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/17.jpg)
Primjer– U = {JMB, IME, POL, SPR,
NAP}– Torka t1 definisana je na
sledeći način• t1(JMB) = 101 • t1(IME) = Ana• t1(SPR) = 1100
t1(POL) = ž•t1(NAP)=Univerzitetski IS–
Torka t1 može se prikazati kao skup
podatakat1 = {(JMB, 101),
(IME, Ana), (POL, ž),(SPR, 1100), (NAP, Univerzitetski IS)}
– Zadata je i torka t2
t2 = {(JMB, 210), (IME, Aca), (POL, m),(SPR, 0105), (NAP,
Polaris)}
![Page 18: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/18.jpg)
– na skup atributa X U– oznaka: t[X]– svakom atributu iz skupa X pridružuje se
ona vrijednost koju je imala polazna torka t– formalno • X U, t: U→DOM, • t[X]: X → DOM(A X)(t[X](A) = t(A))
Primjer– t2 = {(JMB, 210), (IME, Aca), (POL,
m),(SPR, 0105), (NAP, Polaris)}
– Neka je X = JMB+IME– t2[X] = {(JMB, 210), (IME, Aca)}
Restrikcija (“skraćenje”) torke t
![Page 19: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/19.jpg)
• Relacija
– nad skupom atributa U
– predstavlja konačan skup torki
– reprezentuje skup realnih entiteta ili veza
– formalno
r(U) {t | t: U→DOM}, | r | 0ℕ
Skup svih mogućih torki nadskupom atributa U - Tuple(U)
Primjer– U = {JMB, IME, POL, SPR, NAP}
– r1(U) = {t1, t2}• t1 = {(JMB, 101), (IME, Ana),
(POL, ž), (SPR, 1100),(NAP, Univerzitetski IS)}
• t2 = {(JMB, 210), (IME, Aca), (POL, m), (SPR, 0105),
(NAP, Polaris)}
Primjer– R = {A, B, C}, R U• dom(A) = {a1, a2}• dom(B) = {b1, b2}• dom(C) = {c1, c2}– t1 = {(A, a1), (B, b1), (C, c1)}– t2 = {(A, a2), (B, b2), (C, c2)}– t3 = {(A, a1), (B, b1), (C, c2)}– r(R) = {t1, t2, t3}
![Page 20: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/20.jpg)
pomoću tabele
relaciju predstavlja kompletansadržaj tabele
kratko, tabela
poredak torki u relaciji ne utiče na informacije koje sasobom nosi relacija - nebitan
U relaciji se ne mogu pojaviti dve identične torke– to je onda ista torka, samo dva puta prikazana
Radnik JMB IME POL
SPR NAP
t1 101 Ana ž 1100
Univerzitetski IS
t2 210 Aca m 0105
Polaris
r(R) A B C
t1 a1 b1 c1
t2 a2 b2 c2
t3 a1 b1 c2
poredak atributa (kolona tabele) ne utiče nainformacije koje sa sobom nosi relacija - nebitan
Primjeri
![Page 21: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/21.jpg)
Operacijskakomponenta
![Page 22: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/22.jpg)
Jezik za manipulaciju
podacima u RMP
Jezik za manipulaciju
podacima u RMP
Jezik za definiciju podataka u RMP
Jezik za definiciju podataka u RMP
Upitni jezik u RMP
Upitni jezik u RMP
– operacije za ažuriranje relacija• dodavanje nove torke (Add)• brisanje postojeće torke (Delete)• modifikacija podataka postojeće torke (Update)
– operacije za upravljanje šemom BP• kreiranje, brisanje i modifikovanje delova šeme BP
– operacije za izražavanje upita nad jednom relacijom,ili skupom relacija• pružanje podataka na uvid korisniku
![Page 23: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/23.jpg)
Upitni jezik sačinjavaju
operatori za izražavanje upitaxx
pravila za formiranje operanada upita -izrazaxx
pravila za primenu tih operatoraxx
Vrste teoretskih upitnih jezika u RMP
xx
xx relacioni račun
relaciona algebra
zasnovana na teoriji skupova
i skupovnih operacija
nad torkamanad domenima– zasnovani na predikatskom računu I reda
![Page 24: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/24.jpg)
Osnovne skupovne operacije nad relacijama
Unija r(R) s(R) = {t | t r t s}
Presjek r(R) ∩ s(R) = {t | t r t s}
Razlika r(R) − s(R) = {t | t r t ∉ s}
Primjer
r A B
a1 b1
a2 b2
s A B
a1 b1
a3 b3
r s A B
a1 b1
a2 b2
a3 b3
r s A B
a1 b1
r - s A B
a2 b2
![Page 25: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/25.jpg)
Selekcija
torki iz relacije
omogućava izbor (selektovanje) torki
relacije ponekom kriterijumu
σF (r(R)) = {t r | F (t)}
logičkom formulom F izražava se kriterijum po
kojemse torke relacije r
selektuju
Selektovaće se samo one torke, za koje je formula Ftačna• zahtjeva se formalno definisanje sintakse za zapisivanjeselekcionih formula tipa F
Primjer
σF(r(R)), F ::= PLT > 5000
r JMB IME POL SPR PLT
101 Ana ž 11 3400
102 Aca m 14 4200
110 Ivo m 11 7000
111 Olja ž 11 7200
σF
Upit– prikazati radnike čija je plata veća od 4000 i rade naprojektu sa šifrom 11
– σ PLT > 4000 SPR=11 (r)
JMB IME POL
SPR PLT
110 Ivo m 11 7000
111 Olja ž 11 7200
![Page 26: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/26.jpg)
Projekcija (restrikcija) relacije
izdvajanje vrijednosti pojedinih kolona iz relacije projektovanje
relacije na podskup skupa atributa
X R
X(r(R)) = {t[X] | t r(R)}
Primjer
P- pilotA - tip avionaL - broj leta
r P A L
Aca 747 101
Ivo 737 101
Aca 747 102
Ana DC9 110
Upit:– prikazati pilote i
tipoveaviona na kojima lete:
– PA(r(PAL))
P A
Aca 747
Ivo 737
Ana DC9
![Page 27: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/27.jpg)
Prirodni spoj relacija
r A B C
a1 b1 c1
a1 b2 c2
a1 b3 c3
spajanje torki različitih relacija po
osnovu istihvrijednosti
zajedničkih atributa
Date su relacije r(R) i s(S)
r(R) ► ◄ s(S) = {t Tuple(RS) | t[R] r t[S] s}
Primjer
s B C D
b1 c1 d1
b1 c1 d2
b3 c3 d3
b4 c2 d2
r ► ◄s A B C D
a1 b1 c1 d1
a1 b1 c1 d2
a1 b3 c3 d3
![Page 28: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/28.jpg)
Primjer
RadnikRadproj
Projekat
JMB IME PLT POL
101 Ana 3400 ž
102 Aca 4200 m
110 Ivo 7000 m
111 Olja 7200 ž
JMB SPR
101 11
101 14
102 14
110 13
110 11
SPR NAP
11 X25
13 Polaris
14 Univ. IS
Upit– izlistati matične brojeve
radnika, šifre i naziveprojekata na kojima rade
– Radproj ► ◄ Projekat
JMB SPR NAP
101 11 x25
101 14 Univ. Is
102 14 Univ. IS
110 13 Polaris
110 11 X25
Upit– Izlistati matične brojeve i imena radnika, koji
rade naprojektu sa šifrom 11
– JMB+IME(σSPR = 11 (Radproj) ► ◄ Radnik), ili
– JMB+IME(σSPR = 11 (Radproj ► ◄ Radnik))
JMB IME
101 Ana
110 Ivo
![Page 29: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/29.jpg)
Dekartov proizvod relacija
spajanje formiranjem svih mogućih kombinacija torki
iz dvije relacije
R ∩ S = ∅r(R) × s(S) = {t Tuple(RS) | t[R] r t[S] s}
Theta spajanje relacija
selektovanje torki po nekom kriterijumu iz Dekartovog
proizvoda relacija
r(R) ► ◄ F s(S) = σF(r × s)
![Page 30: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/30.jpg)
Primjer– date su relacije• r - red vožnje Niš – Beograd• s - red vožnje Beograd - Novi Sad
r PNI DBG
06:00 09:00
08:00 10:30
13:00 16:00
s PBG DNS
10:00 11:15
12:00 13:30
Upit– pregled svih mogućih varijanti za
putovanje od Nišado Novog Sada s presedanjem u
Beogradu
– r ► ◄ DBG < PBG s = σDBG < PBG (r × s)
r ► ◄ DBG < PBG s PNI DBG PBG DNS
06:00 09:00 10:00 11:15
06:00 09:00 10:00 13:30
08:00 10:30 12:00 13:30
![Page 31: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/31.jpg)
![Page 32: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/32.jpg)
Šema relacije
imenovani parN(R, O)
N - naziv šeme relacije (može biti
izostavljen)R - skup atributa
šeme relacije
O - skup ograničenja šeme relacije
(R, O)xx
bilo koja relacija r(R), takva da zadovoljava sva
ograničenja iz skupa Oxx
Pojava nad šemom relacije
![Page 33: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/33.jpg)
Primer– Data je šema relacijeLetovi({P, A, L}, O)– O = {“Pilot može da leti samo na jednom tipu aviona”}
Let 1
P A L
Pop 747 101
Pop 747 102
Ana 737 103
Da li prikazane relacije predstavljaju pojave naddatom šemom relacije?
Let 2
P A L
Pop 747 101
Pop 737 102
Ana 737 103
![Page 34: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/34.jpg)
Relaciona šema baze podataka
S - skup šema relacijaS = {(Ri, Oi) | i {1,..., n}}
I - skup međurelacionih
ograničenja
(imenovani) par(S, I)
![Page 35: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/35.jpg)
Primjer
Zadate su šeme relacija
S = {Radnik, Projekat, Angažovanje}
I = {“radnik ne može biti angažovan na projektu, ako nije zaposlen”;“na projektu ne može biti angažovan ni jedan radnik, dokprojekat ne bude registrovan”}(S
, I)
pred
stav
lja je
dnu
rela
cion
u še
mu
BP
Radnik({JMB, IME, PRZ, DATR},{“Ne postoje dva radnika sa istom vrijednošću za JMB. Svakiradnik posjeduje vrijdnost za JMB.”})
Angažovanje({SPR, JMB, BRC},{“Ne može se isti radnik na istom projektu angažovati više odjedanput. Pri angažovanju, vrijednosti za JMB i SPR su uvijekpoznate.”})
Projekat({SPR, NAP},{“Ne postoje dva projekta sa istom vrijdnošću za SPR. Svakiprojekat posjeduje vrijdnost za SPR.”})
![Page 36: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/36.jpg)
Relaciona baza podataka
jedna pojava nad zadatom relacionom šemom bazepodataka (S, I)
s: S → {ri | i {1,..., n}}, ( i)s(Ri, Oi) = ri
svakoj šemi relacije iz skupa S odgovara jedna njena pojava
skup relacija s mora da zadovoljava svameđurelaciona ograničenja iz skupa I
![Page 37: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/37.jpg)
reprezentuje jedno stanje realnog sistema
ažurira se, jer promene stanja realnog sistema trebada prate odgovarajuće promene podataka u BP
({(R1 , O1),..., (Rn, On)}, I )
{r1(R1),..., rn(Rn)}
Nivo konteksta
Nivo konkretizacije
Šema BPstatička (sporo
promjenljiva)kategorijasistema BP
relaciona BPdinamička (stalno
promejnljiva)kategorijasistema BP
![Page 38: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/38.jpg)
Konzistentno stanje BP
SUBP može da kontroliše formalnu konzistentnost
baza podataka RBP = {ri | i {1,..., n}} nad šemom(S, I) nalazi se u
formalno konzistentnom stanju suštinski konzistentnom stanju
ako–( ri RBP) (ri
zadovoljava sva ograničenja
odgovarajuće šeme(Ri, Oi))
– RBP zadovoljava sva međurelaciona
ograničenja iskazanaputem I
ako– se nalazi u formalno konzistentnom stanju i
– predstavlja vjernu sliku stanja realnog
sistema» u praksi, nivo pojave grešaka u BP sveden je
na ispod 2-3%
![Page 39: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/39.jpg)
![Page 40: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/40.jpg)
Integritetna komponenta
Karakteristike tipa ograničenjaKarakteristike
tipa ograničenja
pravilo za interpretaciju (validaciju)
formalizam za zapisivanje (definicija)
oblast definisanosti
oblast interpretacijeskup operacija nad bazom podataka koje mogu dovesti do narušavanja ograničenja
datog tipaskup mogućih akcija kojima se objezbeđuje očuvanje validnosti baze podataka, pri pokušaju narušavanja ograničenja datog tipa
Definisana putem tipova ograničenjaDefinisana putem tipova ograničenja
tip logičke strukture atributa nad kojom se
ograničenjedefiniše
tip logičke strukture podataka nad kojom se
ograničenjeinterpretira
definiše se za svaku operaciju
koja može dovesti do
narušavanja ograničenja
![Page 41: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/41.jpg)
ograničenje domena
ograničenje vrijednosti atributa
ograničenje torke
integritet entiteta (ograničenje ključa)
ograničenje jedinstvenosti vrijednosti atributa
1
3
5
4
2
zavisnost sadržavanja6
ograničenje referencijalnog integriteta
7
funkcionalna zavisnost8Ti
povi
ogra
nič
enja
u r
ela
cionom
m
odelu
podata
ka
![Page 42: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/42.jpg)
Oblasti definisanosti u RMPvanrelacio
no ograničenj
e
vanrelaciono
ograničenje
jednorelaciono
(unutarrelaciono, lokalno)ograničenje
jednorelaciono
(unutarrelaciono, lokalno)ograničenje
višerelaciono ograničenje
višerelaciono ograničenje
definiše se izvan
konteksta šeme relacije
definiše se nad tačno
jednom šemom relacije
definiše se nad skupom ili nizom šema relacija, koji
sadržibar dva člana
![Page 43: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/43.jpg)
Oblas
ti in
terp
reta
cije
u R
MP
ograničenje vrijednosti
ogra
ničen
je to
rke
relaciono ograničenje
međ
urela
ciono o
granič
enje
interpretira se nad tačno jednom
vrijednošću nekog atributa
interpretira se nad barem dvije, bilo koje relacije
interpretira se nad
skupom torki bilo koje relacije
interpretira se nad jednom
torkom bilo koje relacije
![Page 44: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/44.jpg)
Specifikacija domena
D(id(D), Predef)
Specifikacija domena
D(id(D), Predef)
naziv domena
ograničenje (integritet) domena
predefinisana vrijednost domena
Ograničenje domenaid(D) = (Tip, Dužina,
Uslov)
Ograničenje domenaid(D) = (Tip, Dužina,
Uslov)
tip podatka (primitivni domen), ilioznaka prethodno definisanog domena
dužina tipa podatka
logički uslov
predstavlja jedinu obaveznu komponentu specifikacije
ograničenja domena
navodi se samo za tipove podataka (primitivne domene) koji
to zahtevaju
ne navodi za domene čiji tip ne predstavlja primitivni domen
mora da ga zadovoljava svaka vrijednost iz skupa mogućih
vrijednosti domena
mora da zadovolji ograničenja tipa, dužine i uslova
![Page 45: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/45.jpg)
interpretacija ograničenja
moguća za bilo koju vrijednost – konstantu d
oznaka id(D)(d)
Primjeri– DPrezime((String, 30, Δ), Δ)– DDatum((Date, Δ, d ≥ '01.01.1900'), Δ)– DOcena((Number, 2, d ≥ 5 d ≤ 10), Δ)• Δ - komponenta u specifikaciji nije zadata
![Page 46: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/46.jpg)
Nula (nedostajuća, izostavljena) vrednost
specijalna vrijednost
označava se posebnim simbolom
moguća značenja
skup mogućih vrednosti svih domena proširuje senula vrijednošću
DOM {ω}
• ω, ili ? (u literaturi) ili• NULL (u literaturi i
SQL-u)
• nepoznata - postojeća vrijednost atributa
• nepostojeća vrijednost atributa• neinformativna vrijednost
atributa
nula vrijednost a priori zadovoljava svako ograničenje
domena
![Page 47: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/47.jpg)
Specifikacija atributa šeme relacije
A R, N(R, O)
• zadaje se za svaki atribut šeme relacije
(id(N, A
), Predef)
ograničenje vrijednosti atributa
predefinisana vrije
dnost
atributa
Ograničenje vrijednosti atributaid(N, A) = (Domen, Null)
oznaka (naziv) domena atributa
ograničenje nula vrijednosti atributa• T - dozvola dodjele nula vrijednosti
Atributu u r(N)• - zabrana dodele nula vrijednost
i atributu u r(N)
obavezne komponente specifikacije
• ako se navede, onda je on važeći
• u protivnom, važeći je Predef odgovarajućeg
Domena, iliprvog sledećeg nasleđenog domena, za koji je Predef
definisan
![Page 48: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/48.jpg)
Ograničenje torke
izražava ograničenja na moguće vrijednosti unutar
jedne torke
predstavlja skup ograničenja vrijednosti atributa,
kojem je pridodat logički uslov
formalno, za šemu relacije N(R, O)
id(N) = id(R) = ({id(N, A) | A R}, Uslov)
Uslov• logički uslov koji svaka torka
mora da zadovolji• može, u ulozi operanda, da sadrži bilo koji atribut date
šeme relacije
interpretacija ograničenja• moguća za bilo koju torku
nad skupom atributa R, id(N)(t)
![Page 49: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/49.jpg)
Ključ šeme relacije
minimalni podskup skupa atributa šeme relacije, na
osnovu kojeg se jedinstveno može identifikovatisvaka torka relacije nad datom šemom
skup torki (relacija) naddatom šemom relacije
oblast interpretacije
formalno, X je ključ ako1. ( u, v r(R))(u[X] = v[X] u = v)
2. ( Y X)(¬ 1.)
u određenim situacijama (u procesu projektovanjašeme BP) skup ograničenja
šeme relacije zadaje sesamo kao skup ključeva
N(R, K)
![Page 50: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/50.jpg)
OGRANIČENjE
KLjČA
šeme relacije N(R, K) ključ X K, X R
oznakaKey(N, X)
za sve atribute ključa nula vrijednosti su zabranjene
( Ki K)( A Ki)(Null(N, A) = )
Vrste atributa šeme relacije, s obzirom na ključeve
primaran (ključni) atribut– pripada barem jednom
ključu šeme relacije
neprimaran (sporedni) atribut
– ne pripada ni jednom ključu šeme relacije
svaka šema relacije mora posedovati najmanje jedan
ključ (K ≠ ∅)• proizilazi iz definicije pojma relacije
ekvivalentni ključevi• svi ključevi skupa ključeva K
primarni ključ
jedan izabrani ključ, od svih ekvivalentnih
ključevaoznaka Kp(N)
svaka šema relacije treba da poseduje
tačno jedan primarniključ
koristi se u ulozi asocijativne
(simboličke) adrese zapovezivanje podataka
u relacijama
![Page 51: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/51.jpg)
Ograničenje jedinstvenosti
vrijednosti atributa šeme relacije N(R, O)
Uniqueness Constraint Unique(N, X)
X - skup atributa, X R
zahteva da ne-nula kombinacija vrijednosti atributa bude jedinstvena u relaciji nad N(R, O)
formalno• ( u, v r(R))(( A X)(u[A] ≠ ω v[A] ≠ ω) (u[X] = v[X] u = v))
oblast interpretacije• skup torki - relacija nad datom šemom N(R, O)
skup svih ograničenja jedinstvenosti u šemi N(R, O)Uniq = {Unique(N, X) | X R}
![Page 52: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/52.jpg)
Primjer
Radnik({IME, PRZ, DATR, JMB}, O)– Uniq O– Uniq = {Unique(Radnik, JMB)}– Unique(Radnik, JMB)
zahjteva da ako radnik posjeduje ne-nulavrednost za JMB,
onda je ta vrijednost jedinstvena u relaciji nad šemom Radnik
![Page 53: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/53.jpg)
Skup svih ograničenja šeme relacije
praktično, kada šemu relacije treba implementirati udatom SUBP, zadaje se kao unija
skupa ključevaskupa ključeva ograničenja jedinstvenostiograničenja jedinstvenosti
ograničenja torkeograničenja torke
N(R, K Uniq {id(R)})
![Page 54: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/54.jpg)
Zavisnost sadržavanja– date su šeme relacije Ni(Ri, Oi) i Nj(Rj, Oj)– dati su domenski kompatibilni nizovi atributaX = (A1,..., An), ( l {1,..., n})(Al Ri),Y = (B1,..., Bn), ( l {1,..., n})(Bl Rj),( l {1,..., n})(dom(Al) dom(Bl))– oznaka (pravilo zapisivanja)Ni[X] Nj[Y]
Zavisnost sadržavanjaNi[X] Nj[Y]– važi ako je za bilo koje dvije relacije r(Ri, Oi) i s(Rj, Oj)zadovoljeno( u r)( v s)( l {1,..., n})(u[Al] = ω u[Al] = v[Bl])– oblast definisanosti• niz od dvije šeme relacije– oblast interpretacije• relacije nad šemama Ni i Nj
![Page 55: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/55.jpg)
Primjer– date su relacije r(Ni) i s(Nj)– važi zavisnost sadržavanja Ni[B] Nj[B]
r A B
a1 b1
a2 b2
s B C
b1 c1
b2 c1
b3 c2
![Page 56: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/56.jpg)
Ograničenje referencijalnog
integriteta
Ni - referencirajuća šema relacije
Nj - referencirana šema relacije
zavisnost sadržavanja Ni[X] Nj[Y],
kada je Y ključšeme relacije Nj(Rj, Kj)
![Page 57: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/57.jpg)
JMB IME PRZ DATR
101 Ana Pap 12.12.65.
102 Aca Tot 13.11.48.
110 Ivo Ban 01.01.49.
111 Olja Kun 06.05.71.
SPR NAP
11 X25
13 Polaris
14 Univ.IS
JMB SPR
101 11
101 11
102 14
RadnikProjekat
Ang
ažo
vanjePrimjer
– Angažovanje[JMB] Radnik[JMB]– Angažovanje[SPR] Projekat[SPR]
![Page 58: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/58.jpg)
– izraz oblika f: X→Y• gde su X i Y skupovi atributa• f je oznaka FZ• X i Y su podskupovi skupa U• oznaka f se, u notaciji, često izostavlja
semantika• ako je poznata X vrijednost, poznata je i Y vrijednost• svakoj X vrijednosti odgovara samo jedna Y vrijednost
rela
cija
r zad
ovol
java
FZ X
→Y ak
o va
ži
( u,
v
r)(u
[X] =
v[X
] u
[Y] =
v[Y
])
oblast interpretacije
• relacija r(N) ili r(U)
skup FZ
se ozn
ačava
sa F
• F =
{JMB→IM
E, JMB+MES+GOD→BRC,..
.}
Funkcionalna zavisnost (FZ)
![Page 59: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/59.jpg)
logička posledica implikacioni problem
zatvarač (zatvorenje) skupa FZ
ekvivalentnost skupova FZ
• FZ f je logička posledica od skupa FZ F• oznaka: F |= f– ako svaka relacija r koja zadovoljava F zadovoljava i f• skup FZ F2 je logička posledica od skupa FZ F1
• oznaka: F1 |= F2
– ako ( f F2)(F1 |= f)
rešiti implikacioni problem, znači utvrditi da li važi F |= f
• oznaka: F1 ≡ F2
• ako F1 |= F2 F2 |= F1
• oznaka F +
– skup koji sadrži sve logičke posledice od F– F+ = {f | F |= f }• važi za svaki F da F F +
• F1 |= F2 akko F2 + F1+
F1 ≡ F2 akko F1 + = F2 +
![Page 60: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/60.jpg)
Armstrongova pravila izvođenja
Izvedena pravila izvođenja
refleksivnostY X |− X → Y
proširenje X → Y, W V |− XV → YW
pseudotranzitivnost X → Y, YV → Z |− XV → Z
uniranje desn
ih stra
na
X → Y, X
→ Z
|− X
→ YZ
dekompozicija desnih strana
X → Y, V Y |− X → V
X → Y, Y → Z |− X → Z
![Page 61: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/61.jpg)
Sistem Armstrongovih pravila izvođenja je:refleksivnost, proširenje i pseudotranizitivnost
Korektan (neprotivurečan)
kompletan
svaka logička posledica nekog skupa FZ može se izvesti
primenom AP iz tog skupa
svaka FZ koja se izvede primenom
AP iz nekog skupa FZpredstavlja logičku
posledicu tog skupa FZ
Neredundantan (minimalan)
ne može se eliminisati kao suvišno ni jedno od tri pravila
izvođenja, a da prethodna dva svojstva ostanu očuvana
![Page 62: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/62.jpg)
Funkcionalna zavisnost
je nepotpuna je tranzitivna
ako sadrži logički suvšan atribut na lijevoj strani
( X' X)(X'→Y F+)
ako važi X→Y F+ i Y→Z F+, a ne važi da je Y→X F+
![Page 63: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/63.jpg)
Ključ šeme relacije i FZ
X je ključ šeme relacije (R, F), ako važi
1. iz F slijedi X→R (X→R F +) 2. X je minimalni skup atributa sa osobinom 1. ¬(X' X)(X'→R F +)
Zatvarač (zatvorenje) skupa atributa
skup svih atributa koji funkcionalno
zavise od X
X F+ = {A U | X→A F +}
![Page 64: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/64.jpg)
Generisanje ključa šeme relacije
polazi se od R i
‚vrši se
redukcija
izbacivanje atributa i
izračunavanjem zatvarača ostatka
Pojam ključa
Fundamentalan za teoriju i praksu
relacionog MP
ne projektuju se ostala ograničenja
šeme BP, dok se nepreciziraju ključevi svih šema relacija
![Page 65: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/65.jpg)
![Page 66: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/66.jpg)
Statička pravila integriteta daju uslove koje podaci trebada zadovolje u stacionarnom stanju,odnosno po okončanju bilo koje transakcije
Dinamička pravila integriteta -akcija koju treba preduzeti kada neka operacija ažuriranja
BP naruši definisano ograničenje (operacija,ograničenje,akcija)
Koncept je generalizovana ideja o nekom fenomenu ili objektu kome
je dat određen naziv
Ograničenje je uslov ili skup uslova koji
ograničava opis objekta ili događaja
![Page 67: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/67.jpg)
Jezik za manipulisanje podacima DML ( DATA MANIPULATION LANGUAGE ) omogućava korisniku izvršavanje operacija nad BP koja je definisana jezikomza opis podataka.
Jezik za opis podataka DDL ( DATA DEFINITION LANGUAGE ) omogućava opis podataka na tri nivoa :
Na nivou korisnika u vidu određene podšeme
Na nivou logičke strukture podataka
Na nivou fizičke strukture podataka
SQL (engl. Structured Query Language) je standardni relacioni upitni jezik. Omogućava definisanje podataka, ažuriranje, kontrolu, konzistentnost, konkurentni rad i jezik za održavanje rečnika podataka.
Integracija podataka višeaplikacija ostvaruje se
formiranjem novelogičke strukture nazvaneŠEMOM BP nad skupomatributa tipova zapisa
datotekaPodšema je dio logicke strukture BP koji je dovoljan za realizaciju jedne aplikacije
![Page 68: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/68.jpg)
Apstrakcija je kontrolisano uključivanje detalja, “sakrivanje detalja” odnosno izvlačenje opštih karakteristika
u opisivanju nekog sistema
Viši nivoi – jasno opisivanje sistemaNiži nivoi – detaljno opisivanje
sistema
![Page 69: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/69.jpg)
Predikatski račun prvog reda
Afirmativna rečenica koja ima smisla i koja je istinita ili neistinita naziva se sud
Afirmativna rečenica koja ima smisla i koja sadrži jedan ili više promjenljivih parametara i koja postaje sud uvijek kada parametri iz rečenice dobiju konkretnu vrijednost naziva se predikat.Broj parametara u predikatu naziva se dužina predikata. Npr X2 + Y2 < 1
Činjenica da u predikatskom računu promjenljiva x uzima svoju vrijednost iz nekog skupa R označava se sa x : R
Predikatski ili kvantifikatorski račun je matematička teorija čiji su objekti formulekoje predstavljaju predikate
Definišu se atomske formule i pravila izvođenja složenijih formula
![Page 70: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/70.jpg)
Referencijalni Integritet -(zaštita od pogrešnog unosa) je sistem pravila da bi se osiguralo da veze između zapisa u povezanim tabelama budu važeće i da ne bismo slučajno obrisali ili izmjenili podatke.Čekiramo samo ako: - odgovarajuće polje iz prve tabele je primarni ključ - da povezana polja imaju isti tip podataka - obe tabele su u istoj baziPrema tome referencijalni integritet osigurava postojanost svih podataka u bazi
![Page 71: Osnove relacionog modela podataka](https://reader035.vdocuments.site/reader035/viewer/2022062221/56813057550346895d960fd6/html5/thumbnails/71.jpg)
Predefinisani (primitivni) domen– predstavlja predefinisani, atomicni tip podataka• ugraden u definiciju modela podataka• prakticno, zavisi od softverskog okruženja koje podržavaizabrani model podataka– primjeri• teoretski: , , , , neograniceni znakovni, boolean• prakticni: integer, float, double, decimal, boolean, string
Korisnicki definisani (izvedeni) domen– definiše se• korišcenjem vec postojeceg domena– predefinisanog, ili– korisnicki definisanog• putem pravila za definisanje domena, ugradenih u definiciju modela podataka– može predstavljati skup• atomicnih podataka, ili• složenih podataka– primjeri• DOCENA ::= {d | d 5 d 10}• DNAZIV ::= String(30)