You are on page 1of 1010

Baze podataka

Osnovni pojmovi

Strukture podataka

BP - Osnovni pojmovi
Sadržaj
• Realni sistem i informacioni sistem
• Entitet i poveznik
• Obeležje, domen i podatak
• Tip entiteta i pojava tipa entiteta
• Tip poveznika i pojava tipa poveznika
• Strukture podataka
• Logička struktura obeležja
• Logička struktura podataka
• Fizička struktura podataka

BP - Osnovni pojmovi 2 / 66
Realni sistem - informacioni sistem
• Realni svet
• Realni sistem (RS)
– cilj poslovanja
– resursi (činioci) poslovanja
– poslovni procesi
– okruženje
• Informacioni sistem (IS)
– model realnog sistema (procesa i resursa)

BP - Osnovni pojmovi 3 / 66
Realni sistem - informacioni sistem
• Cilj izgradnje IS
– pružanje informacija, neophodnih za funkcionisanje i
upravljanje realnim sistemom

• Mesto IS u realnom sistemu


– infrastrukturna komponenta realnog sistema
– namenjena da podrži upravljački sistem realnog
sistema

BP - Osnovni pojmovi 4 / 66
Realni sistem - informacioni sistem
• Zadaci IS
– obuhvat (akvizicija) podataka
– skladištenje podataka
– prenos podataka
– prezentovanje podataka
– obrada podataka
– automatizacija upravljačkih funkcija u RS

BP - Osnovni pojmovi 5 / 66
Realni sistem - informacioni sistem
• Činioci IS
– računarsko-komunikaciona i softverska infrastruktura
– baza (“skladište”) podataka
– aplikacije (softverski paketi) za rad s podacima
– projektna i korisnička dokumentacija
– krajnji korisnici
– tim za obezbeđenje eksploatacije i održavanja

BP - Osnovni pojmovi 6 / 66
Sadržaj
• Realni sistem i informacioni sistem
• Entitet i poveznik
• Obeležje, domen i podatak
• Tip entiteta i pojava tipa entiteta
• Tip poveznika i pojava tipa poveznika
• Strukture podataka
• Logička struktura obeležja
• Logička struktura podataka
• Fizička struktura podataka

BP - Osnovni pojmovi 7 / 66
Entitet i klasa entiteta
• Entitet (realni entitet)
– jedinica posmatranja
– činilac (resurs) poslovanja u realnom sistemu
• Klasa realnih entiteta
– skup “sličnih” entiteta
– skup entiteta koji poseduje zajedničko svojstvo
– formalno: E = {ei | P(ei)}

BP - Osnovni pojmovi 8 / 66
Poveznik i klasa poveznika
• Entiteti realnog sistema se nalaze u
međusobnim odnosima (vezama)
• Poveznik (veza)
– reprezentuje odnos dva ili više realnih entiteta, ili
prethodno uspostavljenih poveznika

BP - Osnovni pojmovi 9 / 66
Poveznik i klasa poveznika
• Klasa poveznika
– skup veza između klasa realnih entiteta ili prethodno
identifikovanih klasa poveznika
– skup poveznika koji poseduje isto svojstvo
– formalno:
S = {(e1,…, em) | P(e1,…, em)}
– ei (i  {1,..., m})
• jedan realni entitet ili prethodno uspostavljeni poveznik

BP - Osnovni pojmovi 10 / 66
Sadržaj
• Realni sistem i informacioni sistem
• Entitet i poveznik
• Obeležje, domen i podatak
• Tip entiteta i pojava tipa entiteta
• Tip poveznika i pojava tipa poveznika
• Strukture podataka
• Logička struktura obeležja
• Logička struktura podataka
• Fizička struktura podataka

BP - Osnovni pojmovi 11 / 66
Obeležje (Atribut)
• P(ei), P(e1,…, em)
– predikat (svojstvo) klase entiteta/poveznika
– iskazuje osobine klase E, tj. klase S

• Obeležje (atribut)
– osobina klase realnih entiteta, ili poveznika
– proističe iz semantike predikata P(ei)
– Oznake:
• A, B, X, W
• BRI, Datum_Prispeća, JMBG, Prz, Ime

BP - Osnovni pojmovi 12 / 66
Obeležje (Atribut)
• Vrste obeležja
– prema mogućnosti dekomponovanja na celine nižeg
reda
• Elementarno
– ne dekomponuje se
– reprezentuje atomičnu (elementarnu vrednost)
– Primer:
Grad, Ulica, Broj, Stan
• Složeno
– može se dekomponovati na druga obeležja
– reprezentuje složenu vrednost
– Primer:
ADRESA = (Grad, Ulica, Broj, Stan)
• Skupovno
– reprezentuje skup vrednosti istog tipa

BP - Osnovni pojmovi 13 / 66
Domen
• Domen
– specifikacija skupa mogućih vrednosti obeležja
• sa definisanim dozvoljenim relacijama i operacijama nad
datim skupom
• reprezentuje skup mogućih vrednosti obeležja
– vrste, prema načinu nastanka
• predefinisani (primitivni)
– "a priori" definisani
• korisnički definisani (izvedeni)
– definisani korišćenjem postojećih domena, primenom unapred
utvrđenih pravila

BP - Osnovni pojmovi 14 / 66
Domen obeležja
• Napomene
– Svakom obeležju se pridružuje domen
• specificira se skup mogućih vrednosti obeležja
– Dom(A), (A : D)
• oznake za pridruženi domen obeležju
– dom(A)
• oznaka za skup mogućih vrednosti obeležja

BP - Osnovni pojmovi 15 / 66
Domen obeležja
• Primer
– Specifikacija domena
• DOCENA ::= {d  ℕ | d  5  d  10}
– Pridruživanje domena obeležju
• Dom(Ocena) = DOCENA
• (Ocena : DOCENA)
– Skup mogućih vrednosti obeležja
• dom(OCENA) = {5, 6, 7, 8, 9, 10}

BP - Osnovni pojmovi 16 / 66
Podatak
• Podatak - uređena četvorka

(Entitet, Obeležje, Vreme, Vrednost)

– Entitet
• identifikator (oznaka) entiteta
– Obeležje
• oznaka (mnemonik) obeležja
– Vreme
• vremenska odrednica
– Vrednost
• jedna vrednost iz dom(A)

BP - Osnovni pojmovi 17 / 66
Podatak
• Kontekst podatka
– semantička (smisaona) komponenta podatka
– predstavlja trojku:

(Entitet, Obeležje, Vreme)

• Ako se eksplicitno navede samo vrednost, a


obeležje, entitet, ili vreme nije ni implicitno
zadato, to nije podatak, jer smisao nije određen

BP - Osnovni pojmovi 18 / 66
Podatak
• Vreme, kao komponenta podatka, može se
izostaviti, ako se
– uvede konvencija da se podatak, u tom slučaju,
odnosi na vremenski trenutak u kojem se tim
podatkom manipuliše, ili
– identifikuje posebno obeležje, čija vrednost
predstavlja vremensku odrednicu posmatranog
podatka.
• Podatak - činjenica iz realnog sistema

BP - Osnovni pojmovi 19 / 66
Sadržaj
• Realni sistem i informacioni sistem
• Entitet i poveznik
• Obeležje, domen i podatak
• Tip entiteta i pojava tipa entiteta
• Tip poveznika i pojava tipa poveznika
• Strukture podataka
• Logička struktura obeležja
• Logička struktura podataka
• Fizička struktura podataka

BP - Osnovni pojmovi 20 / 66
Tip entiteta
• Tip entiteta (TE)
– Model klase realnih entiteta u IS
– Gradi se od obeležja bitnih za realizaciju ciljeva IS
– Poseduje:
• naziv: N
• skup obeležja: Q = {A1,…, An}
– Skup obeležja TE predstavlja podskup skupa
obeležja klase realnih entiteta

BP - Osnovni pojmovi 21 / 66
Tip entiteta
• Primer:
Radnik

Radnik({Mbr, Ime, Prz, Zan, JMBG})

BP - Osnovni pojmovi 22 / 66
Pojava tipa entiteta
• Pojava tipa entiteta
– model jednog realnog entiteta u IS
• Tip entiteta
– formalno, reprezentuje skup pojava:

SP(N) = {pi | P(pi)}

• Svaka pojava pi  SP(N) reprezentuje tačno


jedan realni entitet ei  E

BP - Osnovni pojmovi 23 / 66
Pojava tipa entiteta
• Dat je tip entiteta
– s nazivom N i skupom obeležja Q = {A1,..., An}
• Pojava tipa entiteta
– u zadatom trenutku vremena, p(N, Vreme), ili
– samo p(N), ako se vremenska odrednica ne navodi,
– predstavlja skup podataka:

p(N) = {(A1, a1),..., (An, an)}

– Za svaki AiQ važi da je aidom(Ai)

BP - Osnovni pojmovi 24 / 66
Pojava tipa entiteta
• Ukoliko se u skup atributa tipa entiteta uvede
redosled (A1,..., An),
– tada se pojava p(N) posmatra kao n-torka (torka):

(a1,..., an)

• Uređenje vrednosti podataka u pojavi je


diktirano uređenjem obeležja u tipu entiteta

BP - Osnovni pojmovi 25 / 66
Pojava tipa entiteta
• Primer:
Radnik

Radnik (Mbr, Ime, Prz, Zan, JMBG)


(1040, Eva, Tot, Programer, 1201971720014)

BP - Osnovni pojmovi 26 / 66
Identifikator tipa entiteta
• Identifikator tipa entiteta
– skup obeležja
– ima ulogu da obezbedi način za jedinstveno
(nedvosmisleno) označavanje (identifikaciju) bilo koje
pojave tipa entiteta
• Bilo koja vrednost identifikatora TE
– označava najviše jednu pojavu tipa entiteta
– naziva se identifikator pojave TE
– predstavlja jednu od četiri komponente podatka

BP - Osnovni pojmovi 27 / 66
Identifikator tipa entiteta
• Vrste identifikatora tipa entiteta
– eksterni
• ne predstavlja podskup skupa obeležja datog TE
– interni
• predstavlja podskup skupa obeležja datog TE

BP - Osnovni pojmovi 28 / 66
Identifikator tipa entiteta
• Eksterni identifikator TE
– nije podskup skupa obeležja tipa entiteta

– Primer
• TE Radnik({Mbr, Ime, Prz, JMBG})
– RBR_Pojave_TE  {1,..., n}
– Oznaka_Pojave_TE  {p1,..., pn}
– MEM_Adresa_Pojave_TE  {a1,..., an}

BP - Osnovni pojmovi 29 / 66
Identifikator tipa entiteta
• Interni identifikator TE
– podskup skupa obeležja tipa entiteta

– Primer
• TE Radnik({Mbr, Ime, Prz, JMBG})
– Mbr
– JMBG
– {Mbr, Ime, Prz, JMBG}

BP - Osnovni pojmovi 30 / 66
Ključ tipa entiteta
• Ključ TE
– minimalni interni identifikator tipa entiteta
• Formalno
– skup obeležja tipa entiteta N
– X  Q, Q = {A1,..., An}, takav da
• (10)
– ne postoje dve pojave TE N s istom x-vrednošću (za X) i svaka
pojava TE mora imati zadatu x-vrednost
– svojstvo jednoznačne identifikacije
• (20)
– ne postoji X'  X, za koji važi (10)
– svojstvo minimalnosti

BP - Osnovni pojmovi 31 / 66
Ključ tipa entiteta
• Svaki tip entiteta poseduje bar jedan ključ
– predstavlja uređenu strukturu:
N(Q, C)
• N - naziv TE
• Q = {A1,…, An} - skup obeležja TE
• C - skup ograničenja TE
• K = {K1,..., Km}  C - skup ključeva TE (K ≠ )

– skup svih pojava TE SP(N) mora zadovoljavati C

• Primer
– Radnik({Mbr, Ime, Prz, JMBG}, {Mbr, JMBG})
• Mbr i JMBG su dva, ekvivalentna ključa TE Radnik
BP - Osnovni pojmovi 32 / 66
Ključ tipa entiteta
• Primarni ključ
– jedan, izabrani, ključ iz skupa ključeva TE
– često se označava podvlačenjem

• Primer
– Radnik({Mbr, Ime, Prz, JMBG}, {Mbr, JMBG})

– Radnik(Mbr, Ime, Prz, JMBG)


• skraćena, nepotpuna notacija

BP - Osnovni pojmovi 33 / 66
Sadržaj
• Realni sistem i informacioni sistem
• Entitet i poveznik
• Obeležje, domen i podatak
• Tip entiteta i pojava tipa entiteta
• Tip poveznika i pojava tipa poveznika
• Strukture podataka
• Logička struktura obeležja
• Logička struktura podataka
• Fizička struktura podataka

BP - Osnovni pojmovi 34 / 66
Tip poveznika
• Entiteti realnog sistema se nalaze u
međusobnim odnosima (vezama) - poveznici
– IS treba da sadrži model tih veza

• Tip poveznika (TP)


– povezuje dva ili više TE, ili prethodno definisanih TP
– model veza između pojava povezanih TE ili TP,
odnosno između realnih entiteta ili veza

BP - Osnovni pojmovi 35 / 66
Tip poveznika
• Tip poveznika (TP)
– formalno, struktura

N(N1, N2,…, Nm, Q, C)

• N - naziv tipa poveznika


• Ni (i  {1,..., m}) - povezani tip
– tip entiteta, ili
– prethodno definisani tip poveznika
• Q = {B1,…, Bn} - skup obeležja TP
• C - skup ograničenja TP
• K = {K1,..., Kk}  C - skup ključeva TP (K ≠ )

BP - Osnovni pojmovi 36 / 66
Tip poveznika
• Tip poveznika (TP)
– reprezentuje skup pojava poveznika

SP(N) = {(p1,…, pm) | P(p1,…, pm)}

• pi (i  {1,..., m}) - jedna pojava TE ili TP Ni


• P(p1,…, pm) - osobina (predikat) TP N

BP - Osnovni pojmovi 37 / 66
Tip poveznika
• Primer:
– tip poveznika nad TE Student i Predmet:
Pohađa(Student, Predmet, {Semestar}, C1)

– tip poveznika nad TE Nastavnik i Predmet:


Povera(Nastavnik, Predmet, {Datum}, C2)

– tip poveznika nad TP Pohađa i Poverava:


Ispit(Pohađa, Povera, {Ocena}, C3)

BP - Osnovni pojmovi 38 / 66
Pojava tipa poveznika
• Pojava tipa poveznika
N(N1, N2,…, Nm, {B1,…, Bk }, C)
– reprezentuje jedan poveznik u realnom sistemu
– oznaka:
• p(N, Vreme), u zadatom trenutku vremena, ili samo
• p(N), ako se vremenska odrednica ne navodi

– predstavlja skup podataka:

p(N) = (p1,…, pm)(N) = {(B1, b1),..., (Bk, bk)}

• Za svaki Bi mora biti bi  dom(Bi)


• skup svih pojava p(N) mora zadovoljavati skup ograničenja C

BP - Osnovni pojmovi 39 / 66
Identifikator tipa poveznika
• Identifikator tipa poveznika
– niz
(N1, N2,…, Nm)
• ili neki njegov neprazan podniz
– ima ulogu da obezbedi način za jedinstveno
(nedvosmisleno) označavanje (identifikaciju) bilo koje
pojave tipa poveznika
• Bilo koja vrednost identifikatora TP - niz
(p1,…, pm)
– označava najviše jednu pojavu tipa poveznika
– naziva se identifikator pojave TP
– niz pojava tipova (p1,..., pm) ili jeste ili nije u vezi
BP - Osnovni pojmovi 40 / 66
Ključ tipa poveznika
• Ključ TP
– skup obeležja X
• izveden na osnovu ključeva povezanih tipova (N1, N2,…, Nm)
– vrlo često, ali ne uvek
• X  K1  ...  Km, gde
• (i  1,..., m)(Ki je jedan izabrani ključ povezanog tipa Ni)

– X = {A1,..., An}, takav da


• (10)
– ne postoje dve pojave TP N s istom x-vrednošću (za X)
– svojstvo jednoznačne identifikacije
• (20)
– ne postoji X'  X, za koji važi (10)
– svojstvo minimalnosti
BP - Osnovni pojmovi 41 / 66
Alternativna terminologija
• U literaturi se može sresti alternativna
terminologija:
– tip entiteta  entitet
– pojava tipa entiteta  instanca entiteta
– tip poveznika  poveznik, ili veza
– pojava tipa poveznika  instanca poveznika

– en-ti-ty () n. pl. <-ties> by Random Hause Webster's


1. something that has a real existence; thing.
2. something that exists as a distinct, independent, or self-
contained unit.
3. being or existence, esp. when considered as distinct,
independent, or self-contained.

BP - Osnovni pojmovi 42 / 66
Sadržaj
• Realni sistem i informacioni sistem
• Entitet i poveznik
• Obeležje, domen i podatak
• Tip entiteta i pojava tipa entiteta
• Tip poveznika i pojava tipa poveznika
• Strukture podataka
• Logička struktura obeležja
• Logička struktura podataka
• Fizička struktura podataka

BP - Osnovni pojmovi 43 / 66
Strukture podataka
• Struktura podataka – orijentisani graf G
G(V, )
– V – skup čvorova
• svaki čvor reprezentuje neke podatke
• svakom čvoru je pridružena određena semantika
–  - skup grana
•   V  V – binarna relacija
• svaka grana reprezentuje neke veze između podataka
• svakoj grani je pridružena određena semantika

BP - Osnovni pojmovi 44 / 66
Strukture podataka
• Vrste struktura podataka
– prema nivou apstrakcije pridružene semantike
• logičke strukture obeležja
• logičke strukture podataka
• fizičke strukture podataka

– prema mogućem broju direktnih prethodnika i


sledbenika čvorova grafa
• linearne strukture podataka
– cikličke
– acikličke
• strukture tipa stabla (drveta)
• mrežne strukture podataka

BP - Osnovni pojmovi 45 / 66
Sadržaj
• Realni sistem i informacioni sistem
• Entitet i poveznik
• Obeležje, domen i podatak
• Tip entiteta i pojava tipa entiteta
• Tip poveznika i pojava tipa poveznika
• Strukture podataka
• Logička struktura obeležja
• Logička struktura podataka
• Fizička struktura podataka

BP - Osnovni pojmovi 46 / 66
Logička struktura obeležja
• Logička struktura obeležja (LSO)
– Struktura nad skupom tipova entiteta, tipova
poveznika i njihovih atributa
– Model dela realnog sistema (resursa)
M = (STE, RTE)
– STE
• skup tipova (entiteta i/ili poveznika – dva moguća pristupa)
– RTE
• relacija koja STE snabdeva strukturom
• modelira odnose koji postoje između realnih entiteta istih, ili
različitih klasa
• svaka grana u RTE prikazuje jednu vezu tipa s nekim
njegovim povezanim tipom

BP - Osnovni pojmovi 47 / 66
Logička struktura obeležja
• Mogući pristupi organizaciji LSO

(STE, RTE)

– (A) – "i TE i TP su čvorovi"


• pristup, korišćen u ovom materijalu
• STE sadrži skup svih TE i TP modeliranog dela sistema
• RTE sadrži grane koje prikazuju veze TP s njegovim
povezanim tipovima
• simboli za vizuelni prikaz čvorova mogu, a ne moraju biti
različiti za TE i TP

BP - Osnovni pojmovi 48 / 66
Logička struktura obeležja
• Mogući pristupi organizaciji LSO
(STE, RTE)

– (B) – "TE su čvorovi, a TP su grane"


• alternativni pristup – istorijski se prvo pojavio
• STE sadrži skup svih TE modeliranog dela sistema
• RTE sadrži grane koje prikazuju sve TP i veze s njihovim
povezanim tipovima
• pristup zahteva redefiniciju pojma TP
– TP ne sme da sadrži skup obeležja Q i skup ograničenja C
– TP ne može, kao povezani tip, da referencira drugi TP, već
samo TE
– menja se pogled na upotrebu koncepta TE
• problem: iskazivanje TP reda većeg od 2 zahteva korišćenje
pojma hipergrane grafa
BP - Osnovni pojmovi 49 / 66
Logička struktura obeležja
• Nivo detaljnosti vizuelnog prikaza LSO

– nivo tipova entiteta i tipova poveznika


• globalni prikaz

– nivo obeležja
• detaljni prikaz

BP - Osnovni pojmovi 50 / 66
Logička struktura obeležja
• Primer
– nivo detaljnosti TE i TP
– pristup (B) – TE su čvorovi, a TP su grane

Je
Projekat Radnik Kadar

Realizuje se kroz Učestvuje Radi na

Zadaci na projektu Radno_mesto

BP - Osnovni pojmovi 51 / 66
Logička struktura obeležja
• Primer
– nivo detaljnosti TE i TP
– pristup (A) – i TE i TP su čvorovi

Predmet Pohađa Student

Povera Ispit

Nastavnik

BP - Osnovni pojmovi 52 / 66
Logička struktura obeležja
• Primer
– nivo detaljnosti TE i TP
– pristup (A) – i TE i TP su čvorovi

Predmet Pohađa Student

Povera Ispit

Nastavnik

BP - Osnovni pojmovi 53 / 66
Logička struktura obeležja
• Primer
– nivo detaljnosti obeležja

Radnik

MBR IME PRZ GRD

Zgrada Smešten Radi Preduzeće


Nalazi se
SZG ADR BRS SPR NRO DEL

BP - Osnovni pojmovi 54 / 66
Logička struktura obeležja
• Primer
– nivo detaljnosti obeležja
Semestar
PrSif StSif

PrNaz Predmet Pohađa Student StPrz

Datum Povera Ispit

Ocena
Nastavnik NasSif

NasPrz
BP - Osnovni pojmovi 55 / 66
Sadržaj
• Realni sistem i informacioni sistem
• Entitet i poveznik
• Obeležje, domen i podatak
• Tip entiteta i pojava tipa entiteta
• Tip poveznika i pojava tipa poveznika
• Strukture podataka
• Logička struktura obeležja
• Logička struktura podataka
• Fizička struktura podataka

BP - Osnovni pojmovi 56 / 66
Logička struktura podataka
• Logička struktura podataka (LSP)
– definiše se nad skupom podataka, putem posebne
relacije
– definiše se u granicama zadate LSO
– LSO predstavlja kontekst (model) za LSP

• ŠEMA logičke strukture podataka


– LSO nad kojom je definisana LSP

BP - Osnovni pojmovi 57 / 66
Logička struktura podataka
• Pojava TE
– kontekstna LSO
• linearna struktura skupa obeležja datog TE - TIP SLOGA
– linearna struktura nad skupom podataka jednog
entiteta, datog tipa - N-TORKA, SLOG
– složeni podatak, nad složenim obeležjem, dobijenim
na osnovu skupa obeležja TE Q

BP - Osnovni pojmovi 58 / 66
Logička struktura podataka
• Datoteka
– kontekstna LSO
• linearna struktura skupa obeležja datog TE - TIP SLOGA
– struktura podataka nad skupom pojava jednog TE

• Baza podataka
– kontekstna LSO
• struktura nad skupom TE - ŠEMA BAZE PODATAKA
– logička struktura nad skupom pojava skupa TE

BP - Osnovni pojmovi 59 / 66
Reprezentacije LSP
• Načini vizuelne, a i memorijske (fizičke)
reprezentacije logičkih struktura podataka
– putem grafova
– putem tabela

BP - Osnovni pojmovi 60 / 66
Reprezentacija LSP putem grafa

S1 159 Ivo Ban 1940 R1


S2 R2
081 Eva Pap 1948
S3 013 Ana Ras 1962 R3

023 Orac. BP
003 Rad. Građ.
N1
013 Sped. Trans.

N2 N3
113 Balzakova 44 8
015 Tolstojeva 1 4
003 Puškinova 8 3
013 Andrićeva 13 8

BP - Osnovni pojmovi 61 / 66
Reprezentacija LSP putem tabela
Radnik Zgrada
MBR IME PRZ GRD SZG ADR BRS
159 Ivo Ban 1940 003 Puškinova 8 3
081 Eva Pap 1948 013 Andrićeva 13 8
013 Ana Ras 1962 015 Tolstojeva 1 4
113 Balzakova 44 8
Preduzeće
SPR NRO DEL
03 Rad. Građ. Zaposlen Nalazi_se Stanuje
13 Sped. Trans. MBR SPR SPR SZG MBR SZG
23 Orac. BP 159 23 03 013 159 003
081 23 13 013 081 113
013 03 23 015 013 113

BP - Osnovni pojmovi 62 / 66
Sadržaj
• Realni sistem i informacioni sistem
• Entitet i poveznik
• Obeležje, domen i podatak
• Tip entiteta i pojava tipa entiteta
• Tip poveznika i pojava tipa poveznika
• Strukture podataka
• Logička struktura obeležja
• Logička struktura podataka
• Fizička struktura podataka

BP - Osnovni pojmovi 63 / 66
Fizička struktura podataka
• Fizička struktura podataka (FSP)
– logička struktura podataka, smeštena na materijalni
nosilac podataka - memorijski medijum
– uključuje podatke o samom načinu smeštanja LSP na
memorijski medijum
– zahteva izbor pristupa i postupaka za:
• upravljanje slobodnim i zauzetim memorijskim prostorom
• izbor lokacija za smeštanje podataka
• kodiranje podataka
• formatiranje i interpretaciju sadržaja lokacija
• memorisanje veza u strukturi podataka
• kreiranje fizičke strukture podataka
• pristupanje podacima i njihovo selektovanje
• ažuriranje i reorganizovanje strukture podataka
BP - Osnovni pojmovi 64 / 66
Sadržaj
• Realni sistem i informacioni sistem
• Entitet i poveznik
• Obeležje, domen i podatak
• Tip entiteta i pojava tipa entiteta
• Tip poveznika i pojava tipa poveznika
• Strukture podataka
• Logička struktura obeležja
• Logička struktura podataka
• Fizička struktura podataka

BP - Osnovni pojmovi 65 / 66
Pitanja i komentari

?
BP - Osnovni pojmovi 66 / 66
Baze podataka

Osnovni pojmovi

Strukture podataka

BP - Osnovni pojmovi
Baze podataka

Koncepcija baze podataka

Istorijat razvoja postupaka za


upravljanje podacima

BP – Koncepcija BP
Sadržaj
• Motivacija
• Klasična organizacija datoteka
• Baze podataka i SUBP
• Šema baze podataka
• Podšema / Eksterna šema
• Pogled
• Sistemi baza podataka

BP – Koncepcija BP 2 / 45
Motivacija
• Vrednost svakog sistema, pa i sistema baza
podataka, najbolje se shvata
– ne samo na osnovu poznavanja samog sistema
– već na osnovu činjenice da taj sistem predstavlja
korak u evoluciji rešavanja onih problema, koje
prethodni sistemi nisu mogli da reše
• Da bi se stekla precizna slika o bazama
podataka
– nije dovoljno samo definisati pojam baze podataka
– potrebno je prvo baze podataka sagledati u kontekstu
njihovog istorijskog razvoja

BP – Koncepcija BP 3 / 45
Sadržaj
• Motivacija
• Klasična organizacija datoteka
• Baze podataka i SUBP
• Šema baze podataka
• Podšema / Eksterna šema
• Pogled
• Sistemi baza podataka

BP – Koncepcija BP 4 / 45
Klasična organizacija datoteka
• Najstarije rešenje
– IS "na karticama", bez podrške računara
• medijum za trajno memorisanje struktura podataka - papir
• Naprednije rešenje
– IS organizovani nad sistemima datoteka
• medijum za trajno memorisanje struktura podataka – sistem
diskova
– IS je sačinjavao skup nezavisnih aplikacija
• svaka aplikacija - sopstvene datoteke
• “skladište podataka” - skup datoteka
• podaci o istom entitetu u različitim datotekama
• vremenom, takav IS dolazi u kontradikciju sa samim sobom

BP – Koncepcija BP 5 / 45
Klasična organizacija datoteka

APLIKACIJA #1 APLIKACIJA #2 APLIKACIJA #n

BP – Koncepcija BP 6 / 45
Klasična organizacija datoteka
• Osnovni nedostaci
– nepovezanost aplikacija
• potreba ručnog prepisivanja istih ili sličnih podataka
– redundantnost podataka
• potreba višestrukog memorisanja istih ili sličnih podataka
– čvrsta povezanost programa i podataka
• program vodi računa o FSP datoteke, kako u opisu, tako i u
proceduri
• Posledice
– otežano održavanje IS-a
– otežan dalji razvoj IS-a

BP – Koncepcija BP 7 / 45
Klasična organizacija datoteka
• Primer - nepovezanost i redundantnost

APLIKACIJA #1 APLIKACIJA #2 APLIKACIJA #n

Kurs Stud Kurs Stud Kat Kurs Stud Fak

13 Nikola 10 13 Nina 15 13 Niki 12


SID Ime BPI StID StIme StBPI BRI Ime BPI

BP – Koncepcija BP 8 / 45
Klasična organizacija datoteka
• Čvrsta povezanost programa i podataka

Poželjna
rasuta Program #2
Poželjna
organizacija
sekvencijalna
organizacija

Program #1 Program #3
Stud Kurs

Poželjna
invertovana
Program #4
organizacija
APLIKACIJA #1

BP – Koncepcija BP 9 / 45
Klasična organizacija datoteka
IDENTIFICATION DIVISION.

• Čvrsta povezanost – primer COBOL


PROGRAM-ID. Seq2Rel.
AUTHOR. MC

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SupplierFile ASSIGN TO "RELSUPP.DAT"
ORGANIZATION IS RELATIVE

IDENTIFICATION DIVISION. ACCESS MODE IS RANDOM


RELATIVE KEY IS SupplierKey
FILE STATUS IS Supplierstatus.

PROGRAM-ID. Seq2Rel. SELECT SupplierFileSeq ASSIGN TO "SEQSUPP.DAT"


ORGANIZATION IS LINE SEQUENTIAL.

AUTHOR. MC DATA DIVISION.


FILE SECTION.

FD SupplierFile.
01 SupplierRecord.
02 SupplierCode PIC 99.
02 SupplierName PIC X(20).
02 SupplierAddress PIC X(50).

FD SupplierFileSeq.
01 SupplierRecordSeq.
88 EndOfFile VALUE HIGH-VALUES.
02 SupplierCodeSeq PIC 99.
02 SupplierNameSeq PIC X(20).
02 SupplierAddressSeq PIC X(50).

WORKING-STORAGE SECTION.
01 SupplierStatus PIC X(2).

01 SupplierKey PIC 99.

PROCEDURE DIVISION.
Begin.
OPEN OUTPUT SupplierFile.
OPEN INPUT SupplierFileSeq.

READ SupplierFileSeq
AT END SET EndOfFile TO TRUE
END-READ
PERFORM UNTIL EndOfFile
MOVE SupplierCodeSeq TO SupplierKey
MOVE SupplierRecordSeq TO SupplierRecord
WRITE SupplierRecord
INVALID KEY DISPLAY "Supplier status = " SupplierStatus
END-WRITE
READ SupplierFileSeq
AT END SET EndOfFile TO TRUE
END-READ
END-PERFORM.

CLOSE SupplierFile, SupplierFileSeq.


STOP RUN.

BP – Koncepcija BP 10 / 45
Klasična organizacija datoteka
IDENTIFICATION DIVISION.

• Čvrsta povezanost – primer COBOL


PROGRAM-ID. Seq2Rel.
AUTHOR. MC

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SupplierFile ASSIGN TO "RELSUPP.DAT"
ORGANIZATION IS RELATIVE

ENVIRONMENT DIVISION. ACCESS MODE IS RANDOM


RELATIVE KEY IS SupplierKey
FILE STATUS IS Supplierstatus.

INPUT-OUTPUT SECTION. SELECT SupplierFileSeq ASSIGN TO "SEQSUPP.DAT"


ORGANIZATION IS LINE SEQUENTIAL.

DATA DIVISION.

FILE-CONTROL. FILE SECTION.

FD SupplierFile.
01 SupplierRecord.

SELECT SupplierFile ASSIGN TO "RELSUPP.DAT"


02 SupplierCode
02 SupplierName
02 SupplierAddress
PIC 99.
PIC X(20).
PIC X(50).

ORGANIZATION IS RELATIVE FD SupplierFileSeq.


01 SupplierRecordSeq.
88 EndOfFile VALUE HIGH-VALUES.

ACCESS MODE IS RANDOM 02 SupplierCodeSeq


02 SupplierNameSeq
PIC 99.
PIC X(20).
02 SupplierAddressSeq PIC X(50).

RELATIVE KEY IS SupplierKey WORKING-STORAGE SECTION.


01 SupplierStatus PIC X(2).

FILE STATUS IS Supplierstatus. 01 SupplierKey

PROCEDURE DIVISION.
PIC 99.

Begin.
OPEN OUTPUT SupplierFile.
OPEN INPUT SupplierFileSeq.

READ SupplierFileSeq

SELECT SupplierFileSeq ASSIGN TO AT END SET EndOfFile TO TRUE


END-READ
PERFORM UNTIL EndOfFile

"SEQSUPP.DAT" MOVE SupplierCodeSeq TO SupplierKey


MOVE SupplierRecordSeq TO SupplierRecord
WRITE SupplierRecord
INVALID KEY DISPLAY "Supplier status = " SupplierStatus

ORGANIZATION IS LINE SEQUENTIAL. END-WRITE


READ SupplierFileSeq
AT END SET EndOfFile TO TRUE
END-READ
END-PERFORM.

CLOSE SupplierFile, SupplierFileSeq.


STOP RUN.

BP – Koncepcija BP 11 / 45
Klasična organizacija datoteka
IDENTIFICATION DIVISION.

• Čvrsta povezanost – primer COBOL


PROGRAM-ID. Seq2Rel.
AUTHOR. MC

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.

DATA DIVISION.
FILE-CONTROL.
SELECT SupplierFile ASSIGN TO "RELSUPP.DAT"
ORGANIZATION IS RELATIVE
ACCESS MODE IS RANDOM

FILE SECTION.
RELATIVE KEY IS SupplierKey
FILE STATUS IS Supplierstatus.

SELECT SupplierFileSeq ASSIGN TO "SEQSUPP.DAT"

FD SupplierFile.
ORGANIZATION IS LINE SEQUENTIAL.

DATA DIVISION.
FILE SECTION.

01 SupplierRecord. FD SupplierFile.
01 SupplierRecord.
02 SupplierCode PIC 99.

02 SupplierCode PIC 99.


02 SupplierName PIC X(20).
02 SupplierAddress PIC X(50).

02 SupplierName PIC X(20).


FD SupplierFileSeq.
01 SupplierRecordSeq.
88 EndOfFile VALUE HIGH-VALUES.
02 SupplierCodeSeq PIC 99.

02 SupplierAddress PIC X(50).


02 SupplierNameSeq PIC X(20).
02 SupplierAddressSeq PIC X(50).

WORKING-STORAGE SECTION.
01 SupplierStatus PIC X(2).

FD SupplierFileSeq. 01 SupplierKey

PROCEDURE DIVISION.
PIC 99.

Begin.

01 SupplierRecordSeq. OPEN OUTPUT SupplierFile.


OPEN INPUT SupplierFileSeq.

READ SupplierFileSeq

88 EndOfFile VALUE HIGH-VALUES. AT END SET EndOfFile TO TRUE


END-READ
PERFORM UNTIL EndOfFile
MOVE SupplierCodeSeq TO SupplierKey

02 SupplierCodeSeq PIC 99. MOVE SupplierRecordSeq TO SupplierRecord


WRITE SupplierRecord
INVALID KEY DISPLAY "Supplier status = " SupplierStatus
END-WRITE

02 SupplierNameSeq PIC X(20). READ SupplierFileSeq


AT END SET EndOfFile TO TRUE
END-READ
END-PERFORM.

02 SupplierAddressSeq PIC X(50). CLOSE SupplierFile, SupplierFileSeq.


STOP RUN.

BP – Koncepcija BP 12 / 45
Klasična organizacija datoteka
IDENTIFICATION DIVISION.

• Čvrsta povezanost – primer COBOL


PROGRAM-ID. Seq2Rel.
AUTHOR. MC

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SupplierFile ASSIGN TO "RELSUPP.DAT"

WORKING-STORAGE SECTION. ORGANIZATION IS RELATIVE


ACCESS MODE IS RANDOM
RELATIVE KEY IS SupplierKey
FILE STATUS IS Supplierstatus.

01 SupplierStatus PIC X(2). SELECT SupplierFileSeq ASSIGN TO "SEQSUPP.DAT"


ORGANIZATION IS LINE SEQUENTIAL.

DATA DIVISION.
FILE SECTION.

FD SupplierFile.

01 SupplierKey PIC 99. 01 SupplierRecord.


02 SupplierCode
02 SupplierName
PIC 99.
PIC X(20).
02 SupplierAddress PIC X(50).

FD SupplierFileSeq.
01 SupplierRecordSeq.
88 EndOfFile VALUE HIGH-VALUES.
02 SupplierCodeSeq PIC 99.
02 SupplierNameSeq PIC X(20).
02 SupplierAddressSeq PIC X(50).

WORKING-STORAGE SECTION.
01 SupplierStatus PIC X(2).

01 SupplierKey PIC 99.

PROCEDURE DIVISION.
Begin.
OPEN OUTPUT SupplierFile.
OPEN INPUT SupplierFileSeq.

READ SupplierFileSeq
AT END SET EndOfFile TO TRUE
END-READ
PERFORM UNTIL EndOfFile
MOVE SupplierCodeSeq TO SupplierKey
MOVE SupplierRecordSeq TO SupplierRecord
WRITE SupplierRecord
INVALID KEY DISPLAY "Supplier status = " SupplierStatus
END-WRITE
READ SupplierFileSeq
AT END SET EndOfFile TO TRUE
END-READ
END-PERFORM.

CLOSE SupplierFile, SupplierFileSeq.


STOP RUN.

BP – Koncepcija BP 13 / 45
Klasična organizacija datoteka
IDENTIFICATION DIVISION.

• Čvrsta povezanost – primer COBOL


PROGRAM-ID. Seq2Rel.
AUTHOR. MC

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
PROCEDURE DIVISION. SELECT SupplierFile ASSIGN TO "RELSUPP.DAT"
ORGANIZATION IS RELATIVE
BEGIN. ACCESS MODE IS RANDOM
RELATIVE KEY IS SupplierKey
FILE STATUS IS Supplierstatus.
OPEN OUTPUT SupplierFile.
SELECT SupplierFileSeq ASSIGN TO "SEQSUPP.DAT"
OPEN INPUT SupplierFileSeq. ORGANIZATION IS LINE SEQUENTIAL.

DATA DIVISION.
FILE SECTION.

FD SupplierFile.
READ SupplierFileSeq 01 SupplierRecord.
02 SupplierCode PIC 99.
AT END SET EndOfFile TO TRUE 02 SupplierName
02 SupplierAddress
PIC X(20).
PIC X(50).

END-READ
FD SupplierFileSeq.
PERFORM UNTIL EndOfFile 01 SupplierRecordSeq.
88 EndOfFile VALUE HIGH-VALUES.
02 SupplierCodeSeq PIC 99.
MOVE SupplierCodeSeq TO SupplierKey 02 SupplierNameSeq PIC X(20).
02 SupplierAddressSeq PIC X(50).

MOVE SupplierRecordSeq TO SupplierRecord


WORKING-STORAGE SECTION.
WRITE SupplierRecord 01 SupplierStatus PIC X(2).

01 SupplierKey PIC 99.


INVALID KEY DISPLAY "Supplier status = " SupplierStatus
PROCEDURE DIVISION.
END-WRITE Begin.
OPEN OUTPUT SupplierFile.
OPEN INPUT SupplierFileSeq.
READ SupplierFileSeq READ SupplierFileSeq
AT END SET EndOfFile TO TRUE
AT END SET EndOfFile TO TRUE END-READ
PERFORM UNTIL EndOfFile
END-READ MOVE SupplierCodeSeq TO SupplierKey
MOVE SupplierRecordSeq TO SupplierRecord
WRITE SupplierRecord
END-PERFORM. INVALID KEY DISPLAY "Supplier status = " SupplierStatus
END-WRITE
READ SupplierFileSeq
AT END SET EndOfFile TO TRUE
END-READ
CLOSE SupplierFile, SupplierFileSeq. END-PERFORM.

CLOSE SupplierFile, SupplierFileSeq.


STOP RUN. STOP RUN.

BP – Koncepcija BP 14 / 45
Klasična organizacija datoteka
• Čvrsta povezanost – primer COBOL

SELECT STUDENT ASSIGN TO “STUD.DAT"


ORGANIZATION IS INDEXED
ACCESS MODE IS RANDOM
RECORD KEY IS BRI
ALTERNATE RECORD KEY IS PREZIME
WITH DUPLICATES
FILE STATUS IS StudStatus.

BP – Koncepcija BP 15 / 45
Klasična organizacija datoteka
• Problemi koji se mogu ublažiti, ili čak razrešiti u
klasičnoj organizaciji
– nepovezanost aplikacija
– redundantnost
• Problem koji je gotovo nemoguće ublažiti ili
razrešiti u klasičnoj organizaciji
– čvrsta povezanost programa i podataka

BP – Koncepcija BP 16 / 45
Klasična organizacija datoteka

APLIKACIJA #1 APLIKACIJA #2 APLIKACIJA #n

APLIKACIJA #3

BP – Koncepcija BP 17 / 45
Sadržaj
• Motivacija
• Klasična organizacija datoteka
• Baze podataka i SUBP
• Šema baze podataka
• Podšema / Eksterna šema
• Pogled
• Sistemi baza podataka

BP – Koncepcija BP 18 / 45
Baze podataka i SUBP
• Osnovne ideje:
– da se svi podaci jednog IS integrišu u jednu veliku
“datoteku”
• nastanak pojma baze podataka
– nereduntantno memorisanje podataka
• izbegavanje nepotrebnog višestrukog memorisanja istih ili
sličnih podataka
– da se uvede poseban softverski proizvod za podršku
kreiranja i korišćenja baze podataka
• sistem za upravljanje bazama podataka (SUBP)
• da svi programi koriste podatke iz baze podataka, ili je
ažuriraju koristeći isključivo usluge SUBP

BP – Koncepcija BP 19 / 45
Baze podataka i SUBP

APLIKACIJA #1 APLIKACIJA #2

BP

APLIKACIJA #3

APLIKACIJA #n

BP – Koncepcija BP 20 / 45
Baze podataka i SUBP
• Sistem za upravljanje bazama podataka
(SUBP)
• Database Management System (DBMS)
– softverski proizvod, namenjen da omogući izgradnju i
korišćenje baza podataka
– Sadrži:
• jezik za opis podataka
– Data Definition Language - DDL
• jezik za manipulisanje podacima
– Data Manipulation Language - DML
• upitni jezik
– Query Language - QL

BP – Koncepcija BP 21 / 45
Baze podataka i SUBP
• Jezgro SUBP
– obezbeđenje fizičke organizacije podataka
– rutine za upravljanje podacima
– zaštita od neovlašćenog pristupa i od uništenja
– obezbeđenje višekorisničkog režima rada
– obezbeđenje distribuirane organizacije BP
– obezbeđenje zadavanja šeme baze podataka
• nad skupom obeležja ranijih datoteka formira se struktura
šeme BP
• nad šemom BP se kreira, koristi i ažurira baza podataka

BP – Koncepcija BP 22 / 45
Sadržaj
• Motivacija
• Klasična organizacija datoteka
• Baze podataka i SUBP
• Šema baze podataka
• Podšema / Eksterna šema
• Pogled
• Sistemi baza podataka

BP – Koncepcija BP 23 / 45
Šema baze podataka
• Program koji koristi usluge SUBP
– poznaje samo šemu BP, kao logičku kategoriju
– nad šemom BP, koristi logičku strukturu podataka
(LSP), saglasno konkretnom zadatku
– ne sme da vodi računa o fizičkoj srtukturi podataka
(FSP)
• koja, po pravilu, može biti veoma kompleksna
• Preslikavanje LSP  FSP - zadatak SUBP
– primeri potreba različitih programa za istim podacima
• pristup saglasno rastućim vrednostima primarnog ključa
• pristup saglasno vrednostima sekundarnog ključa
• direktni pristup, saglasno zadatoj vrednosti primarnog ključa

BP – Koncepcija BP 24 / 45
Šema baze podataka

Program #1 Š
E BAZA
Program #2
M PODATAKA
A
Program #n

BP – Koncepcija BP 25 / 45
Šema baze podataka
• Efekti uvođenja koncepta šeme baze podataka
– smanjenje zavisnosti programa i šeme BP od
promena FSP
– smanjenje redundantnosti
• povećanje konzistentnosti podataka
– uvođenje uloga
• projektant baze podataka (šeme i FSP)
• administrator baze podataka (DBA)

BP – Koncepcija BP 26 / 45
Sadržaj
• Motivacija
• Klasična organizacija datoteka
• Baze podataka i SUBP
• Šema baze podataka
• Podšema / Eksterna šema
• Pogled
• Sistemi baza podataka

BP – Koncepcija BP 27 / 45
Podšema / Eksterna šema
• Šema BP je, po pravilu,
– kompleksna
– podložna češćim modifikacijama
• Motivacija
– promene šeme BP mogu izazivati česte i nepotrebne
promene postojećih programa
• kada bi program direktno koristio koncepte šeme BP
– posledica: otežano održavanje softverske podrške IS
• Rešenje
– uvođenje novog koncepta i novog sloja - podšema

BP – Koncepcija BP 28 / 45
Podšema / Eksterna šema
• Podšema ili eksterna šema
– logička struktura obeležja (LSO), dobijena na osnovu
dela šeme BP
• potrebna i dovoljna za realizaciju zadataka jednog, ili grupe
sličnih transakcionih programa
– sličnih sa stanovišta modelovanih procesa poslovanja i
korisničkih zahteva
– model dela BP realnog sistema
• za razliku od šeme BP koja predstavlja model cele BP
realnog sistema
– projektuje se, kao i šema BP, u procesu razvoja IS
• treba da egzistira kao projektantska specifikacija
– poželjna takva organizacija transakcionih programa
• da koriste BP isključivo putem podšema
BP – Koncepcija BP 29 / 45
Podšema / Eksterna šema
• Preslikavanje Podšema  Šema BP
– moguće i poželjno da bude zadatak SUBP
– SUBP prevodi
• zahtev programa, definisan s obzirom na koncepte podšeme,
u zahtev definisan s obzirom na koncepte šeme BP
• podatke strukturirane s obzirom na koncepte šeme BP u
podatke strukturirane s obzirom na koncepte podšeme i
obratno
– alternativno, to može biti delimično ili u celosti
zadatak samog transakcionog programa
• danas, često, onog dela transakcionog programa koji
upravlja logičkim strukturama podataka
– nalazi se u višenivoovskim arhitekturama na tzv. "srednjem"
sloju – sloju aplikativne logike

BP – Koncepcija BP 30 / 45
Podšema / Eksterna šema

Logička nezavisnost Fička nezavisnost

Program #1
Podšema 1
SUBP Š
Program #2
Baza
E
Podataka
Program #3 Podšema 2 SUBP
SUBP M

A
Program #4 Podšema 3
SUBP

BP – Koncepcija BP 31 / 45
Podšema / Eksterna šema
• Efekat uvođenja koncepta podšeme
– logička nezavisnost programa od podataka
• promene šeme ne izazivaju promene podšeme i programa
• Efekat uvođenja koncepta šeme BP
– fizička nezavisnost programa od podataka
• promene FSP ne izazivaju promene šeme, podšeme i
programa

• Fizička i logička nezavisnost su uslovne, a ne


apsolutne kategorije!

BP – Koncepcija BP 32 / 45
Podšema / Eksterna šema
• Primer male šeme BP u mrežnom modelu
podataka

Student
BRI IME PRZ BPI STA

Pohađa Stanuje
Fakultet Stan
NAF BRS BST ADR KST

BP – Koncepcija BP 33 / 45
Podšema / Eksterna šema

PODŠEMA #1
Student_Fakultet

BRI IME PRZ BPI NAF

PODEŠEMA #2
Student
BRI IME PRZ STA

Stanuje
Stan
ADR KST

BP – Koncepcija BP 34 / 45
Sadržaj
• Motivacija
• Klasična organizacija datoteka
• Baze podataka i SUBP
• Šema baze podataka
• Podšema / Eksterna šema
• Pogled
• Sistemi baza podataka

BP – Koncepcija BP 35 / 45
Pogled
• Šema i podšema
– modeli na nivou apstrakcije obeležja
• Globalni pogled i pogled
– modeli na nivou apstrakcije podataka
• Pogled
– pojava (LSP) nad podšemom
– slika dela BP kako je vidi programer, ili korisnik
• Globalni pogled
– pojava (LSP) nad šemom BP – baza podataka
– slika stanja modelovanog dela sistema

BP – Koncepcija BP 36 / 45
Globalni pogled

159 IVO BAN 11 SF


213 EVA KON 7 BU
215 ANA RAS 9 SF

PMF 9 200 Trg Slobode 1 5

FTN 10 1500 Petefijeva 8 3

DIF 9 400 Rakićeva 1 4

BP – Koncepcija BP 37 / 45
Pogled

Program #n

PODŠEMA #1
Student_Fakultet

BRI IME PRZ BPI NAF

159 IVO BAN 11 FTN


213 EVA KON 7 PMF
215 ANA RAS 9 PMF

BP – Koncepcija BP 38 / 45
Pogled

PODEŠEMA #2
Student
Program #n BRI IME PRZ STA

Stanuje
Stan
159 Ivo Ban SF ADR KST
213 Eva Kon BU
215 Ana Pap SF

Trg Slobode 1 5
Petefijeva 8 3
Rakićeva 1 4
BP – Koncepcija BP 39 / 45
Sadržaj
• Motivacija
• Klasična organizacija datoteka
• Baze podataka i SUBP
• Šema baze podataka
• Podšema / Eksterna šema
• Pogled
• Sistemi baza podataka

BP – Koncepcija BP 40 / 45
Sistemi baza podataka
• Sistem baze podataka
– obuhvata
• bazu podataka
• SUBP, sistemski softver i računare (servere) na kojima je BP
kreirana
• šemu baze podataka, implementiranu na SUBP
• jezike i operacije za kreiranje, ažuriranje i korišćenje BP

BP – Koncepcija BP 41 / 45
Sistemi baza podataka
• Istorijat tehnološkog razvoja

- Asemb. jezici - 3GL - 3GL - 4GL


- Maš. jezici - HW – II gen. - HW – III gen. - HW – IV gen. - HW -  V
- HW – I gen. - OS – I gen. - OS – II gen. - OS – III gen. - OS -  IV
- Ekst.mem.(sek.) - Ekst.mem.(dir.)
- Sist. za upravlj.
- U/I rutine – fiz.UI - U/I podsistem -SUBP
datotekama
- Metode pristupa -CASE
Napor potreban za (usl. niskog i vis.
pisanje dela programa nivoa)
posvećenog upravljanju podacima

Mogućnost
trajnog arhiviranja
Operativna upotreba
podataka Nezavisnost od
perzist. podataka
Nezavis. od uređaja fizičke strukture
i organizac. datoteka

BP – Koncepcija BP 42 / 45
Sistemi baza podataka
• Rezime
– opisane karakteristike sistema BP predstavljaju
ciljeve kojima treba težiti
– u kojoj meri će ti ciljevi biti ostvareni, zavisi od
• projektanta BP
– kvalitet / znanje raspoloživih ljudskih resursa
• izabranih koncepata, metoda i tehnika projektovanja
– kvalitet procesa razvoja sistema
• karakteristika SUBP
– kvalitet primenjenih informacionih tehnologija
– razvoj postupaka za organizovanje i upravljanje
podacima vodi ka:
• povećanju produktivnosti razvojnog tima
• izgradnji integrisanih IS
BP – Koncepcija BP 43 / 45
Sadržaj
• Motivacija
• Klasična organizacija datoteka
• Baze podataka i SUBP
• Šema baze podataka
• Podšema / Eksterna šema
• Pogled
• Sistemi baza podataka

BP – Koncepcija BP 44 / 45
Pitanja i komentari

?
BP – Koncepcija BP 45 / 45
Baze podataka

Koncepcija baze podataka

Istorijat razvoja postupaka za


upravljanje podacima

BP – Koncepcija BP
Baze podataka

Modeli podataka

Specifikacija šeme baze podataka

BP – Modeli podataka
Sadržaj
• Pojam modela podataka
• Strukturalna komponenta MP
• Integritetna komponenta MP
• Operacijska komponenta MP
• Modeli podataka

BP – Modeli podataka 2 / 36
Model podataka
• Model podataka (MP)
– matematička apstrakcija
– putem koje se gradi
• šema baze podataka, koja treba da predstavlja
– model baze podataka informacionog sistema
– pogled na strukture (model) posmatranog dela realnog sistema
– služi za predstavljanje
• logičkih struktura obeležja (LSO) realnog sistema
• ograničenja u odnosima između podataka o stanjima realnog
sistema
• dinamike izmene stanja realnog sistema, putem operacija
nad podacima

BP – Modeli podataka 3 / 36
Model podataka
• Model podataka (MP)
– trojka
(S, I, O)
– S - strukturalna komponenta
• omogućava modeliranje LSO, kao statičke strukture – šeme
BP
– I - integritetna komponenta
• omogućava modeliranje ograničenja nad podacima u BP
– O - operacijska komponenta
• modeliranje dinamike izmene stanja
– podataka u BP i
– same šeme BP

BP – Modeli podataka 4 / 36
Model podataka
• Nivoi apstrakcije
– određeni modelom podataka
– nivo intenzije (konteksta)
• nivo tipa
– npr. nivo logičke strukture obeležja - šeme
– nivo ekstenzije (konkretizacije)
• nivo pojave tipa
– npr. nivo logičke strukture podataka
– Primer 1:
• nivo intenzije: tip entiteta N
• nivo ekstenzije: skup pojava tipa entiteta SP(N)
– Primer 2:
• nivo intenzije: tip entiteta
• nivo ekstenzije: tip entiteta N
BP – Modeli podataka 5 / 36
Model podataka

Deo realnog sveta Apstraktna predstava

RADNIK
MBR IME PRZ ZAN

Model realnog sveta Apstraktna predstava


RADNIK PROJEKAT

MBR IME PRZ ZAN


Tip entiteta N(Q, C)

RADNO MESTO

BP – Modeli podataka 6 / 36
Model podataka
• Nivoi apstrakcije
– u oblasti modelovanja sistema pa i sistema BP,
• prema Unified Modeling Language (UML)
Koncept tipa i
pojave (nečega)
Meta Level 3
Nivo tipova, pojava i MOF
Pojava konkretnog
tipa entiteta N, p(N)
Meta Level 2
Nivo koncepata i MP

Koncept Meta Level 1


tip entiteta Nivo LSO i šeme BP

Meta Level 0
Konkretni Nivo LSP i FSP, BP
tip entiteta N

BP – Modeli podataka 7 / 36
Sadržaj
• Pojam modela podataka
• Strukturalna komponenta MP
• Integritetna komponenta MP
• Operacijska komponenta MP
• Modeli podataka

BP – Modeli podataka 8 / 36
Strukturalna komponenta MP
• Koncept
– apstraktna (i formalna) predstava jedne klase
pojmova
• kojima se modeluju delovi realnog sveta
• Primitivni (atomični) koncept
– uvodi se i postoji "per se"
• percipira se njegova semantika u realnom svetu
– ne može se dalje dekomponovati na koncepte nižeg
reda
• primitivni pojam, za koji najčešće nije moguće uvesti
formalnu definiciju

BP – Modeli podataka 9 / 36
Strukturalna komponenta MP
• Strukturalna komponenta sadrži
– skup primitivnih koncepata
• sa skupom datih osobina svakog koncepta,
• skupom pravila (definicija i šablona) za njihovo korišćenje i
• opisanom mogućom semantikom
– skup formalnih pravila za kreiranje složenih
koncepata
• polazeći od primitivnih koncepata ili prethodno definisanih
složenih koncepata
• omogućava proširivanje inicijalno definisanog MP
– skup unapred kreiranih složenih koncepata
• sa skupom datih osobina svakog koncepta,
• skupom pravila (definicija i šablona) za njihovo korišćenje i
• opisanom mogućom semantikom
BP – Modeli podataka 10 / 36
Strukturalna komponenta MP
• Skup primitivnih i složenih koncepata jednog MP
– za opis LSO (nivo intenzije) i LSP (nivo ekstenzije)

Nivo intenzije Nivo ekstenzije


• Domen • Vrednost
• Obeležje • Podatak
• Tip entiteta • Pojava tipa entiteta
• Tip poveznika • Pojava tipa povez.
• Šema BP • Baza podataka

BP – Modeli podataka 11 / 36
Strukturalna komponenta MP
• Primer pravila za izgradnju složenih koncepata
– tip poveznika
• formira se korišćenjem koncepata
– tip entiteta
– niz tipova
– rekurzivna struktura
– skup obeležja
– skup ograničenja
– naziv tipa
• i pravila
– N(N1,..., Nm, Q, C)
• sa mogućom semantikom
– tip poveznika služi da modeluje veze između klasa realnih
entiteta ili prethodno uspostavljenih poveznika

BP – Modeli podataka 12 / 36
Sadržaj
• Pojam modela podataka
• Strukturalna komponenta MP
• Integritetna komponenta MP
• Operacijska komponenta MP
• Modeli podataka

BP – Modeli podataka 13 / 36
Integritetna komponenta MP
• Integritetna komponenta sadrži
– skup tipova ograničenja (uslova integriteta) sa
• skupom datih osobina svakog tipa ograničenja, koje uključuju
pravila
– formalnog specificiranja i
– interpretacije (validacije, provere zadovoljenja)
• skupom pravila (definicija i šablona) za njihovo korišćenje i
• opisanom mogućom semantikom
– skup formalnih pravila za izvođenje zaključaka o
važenju ograničenja (modus ponens)
– skup formalnih pravila za kreiranje novih tipova
ograničenja
• polazeći od poznatih koncepata
• omogućava proširivanje inicijalno definisanog MP
BP – Modeli podataka 14 / 36
Integritetna komponenta MP
• Pomoću tipova ograničenja iskazuju se
konkretna ograničenja koja se odnose na
– moguće vrednosti obeležja (podataka) ili
– moguće odnose između pojava povezanih tipova
• Primeri
– ograničenje ključa (integritet entiteta)
• Radnik({MBR, PRZ, IME, JMBG}, {MBR, JMBG})
– ograničenje domena
• Dom(OCENA) ::= {d  ℕ d  5  d  10}
– Kardinalitet tipa poveznika
• jedan nastavnik može predavati najviše jedan predmet
• student iz jednog predmeta ima najviše jednu ocenu

BP – Modeli podataka 15 / 36
Integritetna komponenta MP
• Validacija ograničenja – provera važenja
ograničenja
– može se ugraditi u
• transakcione programe, ili
• specifikaciju šeme baze podataka, sa implementacijom u
okviru SUBP
– tako da SUBP vrši automatsku proveru zadovoljenja
– Rešenje kojem se može težiti
• sva ograničenja podataka ugraditi u šemu BP i prepustiti
proveru SUBP-u
• pojedina ograničenja ugraditi i u transakcione programe
– u cilju poboljšanja udobnosti rada korisnika
– kada je UI transakcionog programa sposoban da "trenutno"
odreaguje na pokušaj narušavanja ograničenja

BP – Modeli podataka 16 / 36
Sadržaj
• Pojam modela podataka
• Strukturalna komponenta MP
• Integritetna komponenta MP
• Operacijska komponenta MP
• Modeli podataka

BP – Modeli podataka 17 / 36
Operacijska komponenta MP
• Operacijska komponenta
– modeliranje dinamike izmene stanja u sistemu BP
– skup tipova operacija sa
• skupom datih osobina svakog tipa operacije, koje uključuju
pravila
– formalnog specificiranja i
– izvršenja nad podacima
• skupom pravila (definicija i šablona) za njihovo korišćenje i
• opisanom mogućom semantikom

– definiše
• upitni jezik / jezike
• jezik / jezike za manipulisanje podacima i
• jezik / jezike za definiciju podataka
BP – Modeli podataka 18 / 36
Operacijska komponenta MP
• Upitni jezik
– Query Language (QL)
– tipovi operacija za iskazivanje upita (selekcije
podataka) nad BP
• Jezik za manipulisanje podacima
– Data Manipulation Language (DML)
– tipovi operacija za izmenu stanja BP (ažuriranje)
• u cilju praćenja izmena stanja podataka u realnom sistemu

BP – Modeli podataka 19 / 36
Operacijska komponenta MP
• Jezik za definiciju podataka
– Data Definition Language (DDL)
– tipovi operacija za kreiranje i modifikaciju specifikacija
• šeme BP
• fizičke strukture BP
• prava pristupa i zaštite BP
• novih tipova operacija (programa) za upravljanje podacima

BP – Modeli podataka 20 / 36
Operacijska komponenta MP
• Specifikacija operacije sadrži komponente
– aktivnost
• specifikacija akcije nad podacima u BP
– selekcija
• specifikacija dela BP (u DML i QL) ili dela šeme BP (u DDL),
nad kojim se sprovodi specificirana aktivnost

BP – Modeli podataka 21 / 36
Operacijska komponenta MP
• Primer operacije u DML ili QL
– moguće aktivnosti
• definisanje indikatora aktuelnosti (CURRENCY)
• čitanje
• upis
• brisanje
• modifikacija
– mogući načini selekcije
• pomoću logičkog mesta u strukturi podataka, na osnovu
indikatora aktuelnosti
• putem odnosa između podataka
• putem vrednosti obeležja

BP – Modeli podataka 22 / 36
Operacijska komponenta MP
• Primer (mrežni MP)

STUDENT “Prikaži predmete i ocene tekuće


pojave tipa entiteta STUDENT”

OCENA – indikator aktuelnosti


• FIND
• READ NEXT

PREDMET – odnos između podataka

BP – Modeli podataka 23 / 36
Operacijska komponenta MP
• Selekcija putem vrednosti obeležja
– asocijativno adresiranje
– iskazuje se putem logičkih izraza
• moguća upotreba logičkih operatora (AND, OR, NOT)
• moguća upotreba relacionih izraza i operatora
– {<, >, =, >=, <=, <>}
– specijalizovanih operatora (IN, NOT IN, EXISTS,...)
• moguća upotreba numeričkih, alfanumeričkih (string), logičkih
i datumskih izraza, funkcija i operatora
• moguća upotreba obeležja kao operanada

BP – Modeli podataka 24 / 36
Operacijska komponenta MP
• Primer:
– TE Radnik({MBR, IME, PRZ, ZAN}, {MBR})

– selekcioni izraz
• IME = ‘Ivo’ AND ZAN IN ['Inž', 'Eko']

– primer u jeziku SQL

SELECT MBR, PRZ, IME, ZAN


FROM Radnik
WHERE PRZ LIKE 'Petr%' AND MBR > 100

BP – Modeli podataka 25 / 36
Operacijska komponenta MP
• Operacijska komponenta može biti
– proceduralna (navigaciona)
• selekcija vrši izbor jednog objekta iz BP
• selekcija se vrši putem indikatora aktuelnosti, ili putem
odnosa između podataka
• proceduralnost sa programskim petljama i uslovnim
grananjima
• definiše se ŠTA i KAKO
– specifikaciona (deklarativna)
• selekcija vrši izbor skupa objekata iz BP
• selekcija se vrši na osnovu vrednosti obeležja
• neproceduralnost
• definise se samo ŠTA

BP – Modeli podataka 26 / 36
Operacijska komponenta MP

KAKO?

ŠTA?

BP – Modeli podataka 27 / 36
Sadržaj
• Pojam modela podataka
• Strukturalna komponenta MP
• Integritetna komponenta MP
• Operacijska komponenta MP
• Modeli podataka

BP – Modeli podataka 28 / 36
Modeli podataka
• Model tipova entiteta i poveznika (ER)
• Mrežni model
• Hijerarhijski model
• Relacioni model
• Logički i verovatnosni (fuzzy) logički modeli
• Objektno orijentisani model
• Objektno relacioni model
• XML model

BP – Modeli podataka 29 / 36
Modeli podataka
• Model tipova entiteta i poveznika (ER)
– semantički model podataka
– modifikacija
• Prošireni model tipova entiteta i poveznika (EER)
• MP konceptualnog nivoa – "bliži" korisniku po vrsti
primenjenih koncepata
– nastao na osnovama starijih modela
• Semantičke hijerarhije (Smith i Smith)
• Semantički model (Hammer i Mcleod)

BP – Modeli podataka 30 / 36
Modeli podataka
• Hijerarhijski model
– implementacioni model podataka
• tipične strukture šeme BP
– strukture stabla nad tipovima slogova
• operacijska komponenta – proceduralna
– tipičan predstavnik: IBM DL/I sa programskim jezikom PL/I

• Mrežni model
– implementacioni model podataka
• tipične strukture šeme BP
– strukture mreže nad tipovima slogova, korišćenje tipova setova
• operacijska komponenta – proceduralna
– CODASYL DBTG standard
– tipični predstavnici: IDMS, IDS-II sa programskim jezikom
Cobol

BP – Modeli podataka 31 / 36
Modeli podataka
• Relacioni model
– implementacioni model podataka
• tipične strukture šeme BP
– strukture tabela slogova – relacija, kao skupova n-torki
• operacijska komponenta – deklarativna
– ANSI SQL standard
– tipični predstavnici RDBMS: Oracle, MS SQL Server, Ingres,
Informix, Sybase, DB2, sa programskim jezikom SQL

• Logički i verovatnosni (fuzzy) logički modeli


– dalja nadgradnja relacionog modela
– uvođenje dedukcije u baze podataka
• baza podataka – činjenica i baza pravila rezonovanja
• pridruživanje verovatnoća podacima u bazi
• rezonovanje u svetu rasplinute logike, na intervalu [0, 1]
BP – Modeli podataka 32 / 36
Modeli podataka
• Objektno orijentisani model
– zasnovanost na
• mrežnom i semantičkim modelima
• objektno orijentisanoj paradigmi i programskim jezicima
– koncepti klase, tipa, operacije i interfejsa
– objedinjeno posmatranje struktura podataka i
operacija nad podacima
• operacijska komponenta – proceduralna (C++, Java)
• Objektno relacioni model
– implementacioni model podataka
• kombinuje sve osobine relacionog i OO modela podataka
• savremeni ORDBMS nastaju evolucijom RDBMS i nasleđuju
sve osobine RDBMS

BP – Modeli podataka 33 / 36
Modeli podataka
• XML model
– zasnovanost na
• XML jezicima i tehnologijama
• paradigmi analognoj hijerarhijskom modelu podataka i tzv.
"logičkim vezama"
– implementacioni model podataka
• tipične strukture šeme BP
– strukture stabla nad elementima i atributima
– šema BP se opisuje putem XML Schema jezika
• operacijska komponenta – deklarativna
– ANSI SQL:2006 standard
– XPath i XQuery jezici

BP – Modeli podataka 34 / 36
Sadržaj
• Pojam modela podataka
• Strukturalna komponenta MP
• Integritetna komponenta MP
• Operacijska komponenta MP
• Modeli podataka

BP – Modeli podataka 35 / 36
Pitanja i komentari

?
BP – Modeli podataka 36 / 36
Baze podataka

Modeli podataka

Specifikacija šeme baze podataka

BP – Modeli podataka
Baze podataka

Model podataka tipova


entiteta i poveznika
ER model podataka

ER model podataka
Sadržaj
• Osnovni pojmovi
• Strukturalna komponenta
• ER dijagrami
• Integritetna komponenta
• Kardinalitet tipa poveznika
• Integritet tipa poveznika
• N-arni tip poveznika
• Gerund i agregacija
• Id-zavisnost, IS-A hijerarhija i kategorizacija
• Završne napomene
ER model podataka 2 / 129
Model tipova entiteta i poveznika
• Entity-Relationship data model (ER model)
– Rodonačelnik - P. P. Chen (1976)
• Chen, Peter Pin-Shan: The entity-relationship model - toward
a unified view of data, ACM Transactions on Database
Systems, Vol. 1, No. 1, 1976.
– Kasnija proširenja
• semantička – Extended ER model (EER model)
• OO proširenja – složeni tipovi podataka (domeni)
• Osnovni pojmovi ER modela
(već uvedeni kroz osnovne pojmove BP)
– obeležje i domen
– tip entiteta i pojava tipa entiteta
– tip poveznika i pojava tipa poveznika

ER model podataka 3 / 129


Entitet i klasa entiteta
• Entitet (realni entitet)
– jedinica posmatranja
– činilac (resurs) poslovanja u realnom sistemu
• Klasa realnih entiteta
– skup “sličnih” entiteta
– skup entiteta koji poseduje zajedničko svojstvo
– formalno: E = {ei | P(ei)}

ER model podataka 4 / 129


Entitet i klasa entiteta
• Primer
– neka realni sistem predstavlja jedan fakultet
– neka je P(ei) ::= “ei je STUDENT”
– skupu (klasi entiteta) Student pripadaju samo
studenti, a ne i ostali ljudi (činioci) fakulteta

ER model podataka 5 / 129


Poveznik i klasa poveznika
• Klasa poveznika
– skup veza između klasa realnih entiteta ili prethodno
identifikovanih klasa poveznika
– skup poveznika koji poseduje isto svojstvo
– formalno:
S = {(e1,…, em) | P(e1,…, em)}
– ei (i  {1,..., m})
• jedan realni entitet ili prethodno uspostavljeni poveznik

ER model podataka 6 / 129


Poveznik i klasa poveznika
• Primer
– Klase entiteta
• Radnik = {Ana, Aco, Eva},
• Radno_mesto = {Programer, Projektant, Operater}
– Uočena osobina
• P(ei, ej) ::= “Radnik ei radi na radnom mestu ej”
• P(ei, ej) definiše klasu poveznika Radi
– Jedan poveznik klase Radi: (Ana, Programer)

ER model podataka 7 / 129


Poveznik i klasa poveznika
• Primer
– Klase entiteta
• Radnik = {Ana, Aco, Eva},
• Projekat = {Lido, Osig, RazvojIS}
– Uočene osobine
• P1(ei, ej) ::= “Radnik ei radi na projektu ej”
• P2(ei, ej) ::= “Radnik ei rukovodi projektom ej”

• P1(ei, ej) definiše klasu poveznika Radi


• P2(ei, ej) definiše klasu poveznika Rukovodi

ER model podataka 8 / 129


Poveznik i klasa poveznika
• Primer
– Klase entiteta
• Radnik = {Ana, Aco, Eva},
• Projekat = {Lido, Osig, RazvojIS}
– Radi = {(Ana, Lido), (Aco, Lido), (Aco, Osig)}
– Rukovodi = {(Ana, RazvojIS), (Eva, Lido)}

ER model podataka 9 / 129


Sadržaj
• Osnovni pojmovi
• Strukturalna komponenta
• ER dijagrami
• Integritetna komponenta
• Kardinalitet tipa poveznika
• Integritet tipa poveznika
• N-arni tip poveznika
• Gerund i agregacija
• Id-zavisnost, IS-A hijerarhija i kategorizacija
• Završne napomene
ER model podataka 10 / 129
Strukturalna komponenta
• Primitivni koncepti strukturalne komponente ER
modela podataka
– vrednost
– (predefinisani) domen
– obeležje

ER model podataka 11 / 129


Domen
• Vrednost
– bilo koja konstanta, iz bilo kog skupa

ER model podataka 12 / 129


Domen
• Domen
– specifikacija skupa mogućih vrednosti obeležja
• sa definisanim dozvoljenim relacijama i operacijama nad
datim skupom
– vrste
• predefinisani (primitivni)
• korisnički definisani (izvedeni)

ER model podataka 13 / 129


Domen
• Predefinisani (primitivni) domen
– predstavlja predefinisani, atomični tip podataka
• ugrađen u definiciju modela podataka
• praktično, zavisi od softverskog okruženja koje podržava
izabrani (ER) model podataka
– primeri
• teoretski: ℕ, ℤ, ℚ, ℝ, neograničeni znakovni, boolean
• praktični: integer, float, double, decimal, boolean, string

ER model podataka 14 / 129


Domen
• Korisnički definisani (izvedeni) domen
– definiše se
• korišćenjem već postojećeg domena
– predefinisanog, ili
– korisnički definisanog
• putem pravila za definisanje domena, ugrađenih u definiciju
(ER) modela podataka
– može predstavljati skup
• atomičnih podataka, ili
• složenih podataka
– primeri
• DOCENA ::= {d  ℕ | d  5  d  10}
• DNAZIV ::= String(30)
• DMONEY ::= Decimal(12, 2)
ER model podataka 15 / 129
Domen
• Korisnički definisani (izvedeni) domen
– pravila za definisanje, ugrađena u definiciju (ER)
modela podataka
• pravilo nasleđivanja
• pravilo tipa sloga
• pravilo tipa skupa (kolekcije)
• pravilo tipa izbora
– pravila definišu ugrađene relacije i operacije
– primeri
• DPOZOCENA ::= {d  DOCENA | d  6}
• DTSLOG ::= Tuple{(A1: D1),..., (An: Dn)}
• DTSKUP ::= Set{De}
• DIZBOR ::= Choice{(A1: D1),..., (An: Dn)}

ER model podataka 16 / 129


Obeležje
• Obeležje (atribut)
– osobina klase realnih entiteta
– iskazana putem predikata P(ei)
– oznake:
• A, B, X, W
• BRI, Datum_Prispeća, JMBG, Prz, Ime

ER model podataka 17 / 129


Domen obeležja
• Pravilo ER modela podataka
– Svakom obeležju se pridružuje tačno jedan domen
– Notacija
• Dom(A), ili (A : D)
– oznaka za domen obeležja A
– obeležju A pridružen je domen D
• dom(A)
– oznaka za skup mogućih vrednosti obeležja, definisan sa D
– primeri
• Dom(Ocena) = DOCENA
– Ocena prima vrednost iz dom(Ocena) = {5, 6, 7, 8, 9, 10}
• (PPNaziv : DNAZIV)
– PPNAZIV prima vrednost iz skupa, predstavljenog sa String(30)
» skupa svih nizova znakova, nad propisanim kodnim
rasporedom, do maksimalne dužine 30
ER model podataka 18 / 129
Strukturalna komponenta
• Izvedeni koncepti strukturalne komponente ER
modela podataka
– podatak
– tip entiteta
– pojava tipa entiteta
– tip poveznika
– pojava tipa poveznika

ER model podataka 19 / 129


Podatak
• Podatak - uređena četvorka
(Entitet, Obeležje, Vreme, Vrednost)
– Entitet
• identifikator (oznaka) entiteta
– Obeležje
• oznaka (mnemonik) obeležja
– Vreme
• vremenska odrednica
– Vrednost
• jedna vrednost iz skupa dom(A)
• Skraćeno (ako je poznat kontekst)
(Obeležje, Vrednost), ili (Vrednost)
ER model podataka 20 / 129
Tip entiteta
• Tip entiteta (TE)
– Model klase realnih entiteta u IS
– Nastaje od obeležja klase realnih entiteta, bitnih za
realizaciju ciljeva IS
– Predstavlja uređenu strukturu:
N(Q, C)
• N - naziv TE
• Q = {A1,…, An} - skup obeležja TE
• C - skup ograničenja TE
• K = {K1,..., Km}  C - skup ključeva TE (K ≠ )

ER model podataka 21 / 129


Pojava tipa entiteta
• Pojava tipa entiteta
– model jednog realnog entiteta u IS
– za tip entiteta N(Q, C), Q = {A1,..., An}, pojava p(N)
predstavlja skup podataka:
p(N) = {(A1, a1),..., (An, an)}
• za svaki AiQ mora biti ai  dom(Ai)
• skup svih pojava p(N) mora zadovoljavati skup ograničenja C
• ako se u Q uvede linearno uređenje obeležja, tada
p(N) = (a1,..., an)

ER model podataka 22 / 129


Tip poveznika
• Tip poveznika (TP)
– model veza između pojava povezanih TE ili TP
– uređena struktura:

N(N1, N2,…, Nm, Q, C)

• N - naziv tipa poveznika


• Ni (i  {1,..., m}) - povezani tip
– tip entiteta, ili
– prethodno definisani tip poveznika
• Q = {B1,…, Bn} - skup obeležja TP
• C - skup ograničenja TP
• K = {K1,..., Kk}  C - skup ključeva TP (K ≠ )

ER model podataka 23 / 129


Tip poveznika
• Tip poveznika
– Identifikator tipa poveznika predstavlja
• niz
(N1, N2,…, Nm)

• ili neki neprazan podniz niza (N1, N2,…, Nm)

– Ključ tipa poveznika


• izveden na osnovu ključeva povezanih tipova (N1, N2,…, Nm)
• Neka je Ki ključ tipa Ni
• Ključ tipa poveznika je vrlo često, ali ne uvek, pravi ili nepravi
podskup unije ključeva K1 … Km
– videti integritetnu komponentu ER modela podataka

ER model podataka 24 / 129


Tip poveznika
• Tip poveznika
– N1, N2,…, Nm ne moraju biti međusobno različiti tipovi
– Svaki tip Ni u okviru tipa poveznika N ima svoju ulogu
– Nad istim tipovima N1, N2,…, Nm se može definisati
više različitih tipova poveznika
– m - arnost poveznika
– m = 2 - binarni tip poveznika

ER model podataka 25 / 129


Pojava tipa poveznika
• Pojava tipa poveznika
N(N1, N2,…, Nm, {B1,…, Bk }, C)
– reprezentuje jedan poveznik u realnom sistemu
– oznaka:
• p(N, Vreme), u zadatom trenutku vremena, ili samo
• p(N), ako se vremenska odrednica ne navodi

– predstavlja skup podataka:

p(N) = (p1,…, pm)(N) = {(B1, b1),..., (Bk, bk)}

• Za svaki Bi mora biti bi  dom(Bi)


• skup svih pojava p(N) mora zadovoljavati skup ograničenja C

ER model podataka 26 / 129


Sadržaj
• Osnovni pojmovi
• Strukturalna komponenta
• ER dijagrami
• Integritetna komponenta
• Kardinalitet tipa poveznika
• Integritet tipa poveznika
• N-arni tip poveznika
• Gerund i agregacija
• Id-zavisnost, IS-A hijerarhija i kategorizacija
• Završne napomene
ER model podataka 27 / 129
ER dijagrami
• Pogodna dijagramska tehnika za predstavljanje
modela statičke strukture realnog sistema
• ER model podataka uživa popularnost zbog
dijagramskog načina prikaza šeme BP
• Postoji više različitih načina za označavanje
koncepata ER modela podataka

ER model podataka 28 / 129


ER - dijagrami

• Tip entiteta: Naziv_TE

• Tip poveznika: Naziv_TP

• Domen: Naziv_Dom ili Naziv_Dom

• Obeležje: Naziv_Ob

ER model podataka 29 / 129


ER - dijagrami
• Kada se domeni na dijagramu ne prikazuju,
vizuelna reprezentacija obeležja je:

Naziv_Obeležja

• Obeležja primarnog ključa TE se podvlače

Naziv_Obeležja

ER model podataka 30 / 129


ER - dijagrami
• Nivoi detaljnosti prikaza ER dijagrama
– nivo naziva tipova
• globalni nivo prikaza
– nivo naziva obeležja (i domena)
• detaljni nivo prikaza

ER model podataka 31 / 129


ER - dijagrami
• Nivo detaljnosti naziva
– dva tipa poveznika između istih tipova entiteta

Radi

Radnik Projekat

Rukovodi

ER model podataka 32 / 129


ER - dijagrami
• Nivo detaljnosti naziva
– tip poveznika reda 3 (n-arni tip poveznika)

Isporučilac

Proizvod Isporučuje Deo

ER model podataka 33 / 129


ER - dijagrami
• Nivo detaljnosti naziva
– rekurzivni, binarni tip poveznika

Proizvod

Komponenta

ER model podataka 34 / 129


ER - dijagrami
• Nivo detaljnosti obeležja (i domena)
– skup obeležja jednog tipa entiteta

Radnik

Mbr Ime Prz Zan

ER model podataka 35 / 129


Sadržaj
• Osnovni pojmovi
• Strukturalna komponenta
• ER dijagrami
• Integritetna komponenta
• Kardinalitet tipa poveznika
• Integritet tipa poveznika
• N-arni tip poveznika
• Gerund i agregacija
• Id-zavisnost, IS-A hijerarhija i kategorizacija
• Završne napomene
ER model podataka 36 / 129
Integritetna komponenta
• Tipovi ograničenja u ER modelu podataka
– ograničenje domena
– ograničenje pojave tipa
– kardinalitet tipa poveznika
– ograničenje ključa (integritet tipa)
• za tip entiteta i
• tip poveznika

ER model podataka 37 / 129


Ograničenje domena
• Specifikacija domena
– struktura
D(id(D), Predef)
• D
– naziv domena
• id(D)
– ograničenje domena
• Predef
– predefinisana vrednost domena

ER model podataka 38 / 129


Ograničenje domena
• Ograničenje domena id(D)
– definiše se primenom izabranog pravila za
specificiranje korisnički definisanog domena
• pravila nasleđivanja
• pravila tipa sloga
• pravila tipa skupa (kolekcije)
• pravila tipa izbora

– izabrani slučaj u ovoj temi


• definisanje ograničenja domena primenom pravila
nasleđivanja

ER model podataka 39 / 129


Ograničenje domena
• Pravilo nasleđivanja i id(D)
– ograničenje "nasleđenog" domena je struktura
id(D) = (Tip, Dužina, Uslov)
• Tip
– tip podatka
» oznaka primitivnog domena, ili
» oznaka prethodnog, korisnički definisanog domena
• Dužina
– dužina tipa podatka
• Uslov
– logički uslov koji svaka vrednost domena mora da zadovolji

ER model podataka 40 / 129


Ograničenje domena
• Tip
– jedina obavezna komponenta specifikacije
– nasleđuju se sva ograničenja, relacije i operacije,
definisane nad izabranim tipom
• Dužina
– navodi se samo za tipove podataka (primitivne
domene) koji to zahtevaju
• Uslov
– u (ER) modelu podataka mora biti definisana sintaksa
za zadavanje logičkih uslova
• Predef
– mora da zadovolji ograničenja tipa, dužine i uslova
ER model podataka 41 / 129
Ograničenje domena
• Interpretacija integriteta domena
– moguća za bilo koju vrednost - konstantu

• Primeri
– DPREZIME((String, 30, ), )
– DDATUM((Date, , d  '01.01.1900'), )
– DOCENA((Number, 2, d  5  d  10), )
– DPOZOCENA((DOCENA, , d  6), 6)

ER model podataka 42 / 129


Nula vrednost
• Nula (nedostajuća) vrednost
– specijalna vrednost obeležja
– označava se simbolom 
• u praksi, to je oznaka NULL
– formalna interpretacija nula vrednosti
• "vrednost obeležja nedostaje – nije zadata"
– moguća značenja nula vrednosti
• nepoznata - postojeća vrednost obeležja
• nepostojeća vrednost obeležja
• neinformativna vrednost obeležja
– nekada se javlja potreba da obeležje, umesto
vrednosti iz domena, poprimi vrednost 

ER model podataka 43 / 129


Ograničenje vrednosti obeležja
• Specifikacija obeležja
– obeležje AQ, datog tipa N
– struktura
(id(N, A), Predef)
• id(N, A)
– ograničenje vrednosti obeležja
• Predef
– predefinisana vrednost obeležja

ER model podataka 44 / 129


Ograničenje vrednosti obeležja
• Ograničenje vrednosti obeležja id(N, A)
– definiše se za svako obeležje tipa
– struktura
id(N, A) = (Domen, Null)
– Domen
• oznaka (naziv) pridruženog domena obeležja
– Null  {T, }
• T - dozvola dodele nula vrednosti obeležju unutar N
•  - zabrana dodele nula vrednosti obeležju unutar N

ER model podataka 45 / 129


Ograničenje vrednosti obeležja
• Domen i Null
– obavezne komponente specifikacije
• Predef
– ako se navede, onda je on važeći
– u protivnom, važeći je Predef odgovarajućeg
Domena, ili
– prvog sledećeg nasleđenog domena, za koji je Predef
definisan
• Interpretacija ograničenja
– moguća za bilo koju vrednost obeležja

ER model podataka 46 / 129


Ograničenje pojave tipa
• Ograničenje pojave tipa
– definiše ograničenja na moguće vrednosti podataka
unutar iste pojave TE ili TP
– predstavlja skup ograničenja vrednosti obeležja,
kojem je pridodat logički uslov
– formalno, za tip N:
id(N) = ({id(N, A) | A  Q'}, Uslov)
• Q´ - prošireni skup obeležja tipa
– za TE je Q´ = Q
– za TP je Q´ = Q  Kp, gde je Kp skup obeležja primarnog ključa
TP

ER model podataka 47 / 129


Ograničenje pojave tipa
• Ograničenje pojave tipa
id(N) = ({id(N, A) | A  Q'}, Uslov)
– Uslov
• logički uslov koji svaka pojava tipa mora da zadovolji
• može, u ulozi operanda, da sadrži bilo koje obeležje
proširenog skupa obeležja datog tipa
• u (ER) modelu podataka mora biti definisana sintaksa za
zadavanje logičkih uslova
• Interpretacija ograničenja pojave tipa
– moguća za bilo koju pojavu tipa nad skupom
obeležja, nad kojim je definisano

ER model podataka 48 / 129


Ograničenje pojave tipa
• Primer
– Radnik({MBR, PRZ, IME, ZAN, BPJZ}, {MBR})

Radnik Domen Null Predef

MBR DMBR  

PRZ DPRZ  

IME DIME  

ZAN DZAN  

BPJZ DBPJZ T 

Uslov: ZAN = ‘prg’  BPJZ <> 

ER model podataka 49 / 129


Ograničenje pojave tipa
• Primer
– Radnik({MBR, PRZ, IME, ZAN, BPJZ}, {MBR})

Domen Tip Dužina Uslov Predef

DMBR Number 4 d1 

DPRZ String 30  

DIME String 15  

DZAN String 3  

DBPJZ Number 2 d0 0

ER model podataka 50 / 129


Sadržaj
• Osnovni pojmovi
• Strukturalna komponenta
• ER dijagrami
• Integritetna komponenta
• Kardinalitet tipa poveznika
• Integritet tipa poveznika
• N-arni tip poveznika
• Gerund i agregacija
• Id-zavisnost, IS-A hijerarhija i kategorizacija
• Završne napomene
ER model podataka 51 / 129
Kardinalitet tipa poveznika
• Kardinalitet TP prema povezanom tipu
– par
(a, b)
• a  {0, 1}
– minimalni kardinalitet
• b  {1, N}, N  2
– maksimalni kardinalitet
• ograničava u koliko pojava tipa poveznika može učestvovati
jedna, bilo koja pojava povezanog tipa
– minimalno (a) i
– maksimalno (b)
– definiše se za svaki povezani tip

ER model podataka 52 / 129


Kardinalitet tipa poveznika
• Primer
(1,1) (0,N)
Radnik Raspoređen Radno mesto

– Kardinaliteti prikazanog TP formalizuju ograničenja


• (1, 1)
– jedan radnik mora biti raspoređen na tačno jedno radno mesto
• (0, N)
– na jedno radno mesto može biti raspoređeno više radnika, ali
ne mora ni jedan

ER model podataka 53 / 129


Kardinalitet tipa poveznika
• Tri opšte grupe maksimalnih kardinaliteta
– M:N
– N:1
– 1:1
• uticaj na formiranje ključeva tipa poveznika

• Primeri pravila definisanja i pisanja kardinaliteta


na dijagramima
– binarni tipovi poveznika

ER model podataka 54 / 129


Kardinalitet tipa poveznika
• Grupa M : N (više prema više):

(0, M) (0, N)
Radnik Radi Projekat

Iva (Iva, LiDo) LiDo


Ana (Iva, Fakt) Fakt
Eva (Ana, Sklad) Sklad
Aca (Ana, LiDo) Nabav

ER model podataka 55 / 129


Kardinalitet tipa poveznika
• Grupa M : N (više prema više):

(1, M) (0, N)
Radnik Radi Projekat

Iva (Iva, LiDo) LiDo


Ana (Iva, Fakt) Fakt
Eva (Ana, Sklad) Sklad
Aca (Ana, LiDo) Nabav
(Eva, Sklad)
(Aca, Sklad)

ER model podataka 56 / 129


Kardinalitet tipa poveznika
• Grupa M : N (više prema više):

(1, M) (1, N)
Radnik Radi Projekat

Iva (Iva, LiDo) LiDo


Ana (Iva, Fakt) Fakt
Eva (Ana, Sklad) Sklad
Aca (Ana, LiDo) Nabav
(Eva, Sklad)
(Aca, Nabav)

ER model podataka 57 / 129


Kardinalitet tipa poveznika
• Grupa N : 1 (više prema jedan):

(0, 1) (0, N)
Radnik Raspoređen Radno mesto

Iva (Iva, Projekt) Projekt


Ana (Ana, Projekt) Program
Eva (Eva, Sekret) Sekret
Aca Direkt

ER model podataka 58 / 129


Kardinalitet tipa poveznika
• Grupa N : 1 (više prema jedan):

(1, 1) (0, N)
Radnik Raspoređen Radno mesto

Iva (Iva, Projekt) Projekt


Ana (Ana, Projekt) Program
Eva (Eva, Sekret) Sekret
Aca (Aca, Projekt) Direkt

ER model podataka 59 / 129


Kardinalitet tipa poveznika
• Grupa N : 1 (više prema jedan):

(0, 1) (1, N)
Radnik Raspoređen Radno mesto

Iva (Iva, Program) Projekt


Ana (Ana, Projekt) Program
Eva (Eva, Sekret) Sekret
Aca (Aca, Projekt) Direkt
Pera (Pera, Direkt)
Mira

ER model podataka 60 / 129


Kardinalitet tipa poveznika
• Grupa N : 1 (više prema jedan):

(1, 1) (1, N)
Radnik Raspoređen Radno mesto

Iva (Iva, Program) Projekt


Ana (Ana, Projekt) Program
Eva (Eva, Sekret) Sekret
Aca (Aca, Projekt) Direkt
Pera (Pera, Direkt)
Mira (Mira, Direkt)

ER model podataka 61 / 129


Kardinalitet tipa poveznika
• Grupa 1 : 1 (jedan prema jedan):

(0, 1) (0, 1)
Radnik Je Osiguranik

Iva (Iva, Polisa2) Polisa1


Ana (Ana, Polisa1) Polisa2
Eva (Eva, Polisa3) Polisa3
Aca Polisa4

ER model podataka 62 / 129


Kardinalitet tipa poveznika
• Grupa 1 : 1 (jedan prema jedan):

(1, 1) (0, 1)
Radnik Je Osiguranik

Iva (Iva, Polisa2) Polisa1


Ana (Ana, Polisa1) Polisa2
Eva (Eva, Polisa3) Polisa3
Polisa4

ER model podataka 63 / 129


Kardinalitet tipa poveznika
• Grupa 1 : 1 (jedan prema jedan):

(1, 1) (1, 1)
Radnik Je Osiguranik

Iva (Iva, Polisa2) Polisa1


Ana (Ana, Polisa1) Polisa2
Eva (Eva, Polisa3) Polisa3
Aca (Aca, Polisa4) Polisa4

ER model podataka 64 / 129


Kardinalitet tipa poveznika
• Rekurzivni tip poveznika:
– Tip veze 1 : N (0, N) Je nadređeni za

(0, 1)
Radnik Rukovodi
Ima nadređenog

Ana (Ana, Eva) Ana


Eva (Ana, Aca) Eva
Aca (Eva, Iva) Aca
Iva Iva

ER model podataka 65 / 129


Kardinalitet tipa poveznika
• Rekurzivni tip poveznika:
– Tip veze M : N (0, N) Ima komponente

(0, M)
Deo Sastoji se

Je komponenta za

101 (101, Motor) 101


Y45 (101, Karos) Y45
Motor (Motor, Klip) Motor
Karos (Y45, Motor) Karos
Klip (Y45, Karos) Klip

ER model podataka 66 / 129


Sadržaj
• Osnovni pojmovi
• Strukturalna komponenta
• ER dijagrami
• Integritetna komponenta
• Kardinalitet tipa poveznika
• Integritet tipa poveznika
• N-arni tip poveznika
• Gerund i agregacija
• Id-zavisnost, IS-A hijerarhija i kategorizacija
• Završne napomene
ER model podataka 67 / 129
Integritet tipa
• Integritet tipa entiteta
– ograničenje ključa
• Integritet tipa poveznika
– niz naziva povezanih tipova, ili njegov neprazan
podniz
– ograničenje ključa

ER model podataka 68 / 129


Integritet tipa poveznika
• Tri opšte grupe maksimalnih kardinaliteta
–M : N
–N : 1
–1 : 1
• uticaj na formiranje ključeva tipa poveznika

ER model podataka 69 / 129


Integritet tipa poveznika
• Grupa M : N (više prema više):

Mbr Spr
(0, M) (0, N)
Radnik Radi Projekat

• Integritet TP (identifikator TP) Radi:


– (Radnik, Projekat)
– Kp = Mbr+Spr

ER model podataka 70 / 129


Integritet tipa poveznika
• Grupa N : 1 (više prema jedan):

Mbr ORM
(0, 1) (0, N)
Radnik Raspoređen Radno mesto

• Integritet TP (identifikator TP) Raspoređen:


– (Radnik)
– Kp = Mbr

ER model podataka 71 / 129


Integritet tipa poveznika
• Grupa 1 : 1 (jedan prema jedan):

MBR BrPol
(0, 1) (0, 1)
Radnik Je Osiguranik

• Integritet TP (identifikator TP) Je:


– (Radnik) i (Osiguranik)
– K1 = MBR i K2 = BrPol

ER model podataka 72 / 129


Integritet tipa poveznika
• Grupa M : N (više prema više) i rekurzivni TP:
(0, N) Ima komponente
DeID

(0, M)
Deo Sastoji se

Je komponenta za

• Integritet TP (identifikator TP) Sastoji se:


– (Deo, Deo), tj.
• (Deo(Ima komponente), Deo(Je komponenta za))
– Kp = DeID+DeIDkom
• DeIDkom – preimenovano obeležje DeID
– Semantika: DeID sa ulogom komponente ugradnje
ER model podataka 73 / 129
Sadržaj
• Osnovni pojmovi
• Strukturalna komponenta
• ER dijagrami
• Integritetna komponenta
• Kardinalitet tipa poveznika
• Integritet tipa poveznika
• N-arni tip poveznika
• Gerund i agregacija
• Id-zavisnost, IS-A hijerarhija i kategorizacija
• Završne napomene
ER model podataka 74 / 129
N-arni tip poveznika (n > 2)
• Tip poveznika može da povezuje više od dva
druga tipa
• N-arni tip poveznika
– Određivanje kardinaliteta tipa poveznika reda n > 2:
• za svaki od n povezanih tipova,
– za bilo koju odabranu pojavu tipa,
» utvrđuje se koliko se minimalno i koliko se maksimalno
puta javlja kao komponenta u pojavama tipa poveznika

ER model podataka 75 / 129


N-arni tip poveznika (n > 2)
• Primer:
– Tipovi entiteta: Student, Nastavnik, Predmet
– Ograničenja:
• jedan nastavnik može predavati više predmeta za više
studenata
• jedan student može slušati više predmeta kod više
nastavnika
• jedan predmet može predavati više nastavnika za više
studenata
• postoje nastavnici, koji ne predaju ni jedan predmet bilo kom
studentu
• postoje studenti koji ne slušaju ni jedan predmet kod bilo kog
nastavnika
• ne postoje predmeti koje ne predaje ni jedan nastavnik ni
jednom studentu

ER model podataka 76 / 129


N-arni tip poveznika (n > 2)
• ER-dijagram:

(0, N) (0, N)
Izvođenje
Student nastave Nastavnik

(1, N)

BRI Ime Predmet OZN ImN

OZP Naz

ER model podataka 77 / 129


N-arni tip poveznika (n > 2)
Student Izvođenje nastave Nastavnik
Ana (Ana, BPod, Pera) Pera
Aca (Ana, Mat1, Milan) Milan
Iva (Aca, BPod, Pera) Laza
Eva (Ana, Fiz, Pera) Draga
(Iva, Mat2, Draga)

Predmet
Mat1
Mat2
BPod
Fiz

ER model podataka 78 / 129


Sadržaj
• Osnovni pojmovi
• Strukturalna komponenta
• ER dijagrami
• Integritetna komponenta
• Kardinalitet tipa poveznika
• Integritet tipa poveznika
• N-arni tip poveznika
• Gerund i agregacija
• Id-zavisnost, IS-A hijerarhija i kategorizacija
• Završne napomene
ER model podataka 79 / 129
Gerund
• Gerund
– glagolska imenica
– u ER modelu
• tip entiteta dobijen transformacijom tipa poveznika, tj.
• tip poveznika, koji predstavlja povezani tip u nekom drugom
tipu poveznika
– dvojaka uloga gerunda, kao tipa
• istovremeno i tip entiteta i tip poveznika
– tip poveznika za neke druge, povezane tipove
– tip entiteta u nekim drugim tipovima poveznika

ER model podataka 80 / 129


Gerund
• Dat je TP N(N1, N2,…, Nm, {B1,…, Bk }, C)
– neka je neki Ni, takođe, tip poveznika
– Ni predstavlja gerund
– Ni se ponaša kao TE u odnosu na N

• Geometrijska predstava gerunda u ER


dijagramima

ER model podataka 81 / 129


Gerund
• Upotreba gerunda
– kada ne mogu proizvoljne kombinacije pojava
nekih tipova biti sadržane u pojavi posmatranog tipa
poveznika i
– postoji pravilo koje kombinacije pojava tih tipova
mogu biti sadržane u pojavi posmatranog tipa
poveznika
• tip poveznika – gerund uvodi se s ciljem modeliranja tog
pravila

ER model podataka 82 / 129


Gerund
• Upotreba gerunda
– Primer
• entiteti klasa A, B i C su u međusobnim vezama tipa (a, b, c)
– uvodi se tip poveznika ABC, između A, B i C
• ne mogu svi (a, b) parovi entiteta iz A i B učestvovati u
vezama (a, b, c), nad tipom ABC
• postoji pravilo koji (a, b) parovi iz A i B mogu učestvovati u
vezama (a, b, c), nad tipom ABC
– uvodi se tip poveznika – gerund AB
– tip poveznika ABC povezuje AB i C
– pojave tipa poveznika ABC zavise od egzistencije pojava tipa
poveznika AB

ER model podataka 83 / 129


Gerund
• Upotreba gerunda
– Primer

A AB B

C ABC

ER model podataka 84 / 129


Gerund
• Primer
A AB B

C AC ABC

– Semantika
• entiteti klase A su u vezi sa entitetima klase B
– dobijaju se (a, b) parovi
• neki (a, b) parovi su povezani sa nekim od
(a, c) parova
– dobijaju se (a, b, c) trojke, povezivanjem određenih (a, b) i (a,
c) parova sa istim a komponentama

ER model podataka 85 / 129


Gerund
• Primer AB

A ABC B

AC C

– Naizgled alternativni ER dijagram


• isti ključevi svih TP, ali
• različita semantika
– pojave TP ABC ne zavise od egzistencije pojava TP AB i AC

ER model podataka 86 / 129


Gerund
• Primer
– Klase entiteta
• Radnik, Mašina i Deo
– Odnosi:
• radnik r je osposobljen za rad na mašini m
• na mašini m se može proizvesti deo d
• radnik r, na nekim od onih mašina m, za koje je osposobljen,
izrađuje neke od onih delova d, koji se na mašini m mogu
proizvesti
• radnik r održava mašinu m
• radnici na održavanju mogu, a ne moraju da rade na
proizvodnji delova

ER model podataka 87 / 129


Gerund
• Primer
Održava

Radnik Osposobljen Mašina

Može
Proizvodi proizvesti

Deo
– Napomena
• radnik r, koji je osposobljen za mašinu m i radnik koji održava
mašinu m, mogu biti različiti, jer su TP Održava i gerund
Osposobljen međusobno nezavisni
ER model podataka 88 / 129
Gerund
Radnik Mašina Deo
Ana m1 d1
Aca m2 d2
Eva m3 d3

Osposobljen Može proizvesti


(Ana, m1) (m1, d1)
(Aca, m2) (m1, d2)
(Ana, m3) (m2, d3)
Održava
(Aca, m1) Proizvodi
(Aca, m2) (Ana, m1, d1)
(Eva, m3) (Aca, m2, d3)
ER model podataka 89 / 129
Agregacija
• Agregacija
– obezbeđuje objedinjavanje složenijih ER struktura
– cela ER struktura se posmatra kao jedan tip entiteta
• predstavlja povezani tip za neki TP
• može predstavljati korisnički pogled na BP ("virtuelni" TE)
– najjednostavniji primer agregacije
• gerund

– Geometrijska predstava agregacije u ER dijagramima

ER model podataka 90 / 129


Agregacija
• Primer
A AB B

C ABC

– alternativni dijagram u ovom primeru:

A AB B

C ABC

ER model podataka 91 / 129


Sadržaj
• Osnovni pojmovi
• Strukturalna komponenta
• ER dijagrami
• Integritetna komponenta
• Kardinalitet tipa poveznika
• Integritet tipa poveznika
• N-arni tip poveznika
• Gerund i agregacija
• Id-zavisnost, IS-A hijerarhija i kategorizacija
• Završne napomene
ER model podataka 92 / 129
Slabi tip entiteta
• Slabi tip entiteta
– tip entiteta čije su pojave zavisne od pojava nekog
drugog TE
• Vrste zavisnosti slabih TE
– egzistencijalna
– identifikaciona

ER model podataka 93 / 129


Egzistencijalna zavisnost
• Egzistencijalna zavisnost
– između pojava dva tipa entiteta
– postoji kada je minimalni kardinalitet tipa poveznika
(a) jednak 1
• Regularni tip entiteta
– tip entiteta koji nije u egzistencijalnoj zavisnosti

ER model podataka 94 / 129


Egzistencijalna zavisnost
• Primer:

(1, 1) (0, N)
Radnik Raspoređen Radno mesto

– Regularni TE: Radno_mesto


– Slabi TE: Radnik
• egzistencijalno zavisan od TE Radno_mesto
– Ako se ukine radno mesto, radnik gubi posao
– Radnik - egzistencijalno zavisni TE

ER model podataka 95 / 129


Identifikaciona zavisnost
• Identifikaciona zavisnost slabog tipa entiteta
– poseban slučaj egzistencijalne zavisnosti
– može postojati samo kada su i minimalni i maksimalni
kardinalitet TP prema slabom TE jednaki 1
• (a, b) = (1, 1)
– u semantičkom smislu, poseban koncept u ER
modelu podataka
– uvodi klasifikaciju tipova poveznika
• neidentifikacioni TP
• identifikacioni TP

ER model podataka 96 / 129


Identifikaciona zavisnost
• Identifikacioni tip poveznika
– reprezentuje identifikacionu zavisnost slabog TE
– ukazuje da se svaka pojava zavisnog TE može
identifikovati samo uz pomoć identifikatora
nadređenog TE
– identifikator (ključ) zavisnog TE formira se
korišćenjem identifikatora (ključa) nadređenog TE

ER model podataka 97 / 129


Identifikaciona zavisnost
• Identifikacioni tip poveznika
– geometrijska predstava u ER dijagramima

(a, b) (1, 1)

– opcionalno, id-zavisni TE može se predstaviti oblikom

– navođenje kardinaliteta (1, 1) nije obavezno


• podrazumeva se i često se izostavlja

ER model podataka 98 / 129


Identifikaciona zavisnost
• Primer:

Mbr Ime
(0, N)
Radnik Ima Dete

• Ima - identifikacioni TP
• Dete - identifikaciono zavisni TE
• Radnik - nadređeni (regularni) TE

ER model podataka 99 / 129


Identifikaciona zavisnost
• Identifikaciono zavisni TE može posedovati
neprazan skup sopstvenih identifikacionih
obeležja
– primer za TE Dete: Ime
• Bilo koja pojava id-zavisnog TE se može
identifikovati isključivo navođenjem:
– vrednosti njegovih identifikacionih obeležja i
– vrednosti identifikatora (ključa) nadređenog TE

ER model podataka 100 / 129


Identifikaciona zavisnost
• Identifikator id-zavisnog TE Ni
(N, X)
–N - naziv nadređenog TE
–X - skup identifikatorskih obeležja TE Ni
• Ključ id-zavisnog TE Ni
Ki = K  X
–K - ključ nadređenog TE

ER model podataka 101 / 129


Identifikaciona zavisnost
• Primer
– Identifikator id-zavisnog TE Dete
(Radnik, {Ime})
– Ključ id-zavisnog TE Dete
Ki = Mbr+Ime

• Napomene
– regularni TE može učestvovati kao id-zavisan
povezani tip u nekom drugom TP
– id-zavisni TE može učestvovati i kao id-zavisan i kao
regularan u više različitih TP

ER model podataka 102 / 129


IS-A hijerarhija
• Tip poveznika IS-A hijerarhija
– poseban koncept - tip poveznika u EER modelu
– zahteva uvođenje superklase i potklase
• Superklasa (nadtip) i potklasa (podtip)
– predstavljaju posebne vrste tipova
– pojmovi vezani za postupak specijalizacije, odnosno
generalizacije, svojstvene semantičkim modelima
podataka

ER model podataka 103 / 129


IS-A hijerarhija
• Specijalizacija
– primenjuje se kada neki skup entiteta ili poveznika -
superklasa poseduje prepoznatljive podskupove
(potklase) sa:
• samo sebi svojstvenim obeležjima, ili
• samo sebi svojstvenim vezama sa drugim klasama entiteta ili
poveznika

ER model podataka 104 / 129


IS-A hijerarhija
• Date su klase:
– E1 = {ei | P1(ei)}
– E2 = {ei | P2(ei)}
• Uočava se implikacija:
P2(ei)  P1(ei)
• Tada važi:
E2  E1
– E1 se naziva superklasom (nadtipom)
– E2 se naziva potklasom (podtipom)

ER model podataka 105 / 129


IS-A hijerarhija
• Pojmovi superklase i potklase se uvode
– da bi model statičke strukture realnog sistema bio
semantički bogatiji
– da bi se izbegle nula vrednosti u ekstenziji
– da bi se izbeglo definisanje tipa poveznika, koji nema
mnogo smisla

ER model podataka 106 / 129


IS-A hijerarhija
• Specijalizacija se vrši na osnovu vrednosti
nekog skupa klasifikacionih obeležja
• U tipu entiteta superklase ostaju
– sva zajednička obeležja i
– primarni ključ
• U tipove entiteta - potklase distribuiraju se samo
svojstvena, specifična obeležja

ER model podataka 107 / 129


IS-A hijerarhija
• Tip poveznika IS-A hijerarhija
– geometrijska predstava u ER (a, b)
dijagramima

(1, 1)

– opcionalno, TE potklasa se može


predstaviti oblikom

– navođenje kardinaliteta (a, b) je obavezno - tip IS-A


– Kardinaliteti (1, 1) prema potklasama se mogu
izostaviti
ER model podataka 108 / 129
IS-A hijerarhija
• Tip IS-A hijerarhije
– definiše se kardinalitetima tipa poveznika IS-A
hijerarhija na strani superklase

• Minimalni kardinalitet (a)


–1 - Totalna IS-A hijerarhija
–0 - Parcijalna IS-A hijerarhija

• Maksimalni kardinalitet (b)


–1 - Nepresečna IS-A hijerarhija
–N - Presečna IS-A hijerarhija

ER model podataka 109 / 129


IS-A hijerarhija
• Primer:
– inicijalni tip entiteta – superklasa

Radnik({Mbr, Ime, Prz, Zan, Klas, Spec, BrPJz},{Mbr})

– klasifikaciono obeležje
• Zan - zanimanje radnika

ER model podataka 110 / 129


IS-A hijerarhija

Mbr Ime Prz Zan


Pisaća_mašina

(0, 1)
Radnik

(0, 1)
Radi
Zan
IS-A

(1, 1)
Projektant Programer Daktilograf

Spec BrPJz Klas

ER model podataka 111 / 129


IS-A hijerarhija
• Bitne karakteristike
– Nasleđivanje osobina superklase
– Ključ (identifikator) svake potklase je primarni ključ
(identifikator) superklase – nasleđivanje ključeva
• pojave potklase se identifikuju putem vrednosti primarnog
ključa odgovarajuće pojave superklase
– Potklase mogu imati svoje sopstvene ključeve
– Identifikaciona zavisnost svake potklase prema
superklasi
– Potklasa može imati ulogu superklase u drugoj IS-A
hijerarhiji
– Nad jednim tipom može se napraviti više različitih IS-
A hijerarhija, koristeći različite kriterijume

ER model podataka 112 / 129


Kategorizacija
• Tip poveznika kategorizacije
– poseban koncept - tip poveznika u EER modelu
– pojam vezan za postupak klasifikacije (tipizacije),
svojstvene semantičkim modelima podataka
– zahteva uvođenje pojma kategorije

ER model podataka 113 / 129


Kategorizacija
• Kategorija
– predstavlja posebnu vrstu tipa (TE, ili TP – gerunda)
– jedan TE se povezuje s više kategorija (barem dve)
– svaka pojava posmatranog TE pripada najviše jednoj
kategoriji
• "ekskluzivni tip poveznika" prema kategorijama
– ne postoji id-zavisnost posmatranog TE od kategorija,
ili obratno
• posmatrani TE i kategorije su međusobno nezavisni
(regularni) tipovi
– može, a ne mora postojati skup klasifikacionih
obeležja kategorije

ER model podataka 114 / 129


Kategorizacija
• Tip poveznika kategorizacije
– geometrijska predstava u ER dijagramima

(a1, b1)

(a2, 1)

– navođenje kardinaliteta (a, 1) je obavezno


• a2 definiše tip kategorizacije
– 0 – parcijalna kategorizacija
– 1 – totalna kategorizacija

ER model podataka 115 / 129


Kategorizacija
• Primer: Pravno lice Fizičko lice

(0, N)

EX-OR

(1, 1)

Član kluba

– Semantika
• član kluba mora biti ili pravno, ili fizičko lice
• pravno ili fizičko lice može ostvariti više, a ne mora ostvariti ni
jedno članstvo u klubu

ER model podataka 116 / 129


Sadržaj
• Osnovni pojmovi
• Strukturalna komponenta
• ER dijagrami
• Integritetna komponenta
• Kardinalitet tipa poveznika
• Integritet tipa poveznika
• N-arni tip poveznika
• Gerund i agregacija
• Id-zavisnost, IS-A hijerarhija i kategorizacija
• Završne napomene
ER model podataka 117 / 129
Uloga ER modela u projektovanju
• Pogodan za rane korake projektovanja
• Pojam konceptualne i implementacione šeme
• Dijagramska tehnika pogodna je za
komunikaciju sa korisnicima
• Postoje heuristička pravila projektovanja
konceptualne šeme BP
– na osnovu deskriptivnog opisa strukture i ograničenja
u realnom sistemu
• Ne postoje standardi dijagramske reprezentacije

ER model podataka 118 / 129


Uloga ER modela u projektovanju
• Neka heuristička pravila
– Imenice ukazuju na potrebu uvođenja tipova entiteta
– Glagolski oblici ukazuju na potrebu uvođenja tipova
poveznika ili gerunda
– Fraze oblika “bar jedan”, “više”, “najmanje jedan” i
slične, ukazuju na kardinalitete tipova poveznika ili
gerunda
– Postojanje različitih uloga entiteta jednog skupa u
vezama sa entitetima drugih skupova, ukazuje na
potrebu uvođenja više tipova poveznika između
odgovarajućih tipova entiteta

ER model podataka 119 / 129


Uloga ER modela u projektovanju
• Neka heuristička pravila
– Preporučljivo je da se uloge entiteta u vezama
eksplicitno navedu
– Veze između entiteta jednog skupa ukazuju na
potrebu uvođenja rekurzivnog tipa poveznika
– Kod rekurzivnih veza je posebno važno da se uloge
entiteta eksplicitno navedu
– Vremensko prethođenje entiteta jednog skupa u
odnosu na entitete nekog drugog skupa, ukazuje na
egzistencijalnu zavisnost entiteta drugog skupa od
entiteta prvog skupa i potrebu uvođenja minimalnog
kardinaliteta a = 1

ER model podataka 120 / 129


Uloga ER modela u projektovanju
• Neka heuristička pravila
– Potreba takvog selektivnog povezivanja entiteta tri ili
više skupova, kod kojeg u vezi mogu učestvovati
samo entiteti koji su već u nekoj drugoj vezi sa
entitetima jednog ili više drugih skupova, ukazuje na
neophodnost korišćenja gerunda
– Postojanje entiteta jednog skupa sa specifičnim
osobinama ili vezama sa entitetima drugih skupova,
ukazuje na potrebu uvođenja IS-A hijerarhije

ER model podataka 121 / 129


Uloga ER modela u projektovanju
• Neka heuristička pravila
– Svako obeležje može pripadati samo jednom tipu
entiteta, ili samo jednom tipu poveznika
– Nasleđena obeležja ključa tipa poveznika se ne
uključuju u sam skup obeležja tipa poveznika
– Tip entiteta ili tip poveznika sadrži samo ona obeležja
realnog skupa entiteta, ili realnog skupa poveznika,
koja su bitna za realizaciju ciljeva postavljenih pred
informacioni sistem

ER model podataka 122 / 129


Varijante u dijagramskom označavanju
Mbr OzRm
(1,1) (0,N)
Radnik Raspoređen Radno mesto

Mbr OzRm
(0,N) (1,1)
Radnik Raspoređen Radno mesto

Mbr OzRm
(1,1) (0,*)
Radnik Raspoređen Radno mesto

Mbr OzRm
(1,1) (0,N)
Radnik Raspoređen Radno mesto

ER model podataka 123 / 129


Varijante u dijagramskom označavanju
Mbr OzRm
(1,1) (0,N)
Radnik Raspoređen Radno mesto

Mbr OzRm

Radnik Radno mesto

Mbr OzRm

Radnik Radno mesto

Mbr OzRm
1 N
Radnik Raspoređen Radno mesto

ER model podataka 124 / 129


Varijante u dijagramskom označavanju
Mbr OzRm
(1,1) (0,N)
Radnik Raspoređen Radno mesto

Radnik Radno mesto

Mbr OzRM

Radnik 0..* 1..1 Radno mesto

Mbr OzRM

ER model podataka 125 / 129


Varijante u dijagramskom označavanju
Mbr OzPrj
(1,N) (0,N)
Radnik Raspoređen Projekat

Radnik Projekat

Mbr OzPrj

Radnik Raspoređen Projekat

Mbr ... OzPrj

ER model podataka 126 / 129


Varijante u dijagramskom označavanju
Mbr OzPrj
(1,N) (0,N)
Radnik Raspoređen Projekat

Radnik 0..* 1..* Projekat

Mbr OzPrj

Raspoređen
...

ER model podataka 127 / 129


Sadržaj
• Osnovni pojmovi
• Strukturalna komponenta
• ER dijagrami
• Integritetna komponenta
• Kardinalitet tipa poveznika
• Integritet tipa poveznika
• N-arni tip poveznika
• Gerund i agregacija
• Id-zavisnost, IS-A hijerarhija i kategorizacija
• Završne napomene
ER model podataka 128 / 129
Pitanja i komentari

?
ER model podataka 129 / 129
Baze podataka

Model podataka tipova


entiteta i poveznika
ER model podataka

ER model podataka
Baze podataka

Koncepcija relacionog
modela podataka
Motivacija nastanka relacionog
modela podataka

BP – Koncepcija RMP
Sadržaj
• Mrežni i hijerarhijski MP
• Relacioni MP
• 12 principa RMP

BP – Koncepcija RMP 2 / 27
Mrežni i hijerarhijski model
• U korišćenju 1970-ih godina
• Nedostaci
– čvrsta povezanost programa i fizičke strukture
podataka
– strukturalna komleksnost
– proceduralno orijentisani jezici za manipulaciju
podacima
– "ad hoc" razvijeni modeli
• bez značajnije upotrebe matematičkih formalizama

BP – Koncepcija RMP 3 / 27
Mrežni i hijerarhijski model

Student Predmet

SI Ispit PI

Iva Ana

9 8 8 6 7

Mat Fiz Hem

BP – Koncepcija RMP 4 / 27
Sadržaj
• Mrežni i hijerarhijski MP
• Relacioni MP
• 12 principa RMP

BP – Koncepcija RMP 5 / 27
Relacioni model podataka
• U razvoju od 1970-ih godina
• Codd, E. F. (1970). "A Relational Model of Data for Large
Shared Data Banks", Communications of the ACM 13(6):
377-387.
– Komercijalna upotreba od 199x-ih
• Motiv razvoja
– otklanjanje nedostataka klasičnih modela podataka
• čvrsta povezanost logičkih i fizičkih aspekata
• strukturalna kompleksnost
• navigacioni jezik
– insistiranje na matematičkim osnovama u razvoju MP
• matematička osnova RMP
– teorija skupova i relacija
– jako oslanjanje na predikatski račun I reda
BP – Koncepcija RMP 6 / 27
Relacioni model podataka
• Zahtev
– nezavisnost programa od podataka, tj. fizičke
strukture podataka
• Kod ranijih MP
– fizički aspekti BP ugrađeni u programe
• raspodela slogova po zonama
• fizički redosled  logičko grupisanje slogova
• transformacija vrednosti ključa u adresu
• lanci slogova sa pokazivačima
• hijerarhijski redosled slogova
• postupci zaštite podataka

BP – Koncepcija RMP 7 / 27
Relacioni model podataka
• Nezavisnost programa od podataka - rešenje
– potpuno odvajanje prezentacionog od formata
memorisanja
– relacija kao skup n-torki (torki)
– apstraktni opis relacije: šema relacije
N(R, C)
• R - skup obeležja
• C - skup ograničenja, pri čemu je
– K  C – obavezno zadat skup ključeva, koji je neprazan
• često, u početnim fazama projektovanja, šema relacije se
posmatra kao struktura
N(R, K)

BP – Koncepcija RMP 8 / 27
Relacioni model podataka
• Primer
– Fakultet ({SFK, NAZ, BIP}, {SFK})
– r(Fakultet) = { (PMF, Matematički, 7),
(EKF, Ekonomski, 4),
(ETF, Elektrotehnički, 9),
(MAF, Mašinski, 7)
}

– Upis nove torke


(EKF, Elektronski, 8),
– narušio bi ograničenje ključa (uslov integriteta)

BP – Koncepcija RMP 9 / 27
Relacioni model podataka
• Strukturalna jednostavnost
– koncept relacije
• osnova reprezentacije logičkih struktura podataka u RMP
– ne sadrži nikakve informacije o fizičkoj organizaciji podataka
– "prirodna" upotreba jednog od fundamentalnih matematičkih
koncepata
• relacija – "homogena" i "uniformna" struktura
– lako razumljiva korisnicima podataka
– uobičajena je tabelarna reprezentacija
» šema relacije  opis tabele (definicija tabele)
» relacija  kompletan sadržaj tabele (tabela)

BP – Koncepcija RMP 10 / 27
Relacioni model podataka
• Strukturalna jednostavnost
– selekcija podataka u operacijama nad BP
• kod ranijih MP
– upotreba fizičkih (relativnih ili apsolutnih) adresa
» pozicioniranje upotrebom indikatora aktuelnosti ili
» pozicioniranje putem odnosa između podataka
• kod relacionog MP
– asocijativno adresiranje
» isključiva upotreba simboličkih adresa – vrlo često
vrednosti ključa
» svaki podatak u BP pronalazi se na osnovu naziva relacije,
zadatih obeležja i vrednosti ključa
» skup n-torki (torki) sa zajedničkom osobinom selektira se
na uniforman način – zadavanjem istog logičkog uslova
» SUBP vodi računa o transformaciji simboličke u relativnu
adresu
BP – Koncepcija RMP 11 / 27
Relacioni model podataka
• Primer
Fakultet Projektant
SFK NAZ BIP MBR IME PRZ SFK
FIL Filozofski 1 M3 Iva Ban PMF
PMF Matematički 7 M1 Ana Tot MAF
ETF Elektrotehnički 9 M4 Ana Ras FIL
EKF Ekonomski 4 M8 Aca Pap ETF
MAF Mašinski 7 M6 Iva Ban EKF
M5 Eva Tot ETF

BP – Koncepcija RMP 12 / 27
Relacioni model podataka
• Strukturalna jednostavnost
– povezivanje podataka
• kod ranijih MP
– upotreba fizičkih (relativnih ili apsolutnih) adresa u funkciji
pokazivača
– fizičko pozicioniranje logički susednih podataka
» o čemu je svaki transakcioni program morao voditi računa
• kod relacionog MP
– upotreba simboličkih adresa – prenetih vrednosti ključa
– rešenje putem prostiranja ključa
» uvođenje pojma stranog ključa i ograničenja
referencijalnog integriteta
– rešenje putem kreiranja posebne tabele sa prostiranjem
ključeva
» u oba slučaja, transakcioni program ne vodi računa o
pretvaranju simboličke u relativnu adresu
BP – Koncepcija RMP 13 / 27
Relacioni model podataka
• Deklarativni jezik
– temelji se na primenjenim tehnikama povezivanja
podataka sa prostiranjem ključa
– dva alata za upitni jezik
• relaciona algebra
» definisana na osnovama teorije skupova i skupovnih
operacija
– skupovni operatori: unija, presek, razlika
– specijalizovani skupovni operatori: spoj (join), projekcija,
selekcija, itd.
• relacioni račun
– relacioni račun nad torkama
– relacioni račun nad domenima
» definisani na osnovama predikatskog računa I reda

BP – Koncepcija RMP 14 / 27
Relacioni model podataka
• SQL - Structured Query Language
– zasnovan na relacionom računu nad torkama
– deklarativan
– rad sa skupovima podataka (torki)
– osnovni oblik naredbe za upite SQL-a je

SELECT <lista obeležja>


FROM <lista relacija>
WHERE <logički izraz>

BP – Koncepcija RMP 15 / 27
Relacioni model podataka
• Primer
– SELECT IME, PRZ, BIP
FROM Fakultet, Projektant
WHERE BIP > 5 AND
Fakultet.SFK = Projektant.SFK

IME PRZ BIP


Iva Ban 7
Ana Tot 7
Aca Pap 9
Eva Tot 9

BP – Koncepcija RMP 16 / 27
Relacioni model podataka
• Primer
– SELECT IME, PRZ, BIP
FROM Fakultet NATURAL JOIN Projektant
WHERE BIP > 5

IME PRZ BIP


Iva Ban 7
Ana Tot 7
Aca Pap 9
Eva Tot 9

BP – Koncepcija RMP 17 / 27
Sadržaj
• Mrežni i hijerarhijski MP
• Relacioni MP
• 12 principa RMP

BP – Koncepcija RMP 18 / 27
12 principa RMP
• Codd, E. F. (1990).
– "The Relational Model for Data Base Management:
Version 2", Addison Wesley.

– Rule 0: The system must qualify as relational, as a


database, and as a management system
– For a system to qualify as a relational database management
system (RDBMS), that system must use its relational facilities
(exclusively) to manage the database.

– Rule 1: The information rule


– All information in the database is to be represented in one and
only one way, namely by values in column positions within rows
of tables.

BP – Koncepcija RMP 19 / 27
12 principa RMP
– Rule 2: The guaranteed access rule
• All data must be accessible with no ambiguity. This rule is
essentially a restatement of the fundamental requirement for
primary keys. It says that every individual scalar value in the
database must be logically addressable by specifying the
name of the containing table, the name of the containing
column and the primary key value of the containing row.

– Rule 3: Systematic treatment of null values


• The DBMS must allow each field to remain null (or empty).
Specifically, it must support a representation of "missing
information and inapplicable information" that is systematic,
distinct from all regular values (for example, "distinct from
zero or any other number", in the case of numeric values),
and independent of data type. It is also implied that such
representations must be manipulated by the DBMS in a
systematic way.
BP – Koncepcija RMP 20 / 27
12 principa RMP
– Rule 4: Active online catalog based on the relational
model
• The system must support an online, inline, relational catalog
that is accessible to authorized users by means of their
regular query language. That is, users must be able to
access the database's structure (catalog) using the same
query language that they use to access the database's data.

BP – Koncepcija RMP 21 / 27
12 principa RMP
– Rule 5: The comprehensive data sublanguage rule
• The system must support at least one relational language
that
» Has a linear syntax (whose statements are expressible,
per some well-defined syntax, as character strings)
» Can be used both interactively and within application
programs,
» Supports data definition operations (including view
definitions), data manipulation operations (update as well
as retrieval), security and integrity constraints, and
transaction management operations (begin, commit, and
rollback).

– Rule 6: The view updating rule


• All views that are theoretically updatable must be updatable
by the system.

BP – Koncepcija RMP 22 / 27
12 principa RMP
– Rule 7: High-level insert, update, and delete
• The system must support set-at-a-time insert, update, and
delete operators. This means that data can be retrieved from
a relational database in sets constructed of data from
multiple rows and/or multiple tables. This rule states that
insert, update, and delete operations should be supported for
any retrievable set rather than just for a single row in a single
table.

– Rule 8: Physical data independence


• Changes to the physical level (how the data is stored,
whether in arrays or linked lists etc.) must not require a
change to an application based on the structure.

BP – Koncepcija RMP 23 / 27
12 principa RMP
– Rule 9: Logical data independence
• Changes to the logical level (tables, columns, rows, and so
on) must not require a change to an application based on the
structure. Logical data independence is more difficult to
achieve than physical data independence.

– Rule 10: Integrity independence


• Integrity constraints must be specified separately from
application programs and stored in the catalog. It must be
possible to change such constraints as and when appropriate
without unnecessarily affecting existing applications.

BP – Koncepcija RMP 24 / 27
12 principa RMP
– Rule 11: Distribution independence
• The distribution of portions of the database to various
locations should be invisible to users of the database.
Existing applications should continue to operate successfully:
» when a distributed version of the DBMS is first introduced;
and
» when existing distributed data are redistributed around the
system.

– Rule 12: The nonsubversion rule


• If a relational system has a low-level (single-record-at-a-time)
language, that low level cannot be used to subvert or bypass
the integrity rules and constraints expressed in the higher
level relational language (multiple-records-at-a-time).

BP – Koncepcija RMP 25 / 27
Sadržaj
• Mrežni i hijerarhijski MP
• Relacioni MP
• 12 principa RMP

BP – Koncepcija RMP 26 / 27
Pitanja i komentari

?
BP – Koncepcija RMP 27 / 27
Baze podataka

Koncepcija relacionog
modela podataka
Motivacija nastanka relacionog
modela podataka

BP – Koncepcija RMP
Baze podataka

Osnove relacionog
modela podataka
Strukturalna, operacijska i
integritetna komponenta
relacionog modela podataka

BP – Osnove RMP
Sadržaj
• Model podataka
• Strukturalna komponenta I
• Operacijska komponenta
• Strukturalna komponenta II
• Integritetna komponenta
• Osnovne projektantske pretpostavke

BP – Osnove RMP 2 / 109


Model podataka
• Strukturalna komponenta
– primitivni i složeni koncepti
• “gradivni” elementi modela podataka
– pravila za kreiranje složenih koncepata
– služi za modeliranje LSO, kao statičke strukture
sistema – šeme BP
• Operacijska komponenta
– upitni jezik (QL)
– jezik za manipulisanje podacima (DML)
– jezik za definiciju podataka (DDL)
– služi za modeliranje dinamike izmene stanja

BP – Osnove RMP 3 / 109


Model podataka
• Integrritetna komponenta
– skup tipova ograničenja (uslova integriteta)
– služi za modeliranje ograničenja nad podacima u BP

• Nivoi apstrakcije
– određeni modelom podataka
– nivo intenzije (konteksta)
• nivo tipa
– opisuje npr. nivo logičke strukture obeležja - šeme
– nivo ekstenzije (konkretizacije)
• nivo pojave tipa
– opisuje npr. nivo logičke strukture podataka

BP – Osnove RMP 4 / 109


Sadržaj
• Model podataka
• Strukturalna komponenta I
• Operacijska komponenta
• Strukturalna komponenta II
• Integritetna komponenta
• Osnovne projektantske pretpostavke

BP – Osnove RMP 5 / 109


Strukturalna komponenta I
• Primitivni kncepti u RMP
– Obeležje (Atribut)
• reprezentuje osobinu (svojstvo) klase entiteta ili poveznika u
realnom sistemu (RS)
– Domen
• specifikacija skupa mogućih vrednosti koje neka obeležja
mogu da dobiju

BP – Osnove RMP 6 / 109


Strukturalna komponenta I
• Polazna pretpostavka strukturalne komponente
RMP
– na kojoj se zasnivaju neke tehnike projektovanja
relacione šeme BP
– poznat je skup svih obeležja sistema
• univerzalni skup obeležja
U = {A1,…, An}
– poznat je skup svih domena sistema
• univerzalni skup domena
D = {D1,…, Dk}

BP – Osnove RMP 7 / 109


Strukturalna komponenta I
• Pravilo pridruživanja domena obeležjima
– svakom obeležju obavezno se pridružuje tačno jedan
domen
Dom: U  D, (Ai  U)(Dom(Ai)  D)

U A1, A2, …, Ai, Aj, …, An

D D2

D1
Di
Dk

BP – Osnove RMP 8 / 109


Strukturalna komponenta I
• Primer
U = {MBR, IME, POL, SPR, NAP}

– opis semantike uvedenih obeležja


• MBR - matični broj radnika
• IME - ime radnika
• POL - pol
• SPR - šifra projekta
• NAP - naziv projekta

BP – Osnove RMP 9 / 109


Strukturalna komponenta I
• Primer
U = {MBR, IME, POL, SPR, NAP}

D ={DIDS, DIME, DPOL DNAP}

– 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 – domena za nazive projekata {stringovi do dužine 30}

BP – Osnove RMP 10 / 109


Strukturalna komponenta I
• Primer
U = {MBR, IME, POL, SPR, NAP}

D ={DIDS, DIME, DPOL DNAP}

– pridruživanje domena obeležjima


• Dom(MBR) = DIDS, dom(MBR) = {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}

BP – Osnove RMP 11 / 109


Strukturalna komponenta I
• Konvencije u označavanju
– skup obeležja X = {A, B, C} skraćeno se zapisuje u
formi
• X = ABC, ili
• X = A+B+C
– obavezno u slučaju višeslovnih mnemoničkih oznaka obeležja
– izraz X  Y, gde su X i Y skupovi obeležja, skraćeno
se zapisuje kao XY

BP – Osnove RMP 12 / 109


Strukturalna komponenta I
• Primitivni koncepti nivoa intenzije
– domen
– obeležje
• Primitivni koncept nivoa ekstenzije
– vrednost

• kreiranje svih ostalih (složenih) koncepata


strukturalne komponente RMP
– kombinovanjem (strukturiranjem) primitivnih
koncepata
– korišćenjem definisanih pravila u RMP

BP – Osnove RMP 13 / 109


Strukturalna komponenta I
• Skup primitivnih i složenih koncepata RMP
– za opis LSO (nivo intenzije) i LSP (nivo ekstenzije)

Nivo intenzije Nivo ekstenzije


• Domen • Vrednost
• Obeležje • Podatak
• Skup obeležja • Torka (N-torka)
• Šema relacije • Relacija
• Šema BP • Baza podataka

BP – Osnove RMP 14 / 109


Strukturalna komponenta I
• Torka
– reprezentuje jednu pojavu entiteta ili poveznika
– pomoću torke se svakom obeležju, iz nekog skupa
obeležja, dodeljuje konkretna vrednost
• iz skupa mogućih vrednosti definisanog domenom
– formalno, za:
• U = {A1,…, An}
• DOM = i=1n (dom(Ai))
– skup svih mogućih vrednosti
• torka predstavlja preslikavanje
t : UDOM,
(Ai  U)(t(Ai)  dom(Ai))

BP – Osnove RMP 15 / 109


Strukturalna komponenta I
• Primer
– U = {MBR, IME, POL, SPR, NAP}

– Torka t1 definisana je na sledeći način


• t1(MBR) = 101
• t1(IME) = Ana
• t1(SPR) = 1100
t1(POL) =ž
• t1(NAP) = Univerzitetski IS

BP – Osnove RMP 16 / 109


Strukturalna komponenta I
• Primer
– Torka t1 može se prikazati kao skup podataka

t1 = {(MBR, 101), (IME, Ana), (POL, ž),


(SPR, 1100), (NAP, Univerzitetski IS)}

– Zadata je i torka t2

t2 = {(MBR, 210), (IME, Aca), (POL, m),


(SPR, 0105), (NAP, Polaris)}

BP – Osnove RMP 17 / 109


Strukturalna komponenta I
• Restrikcija (“skraćenje”) torke t
– na skup obeležja X  U
– oznaka: t[X]
– svakom obeležju iz skupa X pridružuje se ona
vrednost koju je imala polazna torka t
– formalno
• X  U, t: UDOM,
• t[X]: X  DOM
(A  X)(t[X](A) = t(A))

BP – Osnove RMP 18 / 109


Strukturalna komponenta I
• Primer
– t2 = {(MBR, 210), (IME, Aca), (POL, m),
(SPR, 0105), (NAP, Polaris)}

– Neka je X = MBR+IME
– t2[X] = {(MBR, 210), (IME, Aca)}

BP – Osnove RMP 19 / 109


Strukturalna komponenta I
• Relacija
– nad skupom obeležja U
– predstavlja konačan skup torki
– reprezentuje skup realnih entiteta ili poveznika
– formalno
r(U)  {t | t: UDOM}, | r |  ℕ0

Skup svih mogućih torki nad


skupom obeležja U - Tuple(U)

BP – Osnove RMP 20 / 109


Strukturalna komponenta I
• Primer
– U = {MBR, IME, POL, SPR, NAP}

– r1(U) = {t1, t2}


• t1 = {(MBR, 101), (IME, Ana), (POL, ž), (SPR, 1100),
(NAP, Univerzitetski IS)}

• t2 = {(MBR, 210), (IME, Aca), (POL, m), (SPR, 0105),


(NAP, Polaris)}

BP – Osnove RMP 21 / 109


Strukturalna komponenta I
• Primer
– 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}

BP – Osnove RMP 22 / 109


Strukturalna komponenta I
• U relaciji se ne mogu pojaviti dve identične torke
– to je onda ista torka, samo dva puta prikazana

• Uobičajena reprezentacija relacije


– pomoću tabele
– relaciju predstavlja kompletan sadržaj tabele
• kratko, tabela
– poredak obeležja (kolona tabele) ne utiče na
informacije koje sa sobom nosi relacija - nebitan
– poredak torki u relaciji ne utiče na informacije koje sa
sobom nosi relacija - nebitan

BP – Osnove RMP 23 / 109


Strukturalna komponenta I
• Primeri

Radnik MBR 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

BP – Osnove RMP 24 / 109


Sadržaj
• Model podataka
• Strukturalna komponenta I
• Operacijska komponenta
• Strukturalna komponenta II
• Integritetna komponenta
• Osnovne projektantske pretpostavke

BP – Osnove RMP 25 / 109


Operacijska komponenta
• Jezik za manipulaciju podacima u RMP
– operacije za ažuriranje relacija
• dodavanje nove torke (Add)
• brisanje postojeće torke (Delete)
• modifikacija podataka postojeće torke (Update)
• Jezik za definiciju podataka u RMP
– operacije za upravljanje šemom BP
• kreiranje, brisanje i modifikovanje delova šeme BP
• Upitni jezik u RMP
– operacije za izražavanje upita nad jednom relacijom,
ili skupom relacija
• pružanje podataka na uvid korisniku

BP – Osnove RMP 26 / 109


Operacijska komponenta
• Upitni jezik sačinjavaju
– operatori za izražavanje upita
– pravila za formiranje operanada upita - izraza
– pravila za primenu tih operatora
• Vrste teoretskih upitnih jezika u RMP
– relaciona algebra
• zasnovana na teoriji skupova i skupovnih operacija
– relacioni račun
• nad torkama
• nad domenima
– zasnovani na predikatskom računu I reda

BP – Osnove RMP 27 / 109


Operacijska komponenta
• Osnovne skupovne operacije nad relacijama
– Unija
r(R)  s(R) = {t | t  r  t  s}
– Presek
r(R)  s(R) = {t | t  r  t  s}
– Razlika
r(R)  s(R) = {t | t  r  t  s}

BP – Osnove RMP 28 / 109


Operacijska komponenta
• Primer

rs A B
r A B a1 b1
a1 b1 a2 b2
a2 b2 a3 b3

s A B rs A B
a1 b1 a1 b1
a3 b3
rs A B
a2 b2

BP – Osnove RMP 29 / 109


Operacijska komponenta
• Selekcija
– torki iz relacije
– omogućava izbor (selektovanje) torki relacije po
nekom kriterijumu
F(r(R)) = {t  r | F(t)}
– logičkom formulom F izražava se kriterijum po kojem
se torke relacije r selektuju
– biće selektovane samo one torke, za koje je formula F
tačna
• zahteva se formalno definisanje sintakse za zapisivanje
selekcionih formula tipa F

BP – Osnove RMP 30 / 109


Operacijska komponenta
• Primer
– F(r(R)), F ::= PLT > 5000

r MBR IME POL SPR PLT


101 Ana ž 11 3400
102 Aca m 14 4200
110 Ivo m 11 7000
F
111 Olja ž 11 7200

BP – Osnove RMP 31 / 109


Operacijska komponenta
• Upit
– prikazati radnike čija je plata veća od 4000 i rade na
projektu sa šifrom 11
– PLT > 4000  SPR = 11(r)

MBR IME POL SPR PLT


110 Ivo m 11 7000
111 Olja ž 11 7200

BP – Osnove RMP 32 / 109


Operacijska komponenta
• Projekcija (restrikcija) relacije
– izdvajanje vrednosti pojedinih kolona iz relacije
– projektovanje relacije na podskup skupa obeležja
– XR
X(r(R)) = {t[X] | t  r(R)}

BP – Osnove RMP 33 / 109


Operacijska komponenta
• Primer
• P - pilot r P A L
• A - tip aviona Aca 747 101
• L - broj leta
Ivo 737 101
• Upit: Aca 747 102
– prikazati pilote i tipove
Ana DC9 110
aviona na kojima lete:
– PA(r(PAL))
P A
Aca 747
Ivo 737
Ana DC9

BP – Osnove RMP 34 / 109


Operacijska komponenta
• Primer
– Posmatra se relacija r

r MBR IME POL SPR PLT


101 Ana ž 11 3400
102 Aca m 14 4200
110 Ivo m 11 7000
111 Olja ž 11 7200

BP – Osnove RMP 35 / 109


Operacijska komponenta
• Upit
– prikazati matične brojeve i imena radnika čija plata je
veća od 4000, a rade na projektu sa šifrom 11
– F ::= PLT > 4000  SPR = 11
– MBR+IME(F(r))

MBR IME
110 Ivo
111 Olja

BP – Osnove RMP 36 / 109


Operacijska komponenta
• Prirodni spoj relacija
– spajanje torki različitih relacija po osnovu istih
vrednosti zajedničkih obeležja
• Date su relacije r(R) i s(S)

r(R)  s(S) = {t  Tuple(RS) | t[R]r  t[S]s}

BP – Osnove RMP 37 / 109


Operacijska komponenta
• Primer

r A B C s B C D
a1 b1 c1 b1 c1 d1
a1 b2 c2 b1 c1 d2
a1 b3 c3 b3 c3 d3
b4 c2 d2

r  s A B C D
a1 b1 c1 d1
a1 b1 c1 d2
a1 b3 c3 d3

BP – Osnove RMP 38 / 109


Operacijska komponenta
• Primer

r A B s C D
a1 b1 c1 d1
a2 b2 c2 d2

r  s A B C D
a1 b1 c1 d1
a1 b1 c2 d2
a2 b2 c1 d1
a2 b2 c2 d2

BP – Osnove RMP 39 / 109


Operacijska komponenta
• Primer

Radnik Radproj Projekat


MBR IME PLT POL MBR SPR SPR NAP
101 Ana 3400 ž 101 11 11 X25
102 Aca 4200 m 101 14 13 Polaris
110 Ivo 7000 m 102 14 14 Univ. IS
111 Olja 7200 ž 110 13
110 11

BP – Osnove RMP 40 / 109


Operacijska komponenta
• Upit
– izlistati matične brojeve radnika, šifre i nazive
projekata na kojima rade
– Radproj  Projekat

MBR SPR NAP


101 11 X25
101 14 Univ. IS
102 14 Univ. IS
110 13 Polaris
110 11 X25

BP – Osnove RMP 41 / 109


Operacijska komponenta
• Upit
– Izlistati matične brojeve i imena radnika, koji rade na
projektu sa šifrom 11
– MBR+IME(SPR = 11(Radproj)  Radnik), ili
– MBR+IME(SPR = 11(Radproj  Radnik))

MBR IME
101 Ana
110 Ivo

BP – Osnove RMP 42 / 109


Operacijska komponenta
• Dekartov proizvod relacija
– spajanje formiranjem svih mogućih kombinacija torki
iz dve 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)

BP – Osnove RMP 43 / 109


Operacijska komponenta
• Primer
– date su relacije
• r - red vožnje Niš – Beograd
• s - red vožnje Beograd - Novi Sad

r PNI DBG s PBG DNS


06:00 09:00 10:00 11:15
08:00 10:30 12:00 13:30
13:00 16:00

BP – Osnove RMP 44 / 109


Operacijska komponenta
• Upit
– pregled svih mogućih varijanti za putovanje od Niša
do 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 12:00 13:30
08:00 10:30 12:00 13:30

BP – Osnove RMP 45 / 109


Sadržaj
• Model podataka
• Strukturalna komponenta I
• Operacijska komponenta
• Strukturalna komponenta II
• Integritetna komponenta
• Osnovne projektantske pretpostavke

BP – Osnove RMP 46 / 109


Strukturalna komponenta II
• Šema relacije
– imenovani par
N(R, O)
– N - naziv šeme relacije (može biti izostavljen)
– R - skup obeležja šeme relacije
– O - skup ograničenja šeme relacije

• Pojava nad šemom relacije


– (R, O)
– bilo koja relacija r(R), takva da zadovoljava sva
ograničenja iz skupa O

BP – Osnove RMP 47 / 109


Strukturalna komponenta II
• Primer
– Data je šema relacije
Letovi({P, A, L}, O)
– O = {“Pilot može da leti samo na jednom tipu aviona”}

Let1 P A L Let2 P A L
Pop 747 101 Pop 747 101
Pop 747 102 Pop 737 102
Ana 737 103 Ana 737 103

– Da li prikazane relacije predstavljaju pojave nad


datom šemom relacije?
BP – Osnove RMP 48 / 109
Strukturalna komponenta II
• Relaciona šema baze podataka
– (imenovani) par
(S, I)
– S - skup šema relacija
S = {(Ri, Oi) | i  {1,..., n}}
– I - skup međurelacionih ograničenja

BP – Osnove RMP 49 / 109


Strukturalna komponenta II
• Primer
– Zadate su šeme relacija
• Radnik({MBR, IME, PRZ, DATR},
{“Ne postoje dva radnika sa istom vrednošću za MBR. Svaki
radnik poseduje vrednost za MBR.”})

• Projekat({SPR, NAP},
{“Ne postoje dva projekta sa istom vrednošću za SPR. Svaki
projekat poseduje vrednost za SPR.”})

• Angažovanje({SPR, MBR, BRC},


{“Ne može se isti radnik na istom projektu angažovati više od
jedanput. Pri angažovanju, vrednosti za MBR i SPR su uvek
poznate.”})

BP – Osnove RMP 50 / 109


Strukturalna komponenta II
• Primer
– 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, dok
projekat ne bude registrovan”
}
– (S, I) predstavlja jednu relacionu šemu BP

BP – Osnove RMP 51 / 109


Strukturalna komponenta II
• Relaciona baza podataka
– jedna pojava nad zadatom relacionom šemom baze
podataka (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 sva
međurelaciona ograničenja iz skupa I

BP – Osnove RMP 52 / 109


Strukturalna komponenta II
• Baza podataka
– reprezentuje jedno stanje realnog sistema
– ažurira se, jer promene stanja realnog sistema treba
da prate odgovarajuće promene podataka u BP
• Odnos šema BP - BP Šema BP
statička (sporo pro-
Nivo intenzije menljiva kategorija)
sistema BP
({(R1, O1),..., (Rn, On)}, I )

relaciona BP
dinamička (stalno pro-
menljiva kategorija)
sistema BP
{r1(R1),..., rn(Rn)}
Nivo ekstenzije

BP – Osnove RMP 53 / 109


Strukturalna komponenta II
• Primer
–S = {Radnik, Projekat, Angažovanje}
– RBP = {radnik, projekat, angažovanje}

Radnik Projekat Angažovanje

MBR IME PRZ DATR SPR NAP MBR SPR


101 Ana Pap 12.12.65. 11 X25 101 11
102 Aca Tot 13.11.48. 13 Polaris 101 14
110 Ivo Ban 01.01.49. 14 Univ. IS 102 14
111 Olja Kun 06.05.71.

BP – Osnove RMP 54 / 109


Strukturalna komponenta II
• Konzistentno stanje BP
– baza podataka RBP = {ri | i  {1,..., n}} nad šemom
(S, I) nalazi se u
• formalno konzistentnom stanju ako
– (ri  RBP)(ri zadovoljava sva ograničenja odgovarajuće šeme
(Ri, Oi))
– RBP zadovoljava sva međurelaciona ograničenja iskazana
putem I
• suštinski konzistentnom stanju ako
– se nalazi u formalno konzistentnom stanju i
– predstavlja vernu sliku stanja realnog sistema
» u praksi, nivo pojave grešaka u BP sveden je na ispod 2-
3%
– SUBP može da kontroliše formalnu konzistentnost

BP – Osnove RMP 55 / 109


Sadržaj
• Model podataka
• Strukturalna komponenta I
• Operacijska komponenta
• Strukturalna komponenta II
• Integritetna komponenta
• Osnovne projektantske pretpostavke

BP – Osnove RMP 56 / 109


Integritetna komponenta
• Definisana putem tipova ograničenja
• Karakteristike tipa ograničenja
– formalizam za zapisivanje (definicija)
– pravilo za interpretaciju (validaciju)
– oblast definisanosti
• tip logičke strukture obeležja nad kojom se ograničenje
definiše
– oblast interpretacije
• tip logičke strukture podataka nad kojom se ograničenje
interpretira

BP – Osnove RMP 57 / 109


Integritetna komponenta
• Karakteristike tipa ograničenja
– skup operacija nad bazom podataka koje mogu
dovesti do narušavanja ograničenja datog tipa
– skup mogućih akcija kojima se obezbeđuje očuvanje
validnosti baze podataka, pri pokušaju narušavanja
ograničenja datog tipa
• definiše se za svaku operaciju koja može dovesti do
narušavanja ograničenja

BP – Osnove RMP 58 / 109


Integritetna komponenta
• Tipovi ograničenja u relacionom modelu
podataka
– ograničenje domena
– ograničenje vrednosti obeležja
– ograničenje torke
– integritet entiteta (ograničenje ključa)
– ograničenje jedinstvenosti vrednosti obeležja
– zavisnost sadržavanja
– ograničenje referencijalnog integriteta
– funkcionalna zavisnost

BP – Osnove RMP 59 / 109


Integritetna komponenta
• Oblasti definisanosti u relacionom MP
– vanrelaciono ograničenje
• definiše se izvan konteksta šeme relacije
– jednorelaciono (unutarrelaciono, lokalno)
ograničenje
• definiše se nad tačno jednom šemom relacije
– višerelaciono ograničenje
• definiše se nad skupom ili nizom šema relacija, koji sadrži
bar dva člana

BP – Osnove RMP 60 / 109


Integritetna komponenta
• Oblasti interpretacije u relacionom MP
– ograničenje vrednosti
• interpretira se nad tačno jednom vrednošću nekog obeležja
– ograničenje torke
• interpretira se nad jednom torkom bilo koje relacije
– relaciono ograničenje
• interpretira se nad skupom torki bilo koje relacije
– međurelaciono ograničenje
• interpretira se nad barem dve, bilo koje relacije

BP – Osnove RMP 61 / 109


Integritetna komponenta
• Oblasti interpretacije u relacionom MP
– ograničenje torke
– relaciono ograničenje
– međurelaciono ograničenje
• Napomena "bilo koja relacija":
– jedna relacija iz baze podataka, ili
– relacija koja je nastala primenom izraza relacione algebre nad
jednom ili više drugih relacija - pogled
» moguća i primena operatora spajanja

BP – Osnove RMP 62 / 109


Integritetna komponenta
• Specifikacija domena
D(id(D), Predef)
–D - naziv domena
– id(D) - ograničenje (integritet) domena
– Predef - predefinisana vrednost domena
• Ograničenje domena
id(D) = (Tip, Dužina, Uslov)
– Tip - tip podatka (primitivni domen), ili
oznaka prethodno definisanog domena
– Dužina - dužina tipa podatka
– Uslov - logički uslov
BP – Osnove RMP 63 / 109
Integritetna komponenta
• Specifikacija domena
– Tip
• predstavlja jedinu obaveznu komponentu specifikacije
ograničenja domena
– Dužina
• navodi se samo za tipove podataka (primitivne domene) koji
to zahtevaju
• ne navodi za domene čiji tip ne predstavlja primitivni domen
– Uslov
• mora da ga zadovoljava svaka vrednost iz skupa mogućih
vrednosti domena
– Predef
• mora da zadovolji ograničenja tipa, dužine i uslova

BP – Osnove RMP 64 / 109


Integritetna komponenta
• Ograničenje domena
– interpretacija ograničenja
• moguća za bilo koju vrednost – konstantu d
• oznaka id(D)(d)

• Primeri
– DPrezime((String, 30, ), )
– DDatum((Date, , d  '01.01.1900'), )
– DOcena((Number, 2, d  5  d  10), )
– DPozOcena((DOcena, , d  6), 6)
•  - komponenta u specifikaciji nije zadata

BP – Osnove RMP 65 / 109


Integritetna komponenta
• Nula (nedostajuća, izostavljena) vrednost
– specijalna vrednost
– označava se posebnim simbolom
• , ili ? (u literaturi) ili
• NULL (u literaturi i SQL-u)
– moguća značenja
• nepoznata - postojeća vrednost obeležja
• nepostojeća vrednost obeležja
• neinformativna vrednost obeležja
– skup mogućih vrednosti svih domena proširuje se
nula vrednošću
DOM  {}
• nula vrednost a priori zadovoljava svako ograničenje domena

BP – Osnove RMP 66 / 109


Integritetna komponenta
• Specifikacija obeležja šeme relacije
– AR, N(R, O)
• zadaje se za svako obeležje šeme relacije

(id(N, A), Predef)


– id(A) - ograničenje vrednosti obeležja
– Predef - predefinisana vrednost obeležja
• Ograničenje vrednosti obeležja
id(N, A) = (Domen, Null)
– Domen - oznaka (naziv) domena obeležja
– Null  {T, } – ograničenje nula vrednosti obeležja
• T - dozvola dodele nula vrednosti obeležju u r(N)
•  - zabrana dodele nula vrednosti obeležju u r(N)
BP – Osnove RMP 67 / 109
Integritetna komponenta
• Specifikacija obeležja šeme relacije
– Domen i Null
• obavezne komponente specifikacije
– Predef
• ako se navede, onda je on važeći
• u protivnom, važeći je Predef odgovarajućeg Domena, ili
prvog sledećeg nasleđenog domena, za koji je Predef
definisan
• Interpretacija ograničenja
• moguća za bilo koju vrednost obeležja d
• oznaka id(N, A)(d)

BP – Osnove RMP 68 / 109


Integritetna komponenta
• Ograničenje torke
– izražava ograničenja na moguće vrednosti unutar
jedne torke
– predstavlja skup ograničenja vrednosti obeležja,
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 koje obeležje date
šeme relacije
– interpretacija ograničenja
• moguća za bilo koju torku nad skupom obeležja R, id(N)(t)
BP – Osnove RMP 69 / 109
Integritetna komponenta
• Primer
– Radnik({MBR, PRZ, IME, ZAN, BPJZ}, O)

Radnik Domen Null Predef

MBR MBRD  
PRZ PRZD  
IME IMED  
ZAN ZAND  
BPJZ BPJZD T 

Uslov: ZAN = ‘prg’  BPJZ <> 


BP – Osnove RMP 70 / 109
Integritetna komponenta
• Primer
– Radnik({MBR, PRZ, IME, ZAN, BPJZ}, O)

Domen Tip Dužina Uslov Predef

MBRD Number 4 d0 


PRZD String 30  
IMED String 15  
ZAND String 3  
BPJZD Number 2 d0 0

BP – Osnove RMP 71 / 109


Integritetna komponenta
• Ključ šeme relacije
– minimalni podskup skupa obeležja šeme relacije, na
osnovu kojeg se jedinstveno može identifikovati
svaka torka relacije nad datom šemom
– formalno, X je ključ ako
• 10 (u, v  r(R))(u[X] = v[X]  u = v)
• 20 (Y  X)(10)
– oblast interpretacije
• skup torki (relacija) nad datom šemom relacije

BP – Osnove RMP 72 / 109


Integritetna komponenta
• Ključ šeme relacije
– u određenim situacijama (u procesu projektovanja
šeme BP) skup ograničenja šeme relacije zadaje se
samo kao skup ključeva
N(R, K)
• Primer
– šema relacije Radnik(R, K)
• R = {MBR, IME, PRZ, DATR, POL, MESR, RBRE}
• K = {MBR, DATR+MESR+POL+RBRE}

BP – Osnove RMP 73 / 109


Integritetna komponenta
• Primer
– Radnik({MBR, IME, PRZ, DATR}, {MBR})
– Projekat({SPR, NAP}, {SPR})
– Angažovanje({SPR, MBR, BRC}, {SPR+MBR})

BP – Osnove RMP 74 / 109


Integritetna komponenta
• Ograničenje ključa (integritet entiteta)
– šeme relacije N(R, K)
• ključ X  K, X  R
• oznaka
Key(N, X)
– za sva obeležja ključa nula vrednosti su zabranjene
(XiK)(AXi)(Null(N, A) = )

– Vrste obeležja šeme relacije, s obzirom na ključeve


• primarno (ključno) obeležje
– pripada barem jednom ključu šeme relacije
• neprimarno (sporedno) obeležje
– ne pripada ni jednom ključu šeme relacije
BP – Osnove RMP 75 / 109
Integritetna komponenta
• Ograničenje ključa (integritet entiteta)
– 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čeva
• oznaka Kp(N)
• svaka šema relacije treba da poseduje tačno jedan primarni
ključ
• koristi se u ulozi asocijativne (simboličke) adrese za
povezivanje podataka u relacijama

BP – Osnove RMP 76 / 109


Integritetna komponenta
• Ograničenje jedinstvenosti
– vrednosti obeležja šeme relacije N(R, O)
– Uniqueness Constraint
Unique(N, X)
– X - skup obeležja, X  R
– zahteva da ne-nula kombinacija vrednosti obeležja
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))

BP – Osnove RMP 77 / 109


Integritetna komponenta
• Ograničenje jedinstvenosti
– 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}

BP – Osnove RMP 78 / 109


Integritetna komponenta
• Primer
Radnik({MBR, IME, PRZ, DATR, JMBG}, O)
– Uniq  O
– Uniq = {Unique(Radnik, JMBG)}
– Unique(Radnik, JMBG)
• zahteva da ako radnik poseduje ne-nula vrednost za JMBG,
onda je ta vrednost jedinstvena u relaciji nad šemom Radnik

BP – Osnove RMP 79 / 109


Integritetna komponenta
• Skup svih ograničenja šeme relacije
– praktično, kada šemu relacije treba implementirati u
datom SUBP, zadaje se kao unija
• skupa ključeva,
• ograničenja jedinstvenosti i
• ograničenja torke
N(R, K  Uniq  {id(R)})

BP – Osnove RMP 80 / 109


Integritetna komponenta
• Primer
Radnik({MBR, PRZ, IME, ZAN, BPJZ, JMBG},
K  Uniq  {id(R)})
– K = {MBR}
– Uniq = {Unique(Radnik, JMBG)}
– id(R) - prethodno zadat, u tabelarnom obliku

BP – Osnove RMP 81 / 109


Integritetna komponenta
• Zavisnost sadržavanja
– date su šeme relacije Ni(Ri, Oi) i Nj(Rj, Oj)
– dati su domenski kompatibilni nizovi obeležja
X = (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]

BP – Osnove RMP 82 / 109


Integritetna komponenta
• Zavisnost sadržavanja
Ni[X]  Nj[Y]
– važi ako je za bilo koje dve 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 dve šeme relacije
– oblast interpretacije
• relacije nad šemama Ni i Nj

BP – Osnove RMP 83 / 109


Integritetna komponenta
• Primer
– date su relacije r(Ni) i s(Nj)
– važi zavisnost sadržavanja Ni[B]  Nj[B]

r A B s B C
a1 b1 b1 c1
a2 b2 b2 c1
b3 c2

BP – Osnove RMP 84 / 109


Integritetna komponenta
• Primer
– date su relacije r(Ni) i s(Nj)
– važi zavisnost sadržavanja Ni[(A, B)]  Nj[(C, D)]

r A B s C D
a1 b1 a1 b1
a2  a2 b2
a3 b2

BP – Osnove RMP 85 / 109


Integritetna komponenta
• Ograničenje referencijalnog integriteta
– zavisnost sadržavanja Ni[X]  Nj[Y], kada je Y ključ
šeme relacije Nj(Rj, Kj)
– Ni - referencirajuća šema relacije
– Nj - referencirana šema relacije

BP – Osnove RMP 86 / 109


Integritetna komponenta
• Primer
– Angažovanje[MBR]  Radnik[MBR]
– Angažovanje[SPR]  Projekat[SPR]

Radnik Projekat Angažovanje

MBR IME PRZ DATR SPR NAP MBR SPR


101 Ana Pap 12.12.65. 11 X25 101 11
102 Aca Tot 13.11.48. 13 Polaris 101 14
110 Ivo Ban 01.01.49. 14 Univ. IS 102 14
111 Olja Kun 06.05.71.

BP – Osnove RMP 87 / 109


Integritetna komponenta
• Funkcionalna zavisnost (FZ)
– izraz oblika f: XY
• gde su X i Y skupovi obeležja
• f je oznaka FZ
• X i Y su podskupovi skupa U
• oznaka f se, u notaciji, često izostavlja
– semantika
• ako je poznata X vrednost, poznata je i Y vrednost
• svakoj X vrednosti odgovara samo jedna Y vrednost
– relacija r zadovoljava FZ XY ako važi
(u, v  r)(u[X] = v[X]  u[Y] = v[Y])
– oblast interpretacije
• relacija r(N) ili r(U)

BP – Osnove RMP 88 / 109


Integritetna komponenta
• Funkcionalna zavisnost (FZ)
– Primer
• MBRIME
– ako dve torke imaju istu vrednost za MBR, moraju imati istu
vrednost i za IME

– skup FZ se označava sa F
• F = {MBRIME, MBR+MES+GODBRC,...}
• Trivijalna FZ
– svaka FZ koja je zadovoljena u bilo kojoj relaciji
– svaka FZ XY, za koju važi Y  X
– Primer
• MBRMBR, MBR, ABA,...
BP – Osnove RMP 89 / 109
Integritetna komponenta
• Primer
– semantika uvedenih obeležja skupa U
• BRI - broj indeksa
• IME - ime studenta
• PRZ - prezime studenta
• BPI - broj položenih ispita
• OZP - oznaka predmeta
• NAP - naziv predmeta
• NAS - prezime nastavnika
• OCE - ocena na ispitu

BP – Osnove RMP 90 / 109


Integritetna komponenta
• Primer
Student
BRI IME PRZ BPI OZP NAP NAS OCE
159 Ivo Ban 13 P1 Mat Han 09
159 Ivo Ban 13 P2 Fiz Kun 08
013 Ana Tot 09 P1 Mat Pap 06
119 Eva Kon 15 P3 Hem Kiš 07
159 Ivo Ban 13 P3 Hem Kiš 10
119 Eva Kon 15 P1 Mat Han 09
159 Ivo Ban 13 P4 Mat Car 10
037 Eva Tot 01 P4 Mat Car 10

BP – Osnove RMP 91 / 109


Integritetna komponenta
• Primer
– Relacija Student zadovoljlava sledeće FZ

F = {BRIIME+PRZ+BPI, IME+PRZBRI, OZPNAP,


NASOZP+NAP, BRI+OZPOCE+NAS}

– Relacija Student ne zadovoljava sledeće FZ


BRIOCE, OZPNAS, ...

• Način identifikacije važećih FZ


– na osnovu odnosa i pravila poslovanja koji postoje u
realnom sistemu
BP – Osnove RMP 92 / 109
Integritetna komponenta
• Funkcionalna zavisnost
– logička posledica
• FZ f je logička posledica od skupa FZ F
• oznaka: F  f
– ako svaka relacija r koja zadovoljava F zadovoljava i f
– (r  SAT(U))(r  F  r  f)
• skup FZ F2 je logička posledica od skupa FZ F1
• oznaka: F1  F2
– ako (f  F2)(F1  f)
– implikacioni problem
• rešiti implikacioni problem, znači utvrditi da li važi F  f
– ekvivalentnost skupova FZ
• oznaka: F1  F2
• ako F1  F2  F2  F1
BP – Osnove RMP 93 / 109
Integritetna komponenta
• Funkcionalna zavisnost
– zatvarač (zatvorenje) skupa FZ
• 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+
– ekvivalentnost skupova FZ
• F1  F2 akko F1+ = F2+

BP – Osnove RMP 94 / 109


Integritetna komponenta
• Funkcionalna zavisnost
– Armstrongova pravila izvođenja
• refleksivnost
– Y  X  X  Y
• proširenje
– X  Y, W  V  XV  YW
• pseudotranzitivnost
– X  Y, YV  Z  XV  Z
– Izvedena pravila izvođenja
• uniranje desnih strana
– X  Y, X  Z  X  YZ
• dekompozicija desnih strana
– X  Y, V  Y  X  V
• tranzitivnost
– X  Y, Y  Z  X  Z
BP – Osnove RMP 95 / 109
Integritetna komponenta
• Primer
– varijante u označavanju
• primena pravila dekompozicije i uniranja desnih strana
{BRIIME, BRIPRZ}  {BRIIME+PRZ}

• proizvoljno dekomponovanje levih strana nije dozvoljeno


{BRI+OZPOCE}  {BRIOCE, OZPOCE}

BP – Osnove RMP 96 / 109


Integritetna komponenta
• Funkcionalna zavisnost
– Sistem armstrongovih pravila izvođenja je
– refleksivnost, proširenje i pseudotranizitivnost
• korektan (neprotivurečan)
– svaka FZ koja se izvede primenom AP iz nekog skupa FZ
predstavlja logičku posledicu tog skupa FZ
• kompletan
– svaka logička posledica nekog skupa FZ može se izvesti
primenom AP iz tog skupa
• 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

BP – Osnove RMP 97 / 109


Integritetna komponenta
• Nepotpuna FZ
– XY  F je nepotpuna
• ako sadrži logički suvišno obeležje na levoj strani
• (X'  X)(X'Y  F+)
– Primer
• BRI+IMEPRZ, zbog BRIIME
• redukuje se u BRIPRZ
• Tranzitivna FZ
– XZ tranzitivna
• ako važi XY  F+ i YZ  F+, a ne važi da je YX  F+
– Primer
• NASOZP, OZPNAP, (OZPNAS)
– NASNAP je tranzitivna i logički suvišna

BP – Osnove RMP 98 / 109


Integritetna komponenta
• Ključ šeme relacije i FZ
– X je ključ šeme relacije (R, F), ako važi
• 10 iz F sledi XR (XR  F+)
• 20 X je minimalni skup obeležja s osobinom 10
– (X'  X)(X'R  F+)

• Zatvarač (zatvorenje) skupa obeležja


– skup svih obeležja koja funkcionalno zavise od X
– XF+ = {A  U  XA  F+}

BP – Osnove RMP 99 / 109


Integritetna komponenta
• Algoritam za izračunavanje zatvarača XF+
• X0  X
• (Za i  0)(Xi+1  Xi  A  U  (VW  F)(V  Xi  A  W))
• (Za n  0)(Xn+1 = Xn  XF+ = Xn)
• Generisanje jednog ključa šeme relacije
– polazi se od R i vrši se redukcija
• izbacivanjem obeležja i izračunavanjem zatvarača ostatka
• XR
• Redukcija Red(X): (A  X)(A  (X \ {A})F+  X  X \ {A})
• Generisanje svih alternativnih ključeva
– polazi se od prvog generisanog ključa X, K  {X}
• (X  K)(VW  F)(X  W    Xnewk  (X \ W)V)
• Redukcija: Red(Xnewk): K  K  {Red(Xnewk)}
BP – Osnove RMP 100 / 109
Integritetna komponenta
• Primer
F = {BRIIME+PRZ+BPI, IME+PRZBRI, OZPNAP,
NASOZP+NAP, BRI+OZPOCE+NAS}

– šema relacije Student ima četiri ključa


• K1 = BRI+NAS, K2 = IME+PRZ+NAS,
• K3 = BRI+OZP, K4 = IME+PRZ+OZP

• Pojam ključa
– fundamentalan za teoriju i praksu relacionog MP
• ne projektuju se ostala ograničenja šeme BP, dok se ne
preciziraju ključevi svih šema relacija

BP – Osnove RMP 101 / 109


Integritetna komponenta
• Projekcija skupa funkcionalnih zavisnosti na
skup obeležja
– dati su skup fz F i skup obeležja X  U
– projekcija F |X predstavlja skup svih funkcionalnih
zavisnosti koje logički slede iz F, a definisane su u
skupu obeležja X
– formalno
F |X = {VW | F  VW  VW  X}
• Primer
– F = {AB, BC, BEF, AD}
– F |ACDEF = {AC, AEF, AD, sve trivijalne fz}

BP – Osnove RMP 102 / 109


Sadržaj
• Model podataka
• Strukturalna komponenta I
• Operacijska komponenta
• Strukturalna komponenta II
• Integritetna komponenta
• Osnovne projektantske pretpostavke

BP – Osnove RMP 103 / 109


Osnovne projektantske pretpostavke
• Pretpostavka o postojanju šeme univerzalne
relacije (ŠUR)
–U - univerzalni skup obeležja
– OGR - skup svih ograničenja realnog sistema
– šema univerzalne relacije
(U, OGR)
– pretpostavka da uvek egzistira u imaginarnom svetu
– Posledica
• jedinstvena uloga svakog obeležja u ŠUR
– ne postoje dva obeležja s istom ulogom (sinonimi)
– ne postoji obeležje s više od jedne uloge (homonimi)
• svako obeležje u budućoj šemi BP identifikuje se isključivo
putem svog naziva

BP – Osnove RMP 104 / 109


Osnovne projektantske pretpostavke
• Univerzalna relacija
– pojava nad ŠUR, r(U, OGR)
– reprezentuje stanje realnog sistema
– apstraktni pojam – preuzet iz imaginarnog sveta
– praktično, nemoguće je implementirati je pod nekim
SUBP
• prepreke logičkog karaktera i
• prepreke vezane za moguću fizičku organizaciju podataka
• teoretski zahtev
– stanje relacione baze podataka nad (S, I) treba, u
informativnom smislu, da odgovara sadržaju
univerzalne relacije

BP – Osnove RMP 105 / 109


Osnovne projektantske pretpostavke

(U, OGR) r(U)

({(R1, O1),..., (Rn, On)}, I )

{r1(R1),..., rn(Rn)}

BP – Osnove RMP 106 / 109


Osnovne projektantske pretpostavke
• Šema BP (S, I) treba da zadovolji sledeće
kriterijume u odnosu na (U, OGR)
– da predstavlja dekompoziciju ŠUR:
(Ni  S)(Ri  )  NiS(Ri) = U

– skup svih ograničenja da bude ekvivalentan


polaznom skupu ograničenja OGR
NiS(Oi)  I  OGR

– spojivost bez gubitaka informacija


r(U, OGR) = NiS(ri(Ri))

BP – Osnove RMP 107 / 109


Sadržaj
• Model podataka
• Strukturalna komponenta I
• Operacijska komponenta
• Strukturalna komponenta II
• Integritetna komponenta
• Osnovne projektantske pretpostavke

BP – Osnove RMP 108 / 109


Pitanja i komentari

?
BP – Osnove RMP 109 / 109
Baze podataka

Osnove relacionog
modela podataka
Strukturalna, operacijska i
integritetna komponenta
relacionog modela podataka

BP – Osnove RMP
Organizacija datoteka

Fizičke strukture podataka i


eksterni memorijski uređaji
Fizičke strukture datoteke i
razmena podataka

OD – FSP i jedinice diskova


Sadržaj
• Datoteka
• Jedinice magnetnih diskova
• Sprežni podsistem
• Efikasnost razmene podataka
• Performanse obrade podataka
• Organizacija datoteke i OS

OD – FSP i jedinice diskova 2 / 53


Datoteka
• Kao logička struktura podataka (LSP)
– struktura nad skupom pojava jednog tipa entiteta
• struktura slogova, nad datim tipom sloga
• često se posmatra kao linearna struktura slogova
• Kao fizička struktura podataka (FSP)
– predstavlja jednu LSP
– koja može biti viđena kao
• linearna struktura (niz) slogova ili
• niz znakova ili bajtova
– smeštenu na eksterni memorijski uređaj
– zajedno sa informacijama o samom načinu smeštanja
LSP na uređaj

OD – FSP i jedinice diskova 3 / 53


Datoteka
• Motivacija za upotrebu eksternih memorijskih
uređaja
– potreba trajnog memorisanja podataka
– potreba memorisanja velikih količina podataka
– potreba tolerantno brzog pristupa i operativnog
korišćenja velike količine trajno memorisanih
podataka
– potreba postizanja niske cene memorisanja po
jedinici kapaciteta

OD – FSP i jedinice diskova 4 / 53


Datoteka
• Izbor memorijskog uređaja
– OM – nepogodan izbor
• prednosti
– kada bi cela datoteka mogla stati odjednom u OM, svi postupci
vezani za obradu i organizovanje podataka sveli bi se na teoriju
algoritama i struktura podataka u OM
– kratko vreme pristupa (reda x10 ns) svakoj ćeliji, kao najmanjoj
adresibilnoj jedinici
– RAM pristup
» vreme pristupa ne zavisi od položaja lokacije na
memorijskom medijumu
» opredeljeno je radom elektroničkih komponenti
• nedostaci
– nedovoljan kapacitet
– nemogućnost trajnog memorisanja podataka
– i dalje značajno skuplje memorisanje po jedinici kapaciteta
OD – FSP i jedinice diskova 5 / 53
Datoteka
• Izbor memorijskog uređaja
– magnetni disk
• praktično, i dalje realan izbor već više decenija
• prednosti
– veliki kapacitet
– mogućnost trajnog memorisanja podataka
– značajno jevtinije memorisanje po jedinici kapaciteta
– direktan pristup
» pristupa se grupi ćelija (bitova) direktno, a zatim svakoj
ćeliji u grupi sekvencijalno
» mogućnost operativne upotrebe podataka
• nedostaci
– vreme pristupa zavisi položaja lokacije na memorijskom
medijumu i bitno je duže nego u slučaju OM
– sekundarni tip uređaja – nemogućnost direktnog prihvatanja
podataka od strane centralnog procesora (CPU)
OD – FSP i jedinice diskova 6 / 53
Sadržaj
• Datoteka
• Jedinice magnetnih diskova
• Sprežni podsistem
• Efikasnost razmene podataka
• Performanse obrade podataka
• Organizacija datoteke i OS

OD – FSP i jedinice diskova 7 / 53


Jedinice magnetnih diskova
• Opšta struktura memorijskog uređaja
– upravljačka jedinica uređaja
• upravljačka logika
• adresni registar uređaja
• registar podataka (prihvatna memorija) uređaja
• registar statusa uređaja
• sklop za vremensko vođenje uređaja
– jedinica za memorisanje podataka
• adresni mehanizam
• memorijski medijum
• pobudna kola
• izlazni pojačavači

OD – FSP i jedinice diskova 8 / 53


Jedinice magnetnih diskova
• Magnetni disk
– karakteristični predstavnik eksternih memorijskih
uređaja s rotacionim kretanjem medijuma
• ostali predstavnici: DVD/CD jedinice
• isti princip organizacije
– adresnog prostora na memorijskom medijumu i
– adresnog mehanizma
• različita tehnologija memorisanja podataka
– memorijski medijum
• jedna ili više kružnih ploča na rotirajućoj osovini
– sa slojem feromagnetskog materijala sa obe strane
– adresni mehanizam
• komplet upisno-čitajućih glava na nosaču

OD – FSP i jedinice diskova 9 / 53


Jedinice magnetnih diskova
• Magnetni disk
– organizacija adresnog prostora i adresni mehanizam

OD – FSP i jedinice diskova 10 / 53


Jedinice magnetnih diskova
• Magnetni disk
– organizacija adresnog prostora i adresni mehanizam

Translatorno meha-
ničko kretanje

Komplet R/W glava na nosaču


+ koračni motor za pokretanje

ugaona brzina rotacije (ob/min)
(tipične vrednosti: 7200, 10800)
Rotaciono meha-
ničko kretanje

OD – FSP i jedinice diskova 11 / 53


Jedinice magnetnih diskova
• Organizacija adresnog prostora
– zasnovana na cilindričnom koordinatnom sistemu
• koordinate vektora: (, , z) - poluprečnik, ugao i visina
– staza (track)
• kružnica koju opisuje upisno-čitajuća (R/W) glava na
zadatom poluprečniku
• podaci se upisuju na stazu "podužno", u obliku niza bitova
– ćelija diska = 1 bit
• najmanja jedinica upisa/čitanja podataka

OD – FSP i jedinice diskova 12 / 53


Jedinice magnetnih diskova
• Organizacija adresnog prostora
– vrste diskova s obzirom na kapacitet staze
• diskovi sa stazama konstantnog kapaciteta
– promenljiva podužna gustina zapisa
» najveća na stazi najmanjeg poluprečnika i obratno
» gubici u postizanju makimalnog mogućeg kapaciteta
• diskovi sa stazama promenljivog kapaciteta
– konstantna podužna gustina zapisa
» najveća moguća na stazi, ili grupi susednih staza
» komplikovanija organizacija adresnog prostora
» približavanje maksimalnom mogućem kapacitetu

OD – FSP i jedinice diskova 13 / 53


Jedinice magnetnih diskova
• Organizacija adresnog prostora
– cilindar (cylinder)
• matematički, skup svih staza istog poluprečnika
• praktično, disk sadrži 1-2 ploče, tj. 2 ili 4 R/W glave
– veći broj staza po jednom cilindru, tj. veći broj glava, postiže se
softverskim putem
– sektor (sector)
• luk na stazi, konstantnog ugla
• staza se deli na konstantan broj sektora
• ne retko, broj sektora na stazi: S = 2n
• između svaka dva sektora postoji međusektorski razmak
– najmanja adresibilna jedinica diska = sektor
• svakom sektoru pristupa se direktno
• svakom bitu unutar sektora pristupa se sekvencijalno
OD – FSP i jedinice diskova 14 / 53
Jedinice magnetnih diskova
• Sektorska organizacija adresnog prostora
– kod diskova sa stazama konstantnog kapaciteta
• definisana podelom staze na konstantan broj sektora,
konstantnog kapaciteta
• Uspostava adresnog prostora diska
– fabrička priprema + formatiranje diska od strane OS
– fabričke karakteristike
• C – ukupan broj cilindara diska
– diktira maksimalni kapacitet diska
• T – ukupan broj staza po cilindru (broj glava)
– tipično, T  16
• S – ukupan broj sektora na stazi
– tipično, S  64

OD – FSP i jedinice diskova 15 / 53


Jedinice magnetnih diskova
• Uspostava adresnog prostora diska
– adresni prostor je diskretizovan, numeracijom
cilindara, staza i sektora
• numeracija cilindara: {0,..., C - 1}
– nulti cilindar – cilindar najvećeg poluprečnika
• numeracija staza na jednom cilindru: {0,..., T - 1}
– određena redosledom glava na nosaču
• numeracija sektora na jednoj stazi: {0,..., S - 1}
– svaki sektor, u zaglavlju, ima upisan svoj redni broj
– jedan od sektora odabran je da bude početni
» on značava i početak staze

OD – FSP i jedinice diskova 16 / 53


Jedinice magnetnih diskova
• Uspostava adresnog prostora diska
– adresa sektora na disku
• (u, c, t, s)
• u – adresa uređaja (jedinice diska)
• c  {0,..., C - 1} – redni broj cilindra (poluprečnik)
• t  {0,..., T - 1} – redni broj staze na cilindru (visina)
• s  {0,..., S - 1} – redni broj sektora na stazi (ugao)

OD – FSP i jedinice diskova 17 / 53


Jedinice magnetnih diskova
• Kapacitet diska
– kapacitet sektora – konstanta
• Ks – efektivni kapacitet sektora
– obuhvata prostor za korisne podatke
– veličina, tipično: Ks = 512 B
• Ksh – kapacitet zaglavlja sektora
– obuhvata prostor za upisivanje identifikacionog broja sektora i
identifikacionog broja zamenskog sektora
» ukoliko je dati sektor van upotrebe
• Kse – kapacitet pratećeg dela sektora
– obuhvata prostor za kontrolni (ECC, CRC) kod
» za detekciju i korekciju grešaka
» garantuje, verovatnoću nastanka do, na primer, 1 / 1015
neoporavljivih grešaka
• Ksu – ukupni kapacitet sektora Ksu = Ks + Ksh + Kse

OD – FSP i jedinice diskova 18 / 53


Jedinice magnetnih diskova
• Kapacitet diska
– efektivni kapacitet staze
• Kt = SKs
– efektivni kapacitet cilindra
• Kc = TKt
– efektivni kapacitet diska
• Kd = CKc

OD – FSP i jedinice diskova 19 / 53


Jedinice magnetnih diskova
• Kapacitet diska
– primer
• Ks = 512 B (korisnih podataka)
• S = 180 (sektora na stazi)
• T = 80 (staza po cilindru)
• C = 50972 (cilindara na disku)
– efektivni kapacitet staze
• Kt = SKs = 180 * 512 B = 92160 B = 90 KB
– efektivni kapacitet cilindra
• Kc = TKt = 80 * 90 KB = 7200 KB = 7,03125 MB
– efektivni kapacitet diska
• Kd = CKc = 50972 * 7,03125 MB = 358396,875 MB  350 GB

OD – FSP i jedinice diskova 20 / 53


Jedinice magnetnih diskova
• Vreme pristupa sektoru (access time, latency)
– vreme pristupa podacima na disku
– komponente, za zadatu adresu (u, c, t, s)
• vreme pozicioniranja kompleta glava na zadati cilindar c
– opredeljeno brzinom kretanja kompleta glava po poluprečniku
– mehaničko (translatorno) kretanje
– reda veličine ms
• vreme aktiviranja R/W glave za zadatu stazu t
– opredeljeno radom elektroničkih komponenata
– bar za par redova veličina kraće – zanemaruje se
• vreme pozicioniranja R/W glave na početak zadatog sektora
s – rotaciono kašnjenje
– opredeljeno brzinom rotacije paketa diskova
– mehaničko (rotaciono) kretanje
– reda veličine ms
OD – FSP i jedinice diskova 21 / 53
Jedinice magnetnih diskova
• Vreme pristupa sektoru (access time, latency)
– tp = tc + th + tr
• 0  tc  tcmax
– za pređeni put kompleta glava i  {0,..., C - 1}
» iskazuje se brojem pređenih cilindara od cilindra na kojem
su glave prethodno bile pozicionirane do traženog cilindra
» tc se može posmatrati kao linearna funkcija od i
» za i = 0  tc = 0 ms
» za i = 1  tc = 0,8 – 2 ms (tipično)
» za i = C - 1  tc = 14 - 24 ms (tipično)
» zaključak: najbolje je da sukcesivno traženi podaci budu
smešteni na istom, ili bar susednom cilindru
• th  0
• 0  tr  1 / 
– zavisi obrnuto proporcionalno od ugaone brzine rotacije
– slučajna veličina sa uniformnom raspodelom na (0, 1 / ]
OD – FSP i jedinice diskova 22 / 53
Jedinice magnetnih diskova
• Srednje vreme pristupa sektoru
– tp = tc + tr
– srednje vreme pristupa cilindru
• tipično oko 8 ms
– srednje rotaciono kašnjenje
• tr = 1 / 2
– za 7200 ob/min  tr  4,17 ms
– za 10800 ob/min  tr  2,78 ms
– srednje vreme pristupa sektoru
• tipično oko 9 - 12 ms

OD – FSP i jedinice diskova 23 / 53


Jedinice magnetnih diskova
• Zonsko-sektorska organizacija adresnog
prostora
– kod diskova sa stazama promenljivog kapaciteta
• definisana podelom staza na sektore
• svaki sektor je konstantnog kapaciteta
• broj sektora na stazi - promenljiv
– zavisi od poluprečnika staze
– staze većeg poluprečnika sadrže više sektora
• grupisanje staza po broju sadržanih sektora
• zona
– grupa susednih staza, sa istim brojem sektora
– tehnika organizacije adresnog prostora
• zoned bit recording (ZBR) / multiple zoned recording

OD – FSP i jedinice diskova 24 / 53


Jedinice magnetnih diskova
• Zonsko-sektorska organizacija adresnog
prostora
– ilustracija sa 5 zona (označene različitim bojama)

OD – FSP i jedinice diskova 25 / 53


Jedinice magnetnih diskova
• Zaključne napomene
– za više od pet redova veličine duže vreme pristupa
nego kod OM
• disk, srednje vreme pristupa:  9 – 12 ms
– već duži niz godina
• OM, ciklus (uključuje i srednje vreme pristupa):  60 ns
• Potrebne mere
– poboljšati efikasnost prenosa podataka kroz U/I
podsistem
• efikasno korišćenje propusnog opsega sprežnog podsistema
– smanjiti potreban broj pristupa
• unapređivanjem sistema diskova
• izborom pogodne fizičke organizacije

OD – FSP i jedinice diskova 26 / 53


Sadržaj
• Datoteka
• Jedinice magnetnih diskova
• Sprežni podsistem
• Efikasnost razmene podataka
• Performanse obrade podataka
• Organizacija datoteke i OS

OD – FSP i jedinice diskova 27 / 53


Sprežni podsistem
• Sprežni (U/I) podsistem
– sistem veza i algoritama za fizički prenos podataka
između kontrolera periferijskog uređaja i OM
• linije podataka
• adresne linije
• upravljačke i informacione linije

Sprežni (U/I) podsistem

Kontroler CPU
OM

Jedinica
diska
OD – FSP i jedinice diskova 28 / 53
Sprežni podsistem
• Sprežni (U/I) podsistem
– osnovna karakteristika
• propusni opseg (bandwidth)
– mogući broj prenetih bajtova u jedinici vremena (Bps)
• dominantno zavisi od
– broja linija podataka ("širine") i ciklusa sprežnog podsistema
– ali i, efektivno, od propusnog opsega i ciklusa jedinice diska
» bitno sporiji uređaj od sprežnog podsistema i OM
– zahteva definisanje fiksne jedinice prenosa podataka
• na nivou operativnog sistema

OD – FSP i jedinice diskova 29 / 53


Sprežni podsistem
• Osnovni koncepti
– Fizički blok (blok)
• organizaciona jedinica memorisanja podataka
– nedeljiva jedinica smeštanja podataka (lokacija) na jedinici
eksternog memorijskog uređaja
– osnovna (nedeljiva) jedinica alokacije prostora na eksternom
memorijskom uređaju, fiksnog kapaciteta
– u slučaju jedinice diska, niz sukcesivnih sektora na istoj stazi
diska

– Blok podataka (blok)


• organizaciona jedinica prenosa podataka
– osnovna (nedeljiva) jedinica prenosa podataka, fiksnog
kapaciteta

OD – FSP i jedinice diskova 30 / 53


Sprežni podsistem
• Osnovni koncepti
– Kapacitet bloka / fizičkog bloka
• fiksna veličina
• definisana unapred, na nivou operativnog sistema
• kreće se u rasponu [512 B, 8 KB]
• tipične veličine: 2 KB, 4 KB, 8 KB
– motivacija
• postizanje što boljeg iskorišćenja propusnog opsega
• olakšano upravljanje prenosom podataka
– pravila
• U/I podsistem vrši prenos samo celih blokova podataka
• jedinica diska obezbeđuje smeštanje i preuzimanje samo
celih fizičkih blokova podataka

OD – FSP i jedinice diskova 31 / 53


Sprežni podsistem
• Osnovni koncepti
– Fizički blok na disku zauzima
• uvek ceo broj sektora
• fizički susednih sektora
• na istoj stazi diska
– prednost
• garantuje se pristup celokupnom sadržaju bloka uz potrošnju
najviše jednog vremena pristupa
– srednjeg, ili u najgorem slučaju
– nedostaci
• spoljnja fragmentacija prostora
– neiskorišćeni sektori na kraju staze – mogu služiti kao rezervni
• unutrašnja fragmentacija prostora
– ne mora ceo blok biti zauzet isključivo korisnim podacima

OD – FSP i jedinice diskova 32 / 53


Sprežni podsistem
• Osnovni koncepti
– Sistemski bafer (sistemski prihvatnik)
• prostor u OM koji se alocira za potrebe smeštanja sadržaja
jednog bloka podataka
• pripada sistemskom (zaštićenom) delu OM
• podaci razmenjeni sa eksternim memorijskim uređajem
smeštaju se u bafere OM, samo u jedinicama blokova
– posledica
• zahteva se veći kapacitet OM
– jer se u OM, putem blokova, prenose i podaci koji korisniku
nisu neophodni u obradi i
– neće biti preneti u memoriju korisničkog programa

OD – FSP i jedinice diskova 33 / 53


Sprežni podsistem
• Kontroler jedinice diska
– Zadaci
• dekodiranje i izvršavanje R/W komande, dobijene od CPU
• prijem adrese fizičkog bloka na disku
• upravljanje adresnim mehanizmom u cilju pozicioniranja na
traženu adresu
– izdavanje naloga (signala) upravljačkoj logici uređaja
• konverzija sadržaja bloka
– iz bajt-serijskog oblika u niz memorijskih reči, pri čitanju i
– iz niza memorijskih reči u bajt-serijski oblik, pri upisu podataka
• ispitivanje statusa spremnosti jedinice diska za predaju ili
preuzimanje podataka
• privremeno memorisanje sadržaja bloka
– "cache" memorija na jedinici diska
– tipičnog kapaciteta 16 MB
OD – FSP i jedinice diskova 34 / 53
Sprežni podsistem
• U/I podsistem za fizički prenos podataka
• Zadaci
– inicijalizacija prenosa podataka
• zadavanje
– vrste R/W operacije
– adrese bloka podataka na disku
– adrese bafera u OM
– kapaciteta bloka podataka za prenos
• uvek je realizuje CPU
– fizička razmena podataka na relaciji kontroler – OM
• iterativni postupak, razmena memorijska reč po reč
– ispitivanje statusa spremnosti uređaja

OD – FSP i jedinice diskova 35 / 53


Sprežni podsistem
• U/I podsistem za fizički prenos podataka
• Vrste
– klasični "programirani" prenos
• uslovni – sa ispitivanjem statusa spremnosti uređaja
– uposleno čekanje procesora
• bezuslovni – bez ispitivanja statusa spremnosti uređaja
– prenos iniciran prekidima
– Direct Memory Access (DMA) prenos
• angažovanje DMA kontrolera za
– fizičku razmenu podataka i
– ispitivanje statusa spremnosti uređaja
– prenos putem specijalizovanih (kanalskih) procesora

OD – FSP i jedinice diskova 36 / 53


Sadržaj
• Datoteka
• Jedinice magnetnih diskova
• Sprežni podsistem
• Efikasnost razmene podataka
• Performanse obrade podataka
• Organizacija datoteke i OS

OD – FSP i jedinice diskova 37 / 53


Efikasnost razmene podataka
• Parametri koji imaju dominantan uticaj
– srednje vreme pristupa bloku (sektoru) na disku
• tpsr = 9 – 12 ms

– vreme učitavanja / pisanja sadržaja bloka na disk


• Kb – kapacitet bloka
• Kt = SKs – efektivni kapacitet staze
• Tb = Kb / (Kt) – vreme učitavanja / pisanja sadržaja bloka

– propusni opseg diska (brzina razmene podataka)


• vd = Kt [MB/s]

OD – FSP i jedinice diskova 38 / 53


Efikasnost razmene podataka
• Primer
– Ks =512 B,
– S = 170, Kt = 87040 B = 85 KB,
–  = 10800 ob/min

Kb 512 B 1 KB 2 KB 4 KB 8 KB

Tb (ms) 0,033 0,065 0,131 0,261 0,523

– zaključak: Tb << tpsr, čak i za veće vrednosti Kb

– propusni opseg diska vd = Kt  14,941 MB/s

OD – FSP i jedinice diskova 39 / 53


Efikasnost razmene podataka
• Primer
– Kt = 85 KB, T = 80,
– Kb = 4 KB, Tb = 0,261 ms,
– tpsr = 10 ms
– ukupan broj blokova na stazi: bt = Kt / Kb  = 21
– ukupan broj blokova na cilindru: bc = Tbt = 1680

OD – FSP i jedinice diskova 40 / 53


Efikasnost razmene podataka
• Primer
– (A) pretpostavka
• sukcesivno se učitava bc = 1680 blokova jednog cilindra
– FSP datoteke to omogućava
• potrebno vreme razmene podataka
• tuA = tpsr + bc Tb = 10 ms + 1680 * 0,261 ms  0,45 s
– (B) pretpostavka
• učitava se bc = 1680 blokova, slučajno raspoređenih po
različitim cilindrima diska
• potrebno vreme razmene podataka
• tuB = bc(tpsr + Tb) = 1680 * (10 ms + 0,261 ms)  17,24 s
– zaključak
• tuB >> tuA, odnos tuB / tuA  38 puta
• potrebna je pogodna fizička organizacija datoteke
OD – FSP i jedinice diskova 41 / 53
Efikasnost razmene podataka
• Primer
– (C) pretpostavka
• prenosi se sadržaj jednog bloka datoteke, Kb = 4 KB
• sa diska
– potrebno vreme razmene podataka
– tuCD = tpsr + Tb = 10 ms + 0,261 ms  10,261 ms
• iz memorije, kapaciteta reči Kw = 4 B i ciklusa tc = 60 ns
– tuCM = (Kb / Kw)tc = 0,06144 ms
– zaključak
• tuCD >> tuCM, odnos tuCD / tuCM = 167 puta
• OM je brži uređaj
• pokazuje daleko bolju efikasnost razmene podataka u slučaju
male količine podataka

OD – FSP i jedinice diskova 42 / 53


Efikasnost razmene podataka
• Primer
– (D) pretpostavka
• prenosi se sadržaj sukcesivnih bc = 1680 blokova jednog
cilindra, Kb = 4 KB
• sa diska
– potrebno vreme razmene podataka
– tuDD = tpsr + bc Tb = 10 ms + 1680 * 0,261 ms  0,45 s
• iz memorije, kapaciteta reči Kw = 4 B i ciklusa tc = 60 ns
– tuDM = bc(Kb / Kw)tc = 1680 * 0,06144 ms  0,10 s
– zaključak
• tuDD  tuDM, odnos tuDD / tuDM = 4,5 puta
• bitno poboljšana efikasnost razmene podataka sa diska
• favorizacija upotrebe blokova većeg kapaciteta

OD – FSP i jedinice diskova 43 / 53


Efikasnost razmene podataka
• Sistemi disk jedinica
– klasterske arhitekture sistema disk jedinica
• više nezavisnih jedinica diskova, povezanih jednim sprežnim
sistemom
• jedinstveni adresni sistem i načini pristupa
– od strane različitih procesorskih jedinica u arhitekturi
– nizovi disk jedinica
• Redundant Array of Independent Disks (RAID) sistemi
• više jedinica diskova koje se ponašaju kao jedna
– redundantno memorisanje podataka
– diskovi su po potrebi izmenljivi
– obezbeđuju razmeštanje istih,ili sukcesivno traženih
blokova na više nezavisnih disk jedinica
• statistički, nije potrebno uvek čekati ukupno vreme pristupa
OD – FSP i jedinice diskova 44 / 53
Sadržaj
• Datoteka
• Jedinice magnetnih diskova
• Sprežni podsistem
• Efikasnost razmene podataka
• Performanse obrade podataka
• Organizacija datoteke i OS

OD – FSP i jedinice diskova 45 / 53


Performanse obrade podataka
• Tehnike obezbeđenja dobrih performansi
• operativne obrade perzistentnih podataka
– vrste tehnika
• (T) korišćenje uticaja tehnologije i tehnoloških parametara
• (A) projektovanje odgovarajuće arhitekture sistema diskova
• (O) izbor odgovarajućeg OS i podešavanje parametara OS
• (P) projektovanje odgovarajuće FSP datoteka

OD – FSP i jedinice diskova 46 / 53


Performanse obrade podataka
• Tehnike obezbeđenja dobrih performansi
• operativne obrade perzistentnih podataka
– skraćenje srednjeg vremena pristupa
• izbor disk jedinica boljih proizvođačkih karakteristika, npr.
veće brzine rotacije, kraćeg vremena pristupa, itd. (T)
• upotreba sistema diskova (RAID, klasteri) sa simultanim
pristupom blokovima (A)
• raspoređivanje slučajno, a sukcesivno traženih blokova na
različite disk jedinice (A+P)
– efikasno korišćenje propusnog opsega diska
• izbor većeg kapaciteta bloka (O)
• izbor odgovarajuće FSP datoteke, saglasno potrebama
programa (P)
• efikasnija upotreba raspoloživog kapaciteta bloka (P)

OD – FSP i jedinice diskova 47 / 53


Performanse obrade podataka
• Tehnike obezbeđenja dobrih performansi
• operativne obrade perzistentnih podataka
– minimizacija potrebnog broja pristupa
• "keširanje" dela sadržaja diska u memoriji kontrolera (T)
• povećanje kapaciteta OM (T)
• "keširanje" dela sadržaja diska u OM (O)
• rezervacija većeg broja bafera za datoteku u OM (O)
• izbor odgovarajuće FSP datoteke, saglasno potrebama
programa (P)
– skraćenje vremena prenosa i obrade podataka
• izbor sprežnog podsistema boljih karakteristika, npr. većeg
propusnog opsega (T)
• izbor OM boljih karakteristika, npr. kraćeg ciklusa (T)
• izbor CPU boljih karakteristika, npr. više frekvencije, sa više
keš memorije ili više procesorskih jezgara (T)
OD – FSP i jedinice diskova 48 / 53
Sadržaj
• Datoteka
• Jedinice magnetnih diskova
• Sprežni podsistem
• Efikasnost razmene podataka
• Performanse obrade podataka
• Organizacija datoteke i OS

OD – FSP i jedinice diskova 49 / 53


Organizacija datoteke i OS
• Operativni sistem (OS)
– omogućava organizovanje različitih FSP datoteka
• na jedinicama diskova
• vodi računa o organizaciji podataka i upotrebi svih datoteka
na jedinicama diskova
– može da pruža različite poglede na FSP datoteke
• kao linearne strukture (niza) slogova
– najčešće za potrebe korisničkih programa
• kao niza znakova ili bajtova
– za potrebe sistemskih programa, a
– može i za potrebe korisničkih programa
• kao (linearne ili neke drugačije) strukture blokova
– za potrebe memorisanja i razmene podataka kroz U/I
podsistem

OD – FSP i jedinice diskova 50 / 53


Organizacija datoteke i OS
• Organizacija podataka na jedinici diska
– OS održava na jedinici diska strukture podataka o
• proizvođačkim karakteristikama same disk jedinice
• ispravnim i neispravnim sektorima, kao i o zamenskim
sektorima za neispravne sektore
• slobodnom i zauzetom prostoru (fizičkim blokovima) na disku
• katalogu (hijerarhijskoj strukturi foldera) sa pokazivačima na
opise datoteka
• sistemskoj i alokacionoj tabeli svake datoteke
– sistemska tabela sadrži osnovne podatke o datoteci
– alokaciona tabela sadrži pokazivače na područja diska koja su
alocirana za potrebe datoteke

OD – FSP i jedinice diskova 51 / 53


Sadržaj
• Datoteka
• Jedinice magnetnih diskova
• Sprežni podsistem
• Efikasnost razmene podataka
• Performanse obrade podataka
• Organizacija datoteke i OS

OD – FSP i jedinice diskova 52 / 53


Pitanja i komentari

?
OD – FSP i jedinice diskova 53 / 53
Organizacija datoteka

Fizičke strukture podataka i


eksterni memorijski uređaji
Fizičke strukture datoteke i
razmena podataka

OD – FSP i jedinice diskova


Organizacija datoteka

Datotečki sistem
operativnog sistema
Usluge operativnog sistema i
fizička organizacija datoteka

OD – Datotečki sistem OS
Sadržaj
• Usluge OS u organizaciji datoteka
• Upravljanje memorijskim prostorom
• Upravljanje katalogom
• Upravljanje fizičkom razmenom podataka
• Obezbeđenje veze programa i datoteke
• Sistemski pozivi
• Metode pristupa

OD – Datotečki sistem OS 2 / 65
Usluge OS u organizaciji datoteka
• Datotečki (File, U/I) sistem OS-a
– upravljanje datotekama
• fizičkim strukturama podataka (FSP) na eksternim
memorijskim uređajima
– upravljanje i realizacija razmene podataka između
aplikativnih programa i datoteka
– obezbeđenje mehanizama zaštite od neovlašćenog
pristupa datotekama i oštećenja podataka
• u uslovima višekorisničkog i multiprogramskog režima rada
– obezbeđenje podrške različitih pogleda na LSP
datoteke
• preslikavanja LSP  FSP
• obavlja jedan deo ili sve zadatke prethodna tri tipa

OD – Datotečki sistem OS 3 / 65
Usluge OS u organizaciji datoteka
• Usluge datotečkih sistema
– usluge niskog nivoa
• pokrivaju pobrojane zadatake, ali
• obezbeđuju pogled na LSP datoteke
– samo kao niza bajtova (znakova) i
– njeno preslikavanje u FSP niza blokova
– usluge visokog nivoa
• obavezno uključuju sve usluge niskog nivoa
• obezbeđuju različite poglede na LSP datoteke
– kao različitih struktura nad skupom slogova, blokova pa i
bajtova i
– njihovih preslikavanja u FSP niza blokova
• obezbeđuju izgradnju specijalnih pomoćnih struktura za
poboljšanje efikasnosti obrade podataka
• obezbeđuju traženja, zasnovana na vrednostima podataka
OD – Datotečki sistem OS 4 / 65
Usluge OS u organizaciji datoteka
• Usluge datotečkih sistema
– usluge niskog nivoa
• servisi koji isključivo pripadaju operativnom sistemu
– usluge visokog nivoa
• servisi koji mogu biti ugrađeni u
– operativni sistem
» karakteristično za OS-ove mainframe računara
– pakete (biblioteke) funkcija programskog jezika
» tipično za sve savremene programske jezike
– sistem za upravljanje bazama podataka
» ovi servisi su obavezna komponenta svakog SUBP
• ili mogu biti prepušteni nivou aplikativnog programa
– najčešće u slučaju razvoja specijalizovanih aplikacija i/ili
– korišćenja specijalizovanih procesorskih uređaja za
prikupljanje, memorisanje i razmenu podataka
OD – Datotečki sistem OS 5 / 65
Usluge OS u organizaciji datoteka
• Usluge datotečkih sistema
– usluge niskog nivoa
• 1. upravljanje prostorom eksternog memorijskog uređaja
• 2. upravljanje katalogom
• 3. upravljanje fizičkom razmenom podataka
• 4. obezbeđenje veze programa i datoteke
• 5. sistemski pozivi
– usluge visokog nivoa
• 6. metode pristupa

– svaka od navedenih usluga uključuje odgovarajuće


rutine i specijalizovane strukture podataka

OD – Datotečki sistem OS 6 / 65
Sadržaj
• Usluge OS u organizaciji datoteka
• Upravljanje memorijskim prostorom
• Upravljanje katalogom
• Upravljanje fizičkom razmenom podataka
• Obezbeđenje veze programa i datoteke
• Sistemski pozivi
• Metode pristupa

OD – Datotečki sistem OS 7 / 65
Upravljanje memorijskim prostorom
• Rutine za upravljanje prostorom eksternog
memorijskog uređaja – jedinice diska
– uspostava adresnog prostora i fajl sistema
• formatiranje diska, niskog i visokog nivoa
• kreiranje strukture podataka sa evidencijom slobodnog i
zauzetog prostora diska (indeks slobodnih/zauzetih blokova)
– održavanje strukture podataka sa evidencijom
slobodnog i zauzetog prostora na disku
• alociranje slobodnog prostora, na zahtev drugih rutina OS
• dealociranje slobodnog prostora, na zahtev drugih rutina OS
• reorganizacija (defragmentacija) slobodnog prostora, na
zahtev administratora sistema
– arhiviranje, restauracija i oporavak sadržaja diska
• backup, restore i recovery rutine
OD – Datotečki sistem OS 8 / 65
Sadržaj
• Usluge OS u organizaciji datoteka
• Upravljanje memorijskim prostorom
• Upravljanje katalogom
• Upravljanje fizičkom razmenom podataka
• Obezbeđenje veze programa i datoteke
• Sistemski pozivi
• Metode pristupa

OD – Datotečki sistem OS 9 / 65
Upravljanje katalogom
• Struktura kataloga (Katalog)
– hijerarhijska struktura direktorijuma (foldera)
• struktura tipa stabla
• koren – korenski direktorijum
– formira se automatski u postupku formatiranja diska
• svaki čvor u strukturi može biti direktorijum ili datoteka
• uvodi se pojam tekućeg direktorijuma
– formiran na jednoj ili grupi jedinica eksternih
memorijskih uređaja s direktnim pristupom
– dozvoljava relativno i apsolutno referenciranje
čvorova u strukturi

OD – Datotečki sistem OS 10 / 65
Upravljanje katalogom
• Rutine za upravljanje katalogom
– kreiranje, brisanje, preimenovanje i prevezivanje
direktorijuma u strukturi
– izlistavanje i pretraživanje sadržaja direktorijuma i
datoteka
– kreiranje i brisanje datoteka u direktorijumu
• upotreba odgovarajućih sistemskih poziva
– preimenovanje, kopiranje i premeštanje datoteka u
strukturi
– dodela i ukidanje prava pristupa nad direktorijumima i
datotekama
• konkretnim korisnicima ili ulogama na nivou OS
– izmena nekih atributa datoteka
OD – Datotečki sistem OS 11 / 65
Sadržaj
• Usluge OS u organizaciji datoteka
• Upravljanje memorijskim prostorom
• Upravljanje katalogom
• Upravljanje fizičkom razmenom podataka
• Obezbeđenje veze programa i datoteke
• Sistemski pozivi
• Metode pristupa

OD – Datotečki sistem OS 12 / 65
Upravljanje fizičkom razmenom podataka
• Rutine za upravljanje fizičkom razmenom
podataka
– rutine fizičkog U/I (U/I supervizor, drajveri uređaja)
– upravljanje razmenom blokova kroz U/I podsistem,
između kontrolera eksternog memorijskog uređaja i
OM
• inicijalizacija fizičkog prenosa podataka jednog fizičkog bloka
– zadavanje parametara prenosa
• razmena poruka sa programima za fizički prenos podataka
– koji se realizuje bilo kao CPU ili DMA prenos
• prosleđivanje statusa uspešnosti obavljenog prenosa
podataka

OD – Datotečki sistem OS 13 / 65
Sadržaj
• Usluge OS u organizaciji datoteka
• Upravljanje memorijskim prostorom
• Upravljanje katalogom
• Upravljanje fizičkom razmenom podataka
• Obezbeđenje veze programa i datoteke
• Sistemski pozivi
• Metode pristupa

OD – Datotečki sistem OS 14 / 65
Obezbeđenje veze programa i datoteke
• Upravljanje strukturama podataka o
– (A) eksternim memorijskim uređajima
– (B) datotekama na eksternom memorijskom uređaju
– (C) upotrebi datoteka u aplikativnim programima
– (D) datotekama u operativnoj upotrebi

• Tabela OS
– struktura podataka za opis nekog resursa kojim OS
operativno upravlja
– gore navedene strukture podataka su, jednim delom,
predstavljene putem tabela OS

OD – Datotečki sistem OS 15 / 65
Obezbeđenje veze programa i datoteke
• Tabele OS, važne za obezbeđenje veze
programa i datoteke
– tabela uređaja
– sistemska tabela datoteke
– alokaciona tabela datoteke
– tabela logičkih imena datoteke
– tabela procesa
– tabela otvorenih datoteka
– tabela opisa datoteke

OD – Datotečki sistem OS 16 / 65
Obezbeđenje veze programa i datoteke
• Podaci (A)
– o eksternom memorijskom uređaju - jedinici diska
– OS održava na jedinici diska strukture podataka o
• proizvođačkim karakteristikama same disk jedinice
– naziv, adresa i tip uređaja
– ukupan broj cilindara, staza po cilindru i sektora po stazi
• numeraciji sektora
• ispravnim i neispravnim sektorima
• zamenskim sektorima za neispravne sektore
• definisanom kapacitetu bloka
• korenskom direktorijumu i sistemu kataloga
• slobodnom prostoru

OD – Datotečki sistem OS 17 / 65
Obezbeđenje veze programa i datoteke
• Podaci (A)
– o eksternom memorijskom uređaju - jedinici diska
– Tabela uređaja (TU)
• zapis sa podacima, neophodnim za korišćenje uređaja
• formira se prilikom inicijalizacije ("start up-a") OS ili
montiranja uređaja
• sadrži podatke o karakteristikama uređaja - disk jedinice
• sadrži adrese rutina za upravljanje fizičkim U/I za dati uređaj
(device driver-a)
• koriste je rutine za upravljanje fizičkim U/I (drajveri)
• primer OS Unix
– tabela drajvera uređaja
» svaki zapis odnosi se na jedan uređaj i sadrži adresu
drajvera uređaja – reprezentuje deo TU
» podaci o karakteristikama uređaja nalaze se u drajveru
OD – Datotečki sistem OS 18 / 65
Obezbeđenje veze programa i datoteke
• Podaci (B)
– o datotekama na eksternom memorijskom uređaju
– OS održava na jedinici diska strukture podataka o
• datotekama, razmeštenim po sistemu kataloga
– Sistemska tabela datoteke (STD)
• Index Node (Inode) Table (Unix)
• predstavlja trajan zapis o datoteci koji održava OS
– formira se prilikom kreiranja datoteke
– uništava se prilikom brisanja datoteke
– učitava se u OM, kada se datoteka operativno koristi
– modifikuje se prilikom izmena sadržaja datoteke
• spregnuta sa sistemom kataloga
– adresirana iz pripadajućeg direktorijuma

OD – Datotečki sistem OS 19 / 65
Obezbeđenje veze programa i datoteke
• Podaci (B)
– o datotekama na eksternom memorijskom uređaju
– Sistemska tabela datoteke (STD)
• sadržaj
– naziv datoteke
– ekstenzija i verzija datoteke
– vrsta datoteke (bin/txt)
– podaci o vlasniku i ovlašćenjima za korišćenje datoteke
– veličina datoteke
– datum i vreme kreiranja ili poslednje modifikacije sadržaja
– podaci o ostalim atributima (sistemska, skrivena datoteka, itd.)
– alokaciona tabela datoteke
• konkretan sadržaj i struktura zavise od izabranog OS

OD – Datotečki sistem OS 20 / 65
Obezbeđenje veze programa i datoteke
• Podaci (B)
– o datotekama na eksternom memorijskom uređaju
– Alokaciona tabela datoteke (ATD)
• mapa alociranog prostora diska za datoteku
• neprazan niz parova tipa (pokazivač, broj blokova)
– pokazivač
» (c, t, s) adresa početka zone (granule) alociranog prostora
– broj blokova
» ukazuje na veličinu zone alociranog prostora, iskazanu
brojem fizičkih blokova
– svako alociranje nove granule prostora izaziva formiranje
novog para tipa (pokazivač, broj blokova) u nizu
– svako dealociranje nepotrebne granule prostora izaziva
brisanje para tipa (pokazivač, broj blokova) iz niza
• predstavlja jedno od mogućih rešenja vođenja evidencije o
alociranom prostoru datoteke
OD – Datotečki sistem OS 21 / 65
Obezbeđenje veze programa i datoteke
• Podaci (B)
– o datotekama na eksternom memorijskom uređaju

/ (Root)

Fld1 Fld2

Fld21 Fld22
STD
Dat1
...

ATD
...
...
...

OD – Datotečki sistem OS 22 / 65
Obezbeđenje veze programa i datoteke
• Podaci (C)
– o upotrebi datoteka u aplikativnim programima
– omogućavaju vezu između aplikativnih programa i OS
– formira ih kompajler, a koristi i dopunjava OS
• na osnovu specifikacija upotrebe datoteka u programu
– nalaze se u delu OM rezervisanom za aplikativni
program
– sadržaj ovih podataka može zavisiti od
• nivoa usluga OS (usluge niskog / visokog nivoa)
– mogu biti uključeni podaci vezani za
» format sloga ili bloka datoteke
» željene načine upotrebe datoteke
» željene načine pristupa podacima datoteke

OD – Datotečki sistem OS 23 / 65
Obezbeđenje veze programa i datoteke
• Podaci (C)
– o upotrebi datoteka u aplikativnim programima
– Tabela logičkih imena datoteka (TLI)
• File Descriptor Table (Unix)
• niz parova tipa (ime datoteke, pokazivač)
– indeks niza – redni broj specificirane datoteke (fajl deskriptor)
» uobičajeno
0 – standardna ulazna datoteka (pridružena tastaturi) i
1 – standardna izlazna datoteka (pridružena monitoru)
2 – standardna datoteka grešaka (pridružena monitoru)
– ime datoteke
» ukazuje na povezani naziv datoteke (iz STD)
– pokazivač
» ukazuje na zapis sa podacima o otvorenoj datoteci

OD – Datotečki sistem OS 24 / 65
Obezbeđenje veze programa i datoteke
• Podaci (D)
– o datotekama u operativnoj upotrebi
– formira ih i koristi OS
– kada je potrebno operativno korišćenje datoteke iz
aplikativnog programa
• otvaranje datoteke
– priprema datoteke za operativno korišćenje podataka od strane
procesa OS - aplikativnog programa
– obezbeđuju uvezivanje podataka, sadržanih u TU,
STD i TLI
– nalaze se u sistemskom delu OM, kojim upravlja OS

OD – Datotečki sistem OS 25 / 65
Obezbeđenje veze programa i datoteke
• Podaci (D)
– o datotekama u operativnoj upotrebi
– Tabela procesa (TP)
• sadrži id oznaku procesa i neophodne podatke o procesu,
kreiranom na osnovu aplikativnog programa
• uključuje podatke o trenutnom stanju procesa na nivou OS
• uključuje podatke iz TLI
– tabela otvorenih datoteka procesa (TOP)
» TLI u sistemskom delu OM
» sa pokazivačima prema zapisima o otvorenim datotekama

OD – Datotečki sistem OS 26 / 65
Obezbeđenje veze programa i datoteke
• Podaci (D)
– o datotekama u operativnoj upotrebi
– Tabela otvorenih datoteka (TOD)
• niz zapisa o otvorenim datotekama u celom sistemu
– svako otvaranje datoteke – jedan zapis u TOD
– indeks niza – redni broj otvorene datoteke u sistemu
• svaki zapis sadrži podatke, neophodne da bi se obavljala
razmena podataka između datoteke i aplikativnog programa

OD – Datotečki sistem OS 27 / 65
Obezbeđenje veze programa i datoteke
• Podaci (D)
– o datotekama u operativnoj upotrebi
– Sadržaj svakog zapisa u TOD
• mogući načini korišćenja datoteke
• pokazivač na tekuću poziciju u datoteci (tekući pokazivač)
• niz pokazivača prema rezervisanim sistemskim baferima
• veze između blokova i sistemskih bafera, u obliku
(rbr_bloka, status, bafer)
– rbr_bloka – redni broj učitanog bloka u sistemski bafer
– status – indikator izmene sadržaja bloka nakon poslednjeg
učitavanja
– bafer – oznaka sistemskog bafera u koji je blok učitan
• pokazivač prema TU / drajveru uređaja u tabeli drajvera
• pokazivač na tabelu opisa datoteke (TOS)

OD – Datotečki sistem OS 28 / 65
Obezbeđenje veze programa i datoteke
• Podaci (D)
– o datotekama u operativnoj upotrebi
– Tabela opisa datoteke (TOS)
• Inode Table (Unix)
• predstavlja prekopirani sadržaj STD sa ATD u OM
• ažurira se tokom upotrebe datoteke
• prenosi se ažurirani sadržaj u STD, pri završetku rada s
datotekom

OD – Datotečki sistem OS 29 / 65
Obezbeđenje veze programa i datoteke
Aplikativni TP Sistemska OM
program

Programska
TLI
memorija

- deklaracije TOD
TLI - d1 ...
- 0 ... - d2 ...
- procedura - 1 ... - d3 ...
- 2 ...
Baferi datoteke

STD TOS

ATD ATD

TU / Drajver

OD – Datotečki sistem OS 30 / 65
Sadržaj
• Usluge OS u organizaciji datoteka
• Upravljanje memorijskim prostorom
• Upravljanje katalogom
• Upravljanje fizičkom razmenom podataka
• Obezbeđenje veze programa i datoteke
• Sistemski pozivi
• Metode pristupa

OD – Datotečki sistem OS 31 / 65
Sistemski pozivi
• Pozivi rutina OS za upravljanje datotekama
– pružaju usluge niskog nivoa, tj. obezbeđuju
• pogled na datoteku kao niza bajtova
– razmena podataka između aplikativnog programa i datoteke,
organizovanih kao nizovi bajtova
• upravljanje blokovima datoteke
– grupisanje nizova bajtova u blokove
– razmena kompletnih blokova između eksternog memorijskog
uređaja i sistemskih bafera u OM
• upravljanje sistemskim baferima
– nalozi za rezervisanje i otpuštanje bafera
– evidencija smeštanja blokova u bafere
• nezavisnost aplikativnog programa od fizičkih karakteristika
eksternog memorijskog uređaja
– transformacija rednog broja bajta u redni broj bloka i rednog
broja bloka u apsolutnu adresu bloka na disku
OD – Datotečki sistem OS 32 / 65
Sistemski pozivi
• Pozivi rutina OS za upravljanje datotekama
– vode računa o karakteristikama datoteke
• početak datoteke
– označen pozicijom bajta s rednim brojem 1 (ili alternativno 0)
• kraj datoteke
– označen pozicijom poslednjeg bajta, uvećanom za 1
(ili alternativno samo pozicijom poslednjeg bajta)
• indikator tekuće pozicije
(tekući pokazivač, indikator aktuelnosti)
– iskazan kao redni broj bajta na kojem započinje operacija (ili
alternativno, na kojem je završila prethodna operacija)

OD – Datotečki sistem OS 33 / 65
Sistemski pozivi
• Pozivi rutina OS za upravljanje datotekama
– podržavaju sekvencijalni (redosledni) pristup
bajtovima datoteke
• pri operacijama učitavanja / zapisivanja
– zahtevaju zadavanje ukupnog broja bajtova za operaciju
– automatski održavaju vrednost tekućeg pokazivača
– podržavaju direktni pristup bajtovima datoteke
• pri operacijama pozicioniranja
– zahtevaju zadavanje vrednosti tekućeg pokazivača
» rednog broja bajta u odnosu na koji započinje sledeća
operacija

OD – Datotečki sistem OS 34 / 65
Sistemski pozivi
• Pozivi rutina OS za upravljanje datotekama
– preuzimaju parametre poziva iz pozivajućeg
okruženja
• aplikativnog programa ili
• okruženja, zaduženog za pružanje usluga visokog nivoa
– prosleđuju u pozivajuće okruženje informacije o
statusu izvršenja sistemskog poziva
• osnova za obradu izuzetaka
• izuzetak (exception)
– događaj koji izaziva prekid normalnog toka obrade podataka
– neki primeri
» greška pri učitavanju ili zapisivanju podataka
» pokušaj otvaranja nepostojeće ili već otvorene datoteke
» pokušaj čitanja nepostojećih bajtova (preko kraja datoteke)

OD – Datotečki sistem OS 35 / 65
Sistemski pozivi
• Tipovi sistemskih poziva (Unix)
– create - kreiranje datoteke
– open - otvaranje datoteke
– read - učitavanje dela sadržaja datoteke
– write - zapisivanje podataka u datoteku
– seek - pozicioniranje na željenu lokaciju
– close - zatvaranje datoteke
– sync - pražnjenje izmenjenih bafera
– delete - brisanje i uništavanje datoteke
– truncate - brisanje sadržaja datoteke
– stat - preuzimanje informacija o datoteci

OD – Datotečki sistem OS 36 / 65
Sistemski pozivi
• Create
– sistemski poziv za kreiranje datoteke
• na osnovu zadatih parametara
– naziv sa putanjom, ovlašćenja, tip, veličina, itd. – zavisi od OS
• Unix:
int creat(char *naziv, int ovlašćenja)
– kreiranje potpuno nove datoteke i otvaranje za
pisanje
• proverava sve uslove, neophodne za kreiranje datoteke
– postojanje volumena, putanje, raspoloživog prostora, prava
• alocira inicijalni prostor za novu datoteku na disku
• kreira STD sa ATD
• formira zapis u direktorijumu i uvezuje ga sa STD
• vraća podatak o uspešnosti operacije i fajl deskriptor
OD – Datotečki sistem OS 37 / 65
Sistemski pozivi
• Open
– sistemski poziv za otvaranje datoteke
• na osnovu zadatih parametara
– naziv sa putanjom, način otvaranja, eventualno i ovlašćenja
• Unix:
int open(char *naziv, int način_otvar [int ovlašćenja])
– priprema datoteke za operativnu upotrebu
• u operativnoj upotrebi datoteke zahteva se pristup podacima
u STD i TLI
• pogodno je smestiti te potrebne podatke u OM
– da bi se izbeglo repetitivno pristupanje disku i višestruko
obavljanje istih pripremnih operacija, za potrebe svake
pojedinačne R/W operacije

OD – Datotečki sistem OS 38 / 65
Sistemski pozivi
• Open
– načini otvaranja datoteke
• otvaranje nepostojeće datoteke
– zahteva se inicijalno kreiranje datoteke (O_CREAT)
• otvaranje postojeće datoteke
• otvaranje u režimu dozvole čitanja i pisanja podataka na
željenoj poziciji (O_RDWR)
• otvaranje u režimu ekskluzivnog čitanja sadržaja
(O_RDONLY)
• otvaranje u režimu ekskluzivnog pisanja sadržaja
– sa dodavanjem novog sadržaja na kraj datoteke (O_APPEND)
– sa prepisivanjem postojećeg sadržaja datoteke (O_WRONLY)
– sa prethodnim brisanjem postojećeg sadržaja datoteke
(O_TRUNC)

OD – Datotečki sistem OS 39 / 65
Sistemski pozivi
• Open
– zadaci
• ukoliko je specificiran zahtev kreiranja nove datoteke,
sprovođenje poziva tipa Create
• u slučaju zahteva za otvaranje postojeće datoteke, provera
ostvarenosti potrebnih uslova
– postojanja traženog volumena, specificirane putanje sa
direktorijumom i traženim fizičkim nazivom datoteke
– ovlašćenja za izvođenje zahtevane operacije tipa Open
• prenos sadržaja STD u OM
– kreiranje TOS i uvezivanje sa STD
• formiranje zapisa u TOD i uvezivanje sa TOS i TLI u TP
– povezivanje fizičkog imena i logičke oznake datoteke u TLI
– povezivanje adresa odgovarajućih programa za opsluživanje
sistemskih poziva za razmenu podataka

OD – Datotečki sistem OS 40 / 65
Sistemski pozivi
• Open
– zadaci
• inicijalizacija vrednosti tekućeg pokazivača
– na početak datoteke, ili na kraj (u slučaju O_APPEND)
• eventualno, inicijalno rezervisanje sistemskih bafera i
početno punjenje bafera
– upisivanje pokazivača na bafere u odgovarajući zapis u TOD
– punjenje bafera početnim blokovima datoteke
» u slučaju otvaranja datoteke za čitanje
• predaja pozivajućem okruženju podataka
– o uspešnosti izvedene operacije i
– fajl deskriptora (logičke oznake datoteke)

OD – Datotečki sistem OS 41 / 65
Sistemski pozivi
Aplikativni TP Sistemska OM
program

Programska
TLI
memorija

- deklaracije TOD
TLI - d1 ...
- 0 ... - d2 ...
- procedura - 1 ... - d3 ...
- 2 ...
Baferi datoteke

STD TOS

ATD ATD

TU / Drajver

OD – Datotečki sistem OS 42 / 65
Sistemski pozivi
• Upravljanje sistemskim baferima
– rezervisanje i otpuštanje bafera datoteke
• vrši se korišćenjem servisa jezgra OS
• otvorenoj datoteci mora biti dodeljen najmanje jedan bafer
– evidentiranje smeštanja blokova u bafere
• u zapisu iz TOD, ili u referenciranoj strukturi podataka koju
održava jezgro OS
• Tehnike rezervisanja i otpuštanja bafera
– fiksna (statička) dodela bafera datoteci
– dinamička dodela bafera datoteci (udruživanje)
• buffer pooling

OD – Datotečki sistem OS 43 / 65
Sistemski pozivi
• Tehnike rezervisanja i otpuštanja bafera
– Fiksna (statička) dodela bafera datoteci
• fiksni broj bafera ( 1) ekskluzivno se dodeljuje pri otvaranju
• svi baferi se otpuštaju pri zatvaranju datoteke
– često, datoteci samo za čitanje / pisanje dodeljuje se 1 bafer, a
– datoteci otvorenoj i za čitanje i za pisanje 2 bafera
» jedan za operacije čitanja i drugi za operacije pisanja
– Dinamička dodela bafera datoteci (udruživanje)
• svi sistemski baferi OS-a su na raspolaganju svim otvorenim
datotekama
• baferi se dodeljuju i otpuštaju dinamički, prema potrebi
– pri realizaciji operacija čitanja ili pisanja podataka
• kriterijum izbora slobodnog bafera za dodelu, ili izbora bafera
za otpuštanje
– najduže nekorišćeni bafer (Least Recently Used - LRU)
OD – Datotečki sistem OS 44 / 65
Sistemski pozivi
• Višestruko otvaranje iste datoteke
– nije dozvoljeno kod nekih OS
• datoteka se ekskluzivno otvara i zaključava od strane jednog
procesa
• za svaku datoteku, u TOD može postojati najviše jedan zapis
• ostali procesi mogu, eventualno, samo otvoriti "read-only"
kopiju datoteke
– za potrebe uvida u trenutno stanje datoteke
• očuvana je konzistentnost podataka u višekorisničkom
režimu rada
• bitno snižen stepen mogućeg paralelizma u obradi i
korišćenju podataka datoteke

OD – Datotečki sistem OS 45 / 65
Sistemski pozivi
• Višestruko otvaranje iste datoteke
– dozvoljeno je kod nekih OS
• primer Unix
• datoteka se može otvoriti
– od strane više različitih procesa istovremeno (open) ili
– od strane jednog procesa multiplikovano
» sistemski pozivi dup i dup2
» formira se barem dva zapisa sa fajl deskriptorima u TLI
• svako otvaranje datoteke formira poseban zapis u TOD
– koji je uvezan sa odgovarajućim zapisom u TLI iz TP
– precizno se evidentira koji proces je izvršio koje otvaranje
• konzistentnost podataka u višekorisničkom režimu rada ne
mora biti očuvana
– postoji tehnika "savetodavnog" zaključavanja dela podataka
• visok stepen mogućeg paralelizma u obradi podataka
OD – Datotečki sistem OS 46 / 65
Sistemski pozivi
• Read
– sistemski poziv za učitavanje niza bajtova iz otvorene
datoteke
• na osnovu zadatih parametara
– logička oznaka datoteke, odredišna promenljiva u OM, broj
bajtova za učitavanje
• Unix:
int read(int fd, void *var, int size)
– stvarni prenos dela sadržaja datoteke u pozivajuće
okruženje
• zadati broj bajtova, od pozicije tekućeg pokazivača

OD – Datotečki sistem OS 47 / 65
Sistemski pozivi
• Read
– zadaci
• provera da li datoteka sa oznakom fd
– je otvorena
– dozvoljava zahtevani (read) način pristupa
• izračunavanje rednog broja prvog bloka i dužine niza izvornih
blokova, u kojima se nalaze traženi podaci
– na osnovu rednog broja bajta u tekućem pokazivaču
– pretvaranje rednog broja bajta tekućeg pokazivača u par
(redni broj prvog bloka u nizu, redni broj bajta u bloku)

OD – Datotečki sistem OS 48 / 65
Sistemski pozivi
• Read
– zadaci
• provera da li se traženi blokovi već nalaze u baferima
• ako ne
– izbor (ili alokacija) sistemskih bafera za smeštanje blokova
» uz eventualno oslobađanje prethodnog sadržaja bafera
– izračunavanje apsolutnih adresa traženih blokova
– inicijalizacija fizičkog prenosa blokova sa jedinice diska
– obrada statusa uspešnosti fizičkog prenosa blokova
• prenos traženog sadržaja iz bafera u ciljnu promenljivu var
• uvećavanje vrednosti tekućeg pokazivača
– na prvi sledeći bajt, nakon poslednje prenetog bajta
• predaja pozivajućem okruženju podataka
– o uspešnosti izvedene operacije i
– broju stvarno preuzetih bajtova
OD – Datotečki sistem OS 49 / 65
Sistemski pozivi
• Write
– sistemski poziv za zapisivanje niza bajtova u otvorenu
datoteku
• na osnovu zadatih parametara
– logička oznaka datoteke, izvorna promenljiva u OM, broj
bajtova za zapisivanje
• Unix:
int write(int fd, void *var, int size)
– stvarni prenos niza bajtova iz pozivajućeg okruženja u
datoteku
• zadati broj bajtova, od pozicije tekućeg pokazivača

OD – Datotečki sistem OS 50 / 65
Sistemski pozivi
• Write
– zadaci
• provera da li datoteka sa oznakom fd
– je otvorena
– dozvoljava zahtevani (write) način pristupa
• izračunavanje rednog broja prvog bloka i dužine niza ciljnih
blokova, u koje treba smestiti izvorne podatke
– na osnovu rednog broja bajta u tekućem pokazivaču
– pretvaranje rednog broja bajta tekućeg pokazivača u par
(redni broj prvog bloka u nizu, redni broj bajta u bloku)

OD – Datotečki sistem OS 51 / 65
Sistemski pozivi
• Write
– zadaci
• provera da li je potrebno imati dopremljen prethodni sadržaj
ciljnih blokova
– u O_RDWR načinu otvaranja, tipično jeste
» ne mora se pozivom zahtevati pisanje celokupnog sadržaja
bloka
– u O_APPEND ili O_WRONLY načinu otvaranja, nije
• ako da, provera da li se traženi blokovi već nalaze u baferima
– ako ne
» izbor (ili alokacija) sistemskih bafera za smeštanje blokova
» uz eventualno oslobađanje prethodnog sadržaja bafera
» izračunavanje apsolutnih adresa traženih blokova
» inicijalizacija fizičkog prenosa blokova sa jedinice diska
» obrada statusa uspešnosti fizičkog prenosa blokova

OD – Datotečki sistem OS 52 / 65
Sistemski pozivi
• Write
– zadaci
• prenos traženog sadržaja iz izvorne promenljive var u bafere
– uz eventualno oslobađanje sadržaja kompletno napunjenih
bafera
» iniciranje fizičkog prenosa blokova na jedinicu diska
» buffer flushing
• uvećavanje vrednosti tekućeg pokazivača
– na prvi sledeći bajt, nakon poslednje prenetog bajta
• predaja pozivajućem okruženju podataka
– o uspešnosti izvedene operacije i
– broju stvarno predatih bajtova

OD – Datotečki sistem OS 53 / 65
Sistemski pozivi
• Seek
– pozicioniranje (pristup) na željenu lokaciju
• na osnovu zadatih parametara
– logička oznaka datoteke, pomak, referentna tačka za pomak
• Unix:
int lseek(int fd, int offset, int moveDirection)
– upravljanje sadržajem tekućeg pokazivača
• u cilju obezbeđenja direktnog pristupa željenom bajtu
datoteke

OD – Datotečki sistem OS 54 / 65
Sistemski pozivi
• Seek
– zadaci
• provera da li je datoteka sa oznakom fd otvorena
• postavljanje nove vrednosti tekućeg pokazivača
– pomeranjem za zadati broj bajtova offset
» prema kraju datoteke, ako je offset > 0
» prema početku datoteke, ako je offset < 0
» bez pomeranja, ako je offset = 0
– u odnosu na referentnu tačku, zadatu sa moveDirection
» 0 (SEEK_SET) – za početak datoteke
» 1 (SEEK_CURR) – za trenutnu poziciju pokazivača
» 2 (SEEK_END) – za kraj datoteke
• predaja pozivajućem okruženju podatka o uspešnosti
izvedene operacije

OD – Datotečki sistem OS 55 / 65
Sistemski pozivi
• Close
– sistemski poziv za zatvaranje otvorene datoteke
• na osnovu zadate logičke oznake datoteke
• Unix:
int close(int fd)
– uredan prestanak operativne upotrebe datoteke
• u opštem slučaju, garantuje da će datoteka ostati
memorisana na disku u konzistentnom stanju
– zatvaranje datoteke nastaje
• automatski, završetkom programa koji je otvorio datoteku
• eksplicitno, pokretanjem sistemskog poziva Close

OD – Datotečki sistem OS 56 / 65
Sistemski pozivi
• Close
– zadaci
• oslobađanje sadržaja zauzetih bafera, modifikovanog
sadržaja
– buffer flushing
– dirty buffer
» bafer u kojem je izmenjeno ili potpuno novo stanje bloka u
odnosu na njegov sadržaj na disku
– iniciranje fizičkog prenosa blokova na jedinicu diska
• oslobađanje svih zauzetih bafera i vraćanje OS-u
– ova i prethodna aktivnost nisu obavezne kod svih OS
» Unix close ne podržava pražnjenje i oslobađanje bafera pri
zatvaranju datoteke

OD – Datotečki sistem OS 57 / 65
Sistemski pozivi
• Close
– zadaci
• prenos sadržaja TOS sa ATD na jedinicu diska
– ažuriranje sadržaja STD sa ATD
• uništavanje TOS i odgovarajućeg zapisa u TOD
– raskidanje svih uspostavljenih veza prema TLI, TP i STD
• predaja pozivajućem okruženju podatka o uspešnosti
izvedene operacije
• Sync
– sistemski poziv za "pražnjenje" dirty bafera
• Unix:
void sync(void)
• izvršava se na zahtev, ili automatski u zadatim intervalima

OD – Datotečki sistem OS 58 / 65
Sistemski pozivi
• Delete
– sistemski poziv za brisanje imena i uništavanje
datoteke
• na osnovu zadatog naziva sa putanjom
• Unix – brisanje imena fajla (tzv. linka)
int unlink(char *naziv)
– može u strukturi kataloga biti kreirano više imena - linkova
– brisanje poslednjeg linka briše i uništava datoteku
– zadaci fizičkog brisanja i uništavanja datoteke
• dealociranje prostora datoteke na disku
• uništavanje STD sa ATD
• uništavanje zapisa o datoteci u direktorijumu
• vraćanje podatka o uspešnosti operacije

OD – Datotečki sistem OS 59 / 65
Sistemski pozivi
• Truncate
– sistemski poziv za brisanje sadržaja datoteke
• dealocira prostor datoteke na disku, ali zadržava STD

int truncate(const char *path, off_t length)


int ftruncate(int fd, off_t length)

• "odsecanje" sadržaja datoteke do na zadati broj bajtova


• briše sadržaj datoteke i dealocira oslobođeni prostor
datoteke na disku
• uvek zadržava STD

OD – Datotečki sistem OS 60 / 65
Sadržaj
• Usluge OS u organizaciji datoteka
• Upravljanje memorijskim prostorom
• Upravljanje katalogom
• Upravljanje fizičkom razmenom podataka
• Obezbeđenje veze programa i datoteke
• Sistemski pozivi
• Metode pristupa

OD – Datotečki sistem OS 61 / 65
Metode pristupa
• Podržavaju usluge visokog nivoa
– koriste ili uključuju usluge niskog nivoa izabranog OS
– obezbeđuju poglede na LSP datoteke
• kao različitih struktura nad skupom slogova
– a obavezno kao niza slogova
• kao različitih struktura nad skupom blokova
– a obavezno kao niza blokova
– obezbeđuju preslikavanje ovih pogleda u FSP niza
fizičkih blokova
– obezbeđuju izgradnju specijalnih pomoćnih struktura
za poboljšanje efikasnosti obrade podataka
– obezbeđuju traženja, zasnovana na vrednostima
podataka

OD – Datotečki sistem OS 62 / 65
Metode pristupa
• Zahtevaju razrešavanje pitanja
– organizovanja i memorisanja polja, slogova i blokova
– načina adresiranja i načina memorisanja logičkih veza
– mogućih vrsta usluga na nivou sloga ili bloka
– podrške različitih vrsta organizacije datoteka
– podrške opštih postupaka upravljanja sadržajem
datoteka
• Servisi metoda pristupa mogu biti ugrađeni u
– operativni sistem
– programski jezik sa pridruženim paketima
(bibliotekama) funkcija
– sistem za upravljanje bazama podataka
OD – Datotečki sistem OS 63 / 65
Sadržaj
• Usluge OS u organizaciji datoteka
• Upravljanje memorijskim prostorom
• Upravljanje katalogom
• Upravljanje fizičkom razmenom podataka
• Obezbeđenje veze programa i datoteke
• Sistemski pozivi
• Metode pristupa

OD – Datotečki sistem OS 64 / 65
Pitanja i komentari

?
OD – Datotečki sistem OS 65 / 65
Organizacija datoteka

Datotečki sistem
operativnog sistema
Usluge operativnog sistema i
fizička organizacija datoteka

OD – Datotečki sistem OS
Organizacija datoteka

Metode pristupa i
organizacija datoteka
Usluge metoda pristupa i
vrste organizacija datoteka

OD – Metode pristupa
Sadržaj
• Osnovna struktura datoteke
• Struktura datoteke kao niza blokova
• Metoda pristupa
• Parametri organizacije datoteka
• Vrste organizacije datoteka
• Opšte procedure nad datotekama
• Performanse obrade datoteke

OD – Metode pristupa 2 / 79
Osnovna struktura datoteke
• Datoteka kao struktura slogova
– organizovana nad tipom sloga
• kao linearnom strukturom atributa
– format sloga
• pravila za strukturiranje i interpretaciju sadržaja sloga
– opšta struktura sloga datoteke kao FSP
• uključuje podatke iz LSP i podatke o organizaciiji FSP na
eksternom memorijskom uređaju
• svaki slog predstavlja niz polja sa vrednostima atributa

OD – Metode pristupa 3 / 79
Osnovna struktura datoteke
• Opšta struktura sloga datoteke kao FSP

k1(S) ... kn(S) p1(S) ... pm(S) s(S) u1(S) ... uk(S) f1(S) ... fl(S)

– ki(S) - polja vrednosti atributa primarnog ključa (n  1)


– pi(S) - polja vrednosti ostalih atributa (m  0)
– s(S) - polje statusa sloga - indikator aktuelnosti sloga u LSP
– ui(S) - polja pokazivača za memorisanje veza u LSP (k  0)
– fi(S) - kontrolna polja kod slogova varijabilne dužine (l  0)
• Skraćena notacija
k(S) p(S) s(S) u(S) f(S)

OD – Metode pristupa 4 / 79
Osnovna struktura datoteke
• Osnovna struktura datoteke
– k(S) predstavlja jedinu obaveznu grupu polja
• koja se sastoji od najmanje jednog polja
– često se posmatra kao linearna struktura slogova
• uređena u rastućem ili opadajućem redosledu vrednosti
primarnog ključa
– redosled polja u formatu sloga ne mora biti isti kao u
opštoj strukturi sloga
• datoj na prethodnom slajdu
• pozicija kontrolnih polja uslovljena je njihovom semantikom

OD – Metode pristupa 5 / 79
Osnovna struktura datoteke
• Format polja sloga
– uslovljen specifikacijom domena odgovarajućeg
atributa, odnosno primenjenim tipom podatka
• Vrste polja u slogovima
– polja konstantne dužine
• nije potrebno memorisati informaciju o granicama polja
– polja promenljive dužine
• potrebno je memorisati informaciju o granicama polja
– koristi se kontrolno polje fi(S)
• tehnike
– navođenjem aktuelne dužine polja u kontrolnom polju,
neposredno ispred sadržaja polja
– navođenjem specijalne oznake kraja polja u kontrolnom polju,
neposredno nakon sadržaja polja
OD – Metode pristupa 6 / 79
Osnovna struktura datoteke
• Vrste slogova prema dužini
– slogovi konstantne dužine
• sva polja u svakom slogu su konstantne dužine
• nije potrebno memorisati informaciju o granicama sloga
– slogovi promenljive dužine
• postoji barem jedno polje promenljive dužine u slogu
• potrebno je memorisati informaciju o granicama sloga
– koristi se kontrolno polje fi(S)
• tehnike
– navođenjem aktuelne dužine sloga u kontrolnom polju,
neposredno ispred ostalog sadržaja kompletnog sloga
– navođenjem specijalne oznake kraja sloga u kontrolnom polju,
neposredno nakon ostalog sadržaja sloga
– uvođenjem posebne indeksne strukture sa rednim brojevima
bajtova koji ukazuju na početke slogova
OD – Metode pristupa 7 / 79
Osnovna struktura datoteke
• Karakteristike vrsta slogova prema dužini
– slogovi konstantne dužine
• pojavljuju se u praksi
• homogena struktura
• jednostavnije pristupanje podacima i ažuriranje podataka
• lakša i preciznija procena performansi obrade podataka
• manja efikasnost upotrebe memorijskog prostora
– slogovi promenljive dužine
• izuzetno često se pojavljuju u praksi
• nehomogena struktura
• teže pristupanje podacima i ažuriranje podataka
• teža i nepreciznija procena performansi obrade podataka
• veća efikasnost upotrebe memorijskog prostora

OD – Metode pristupa 8 / 79
Osnovna struktura datoteke
• Vrste slogova prema ponavljanju vrednosti
– slogovi s ponavljajućim grupama
• višestruko pojavljivanje vrednosti atributa u jednom slogu
– kada je dozvoljeno da jedna vrednost atributa bude
predstavljena kao niz vrednosti istog tipa
– primer
» tip entiteta: Student({StdID, ..., StdStrJez}, {StdID})
» tip podatka: (StdStrJez : string(25))
» moguća vrednost, tri puta navedena (kao tri polja)
» 'engleski', 'francuski', 'nemački'
• moraju uvek biti slogovi varijabilne dužine
– slogovi bez ponavljajućih grupa
• nije dozvoljeno višestruko pojavljivanje vrednosti atributa
• moguće je uvek projektovati tip sloga bez ponavljajućih grupa
– primenom odgovarajućih projektantskih tehnika
OD – Metode pristupa 9 / 79
Osnovna struktura datoteke
• Polja pokazivača u strukturi sloga
– predstavljaju adrese lokacija u memorijskom prostoru
• Vrste adresa lokacija
– apsolutna (mašinska) adresa
• strukturirana prema adresnom prostoru jedinice diska
– relativna adresa
• predstavlja redni broj lokacije
• može biti praćen rednim brojem podlokacije
• primeri
– rbr. bloka, rbr. bajta, (rbr. bloka, rbr. bajta u bloku)
– rbr. sloga (u linearnoj strukturi), (rbr. bloka, rbr. sloga u bloku)
– simbolička (asocijativna) adresa
• vrednost ključa

OD – Metode pristupa 10 / 79
Osnovna struktura datoteke
• Vrste adresa lokacija
– apsolutna (mašinska) adresa
• praktično se ne koristi u organizaciji datoteka
• stvara zavisnost od fizičkih karakteristika uređaja
• ne zahteva transformaciju
– relativna adresa
• vrlo često se koristi u organizaciji datoteka
• obezbeđuje nezavisnost od fizičkih karakteristika uređaja
• zahteva jednu ili više transformacija do apsolutne adrese
– na nivou metode pristupa i/ili sistemskih poziva
– simbolička (asocijativna) adresa
• često se koristi u organizaciji datoteka
• zahteva transformaciju u relativnu adresu
– na nivou metode pristupa
OD – Metode pristupa 11 / 79
Sadržaj
• Osnovna struktura datoteke
• Struktura datoteke kao niza blokova
• Metoda pristupa
• Parametri organizacije datoteka
• Vrste organizacije datoteka
• Opšte procedure nad datotekama
• Performanse obrade datoteke

OD – Metode pristupa 12 / 79
Struktura datoteke kao niza blokova
• Blok (logički blok)
– kao organizaciona jedinica podataka
• predstavlja niz slogova
• ima konstantni kapacitet
– tipične veličine: 2KB, 4KB, 8KB, 16KB
– najčešće predstavlja celobrojni umnožak kapaciteta fizičkog
bloka

• Odnos blok – fizički blok


– uobičajeno, jedan blok predstavlja niz od 2n (n  0)
fizičkih blokova
• nije nemoguće da kapacitet bloka bude
– jednak kapacitetu fizičkog bloka ili
– manji od kapaciteta fizičkog bloka

OD – Metode pristupa 13 / 79
Struktura datoteke kao niza blokova
• Opšta struktura (format) bloka
– zaglavlje bloka i niz slogova
Ai
Ai1 ... Aij ... Aif
Zaglavlje
bloka s1 ... sj ... sf

• Ai - adresa bloka (najčešće iskazana kao relativna)


• Aij - realtivna adresa j-tog sloga u i-tom bloku (i, j)
• f - faktor blokiranja – broj slogova u bloku
• zaglavlje bloka – neobavezna kategorija
– obuhvata podatke vezane za FSP datoteke, npr.
» različita polja pokazivača
» broj slogova u bloku
» indeks na početke slogova
OD – Metode pristupa 14 / 79
Struktura datoteke kao niza blokova
• Vrste blokova
– blokovi sa slogovima promenljive dužine
• više slogova može biti smešteno u jedan blok
• dozvoljeno je i da veličina jednog sloga premaši kapacitet
bloka
– tada se vrši ulančavanje blokova jednog sloga
– blokovi sa slogovima konstantne dužine
• homogena struktura bloka i datoteke
• svaki blok datoteke sadrži uvek isti broj slogova
• f – faktor blokiranja datoteke
• B – ukupan broj blokova datoteke
• N – ukupan broj slogova u LSP datoteke
B = (N + x) / f
– x – broj dodatno upotrebljenih specijalnih slogova
OD – Metode pristupa 15 / 79
Struktura datoteke kao niza blokova
• Proračun potrebnog kapaciteta datoteke
– moguć u slučaju primene blokova sa slogovima
konstantne dužine
• Ks - kapacitet sloga
– predstavlja zbir kapaciteta svih polja (konstantne dužine)
• Kb – kapacitet bloka (unapred zadata konstanta)
• Kz – kapacitet zaglavlja bloka (zavisi od organizacije)
f = (Kb - Kz) / Ks 
• Kd – kapacitet datoteke (zavisi od organizacije)
Kd = BKb + Wd
• Wd – kapacitet STD za datoteku

OD – Metode pristupa 16 / 79
Struktura datoteke kao niza blokova
• Struktura datoteke kao niza blokova
– linearna struktura blokova datoteke
• svaki blok datoteke obuhvata niz slogova datoteke
• Strogo strukturirana datoteka
– strogo tipizovana datoteka sa pridruženom
semantikom
– organizovana kao struktura nad skupom slogova
– koja se preslikava u strukturu nad skupom blokova
• koja se dalje preslikava u strukturu nad nizom bajtova pa
fizičkih blokova

OD – Metode pristupa 17 / 79
Struktura datoteke kao niza blokova
• Zaglavlje datoteke
– potrebno proširenje osnovne strukture datoteke
– uvodi se specijalni slog na početku datoteke
• sa podacima o organizaciji datoteke i formatu bloka i sloga
datoteke
• uključuje podatke
– broj slogova i/ili blokova u datoteci
– dužina i format sloga
– pozicija polja ključa u slogu
– pokazivači na početke spregnutih struktura slogova ili blokova

OD – Metode pristupa 18 / 79
Struktura datoteke kao niza blokova
• Oznaka kraja datoteke
– načini označavanja kraja datoteke u osnovnoj
strukturi
• (A) uvođenjem specijalnog sloga za oznaku kraja datoteke
– zapisuje se na kraju strukture, iza poslednjeg sloga u LSP, u
prvu slobodnu lokaciju memorijskog prostora datoteke
• (B) uvođenjem specijalne oznake kraja u polje pokazivača
– navodi se u polju pokazivača logički narednog sloga u(S), kod
poslednjeg sloga u LSP
• (C) vođenjem posebne evidencije zauzetosti prostora
– memorisanjem npr. broja zauzetih lokacija u prostoru
dodeljenom datoteci
– u pomoćnoj strukturi podataka
• (D) kraj datoteke je kraj prostora dodeljenog datoteci
– ne uvodi se poseban mehanizam za označavanje kraja
datoteke
OD – Metode pristupa 19 / 79
Sadržaj
• Osnovna struktura datoteke
• Struktura datoteke kao niza blokova
• Metoda pristupa
• Parametri organizacije datoteka
• Vrste organizacije datoteka
• Opšte procedure nad datotekama
• Performanse obrade datoteke

OD – Metode pristupa 20 / 79
Metoda pristupa
• Paket programa (rutina) za podršku usluga
visokog nivoa
– upravljanje strogo strukturiranim datotekema
• upravljanje organizacijom i memorisanjem polja, slogova i
blokova
– različite vrste usluga u pogledu organizacije sloga i bloka
– upravljanje baferima metode pristupa
• viši nivo "baferisanja" u odnosu na nivo sistemskih bafera

OD – Metode pristupa 21 / 79
Metoda pristupa
• Paket programa (rutina) za podršku usluga
visokog nivoa
– podrška različitih vrsta organizacije datoteka
• podrška različitih načina memorisanja logičkih veza i
adresiranja (pristupa podacima)
– u strogo strukturiranim datotekama
• vođenje brige o kategorijama
– zaglavlje datoteke
– početak i kraj datoteke
– tekući pokazivač, indikator aktuelnosti
» iskazan kao relativna adresa bloka ili sloga na kojem se
sprovodi operacija (ili alternativno, na kojem je izvršena
prethodna operacija)
• podrška izgradnje specijalnih pomoćnih struktura za
poboljšanje efikasnosti obrade podataka

OD – Metode pristupa 22 / 79
Metoda pristupa
• Paket programa (rutina) za podršku usluga
visokog nivoa
– podrška opštih postupaka upravljanja sadržajem
datoteka
• kreiranje, traženje, pretraživanje, ažuriranje i reorganizacija
– koristi ili uključuje usluge niskog nivoa izabranog OS
• u zavisnosti od mesta i načina implementacije metode
pristupa
– obezbeđuje nezavisnost aplikativnog programa od
usluga niskog nivoa OS
• obezbeđuje preslikavanje strogo strukturirane datoteke u
FSP niza fizičkih blokova
• obezbeđuje transformacije relativne adrese sloga ili bloka
datoteke u relativnu adresu bajta ili fizičkog bloka
OD – Metode pristupa 23 / 79
Metoda pristupa
• Upravljanje strogo strukturiranim datotekama
– podrška organizacije slogova i polja
• konstantne dužine
• promenljive dužine
– podrška različitih (alfanumeričkih, datumskih,
bitorijentisanih, multimedijalnih) tipova podataka
– podrška različitih kodnih rasporeda
– konverzije podataka
• iz tipa podatka programske promenljive u tip podatka atributa
datoteke i obratno
• iz tipa podatka atributa strogo strukturirane datoteke u niz
bajtova i obratno

OD – Metode pristupa 24 / 79
Metoda pristupa
• Upravljanje strogo strukturiranim datotekama
– usluge razmene podataka sa aplikativnim programom
• na nivou sloga
– grupisanje slogova u blokove pri upisu podataka
– rastavljanje bloka na slogove pri čitanju podataka
– održavanje tekućeg pokazivača kao relativne adrese sloga
» redni broj sloga u datoteci
– i njegova transformacija u oblik
» (redni broj bloka u datoteci, redni broj sloga u bloku)
• na nivou bloka
– razmena sadržaja kompletnih logičkih blokova između
aplikativnog programa i datoteke
– održavanje tekućeg pokazivača kao relativne adrese bloka, u
obliku
» redni broj bloka u datoteci

OD – Metode pristupa 25 / 79
Metoda pristupa
• Upravljanje strogo strukturiranim datotekama
– usluge pristupa podacima iz aplikativnih programa
• sekvencijalni (redosledni) pristup
– slogovima ili blokovima datoteke
» najčešće slogovima datoteke
– automatski održavaju (inkrementiraju) vrednost tekućeg
pokazivača
» pri operacijama učitavanja / zapisivanja podataka
• direktni pristup
– slogovima ili blokovima datoteke
– zahtevaju eksplicitno zadavanje vrednosti tekućeg pokazivača
» rednog broja sloga ili bloka datoteke
» pri operacijama pozicioniranja
• dinamički (kombinovani) pristup
– kombinacija direktnog i sekvencijalnog pristupa

OD – Metode pristupa 26 / 79
Metoda pristupa
• Upravljanje strogo strukturiranim datotekama
– pozivi rutina metode pristupa
• otvaranje i zatvaranje datoteke
• učitavanje i ispisivanje sadržaja sloga ili bloka
• pozicioniranje na slog ili blok datoteke
• ispitivanje statusa datoteke
• kreiranje, brisanje datoteke, itd.
– preuzimaju parametre poziva iz pozivajućeg okruženja -
aplikativnog programa
» putanja i naziv datoteke (otvaranje datoteke)
» oznaka datoteke (rutine nad otvorenom datotekom)
» oznaka promenljive u radnoj zoni programa
– prosleđuju u pozivajuće okruženje informacije o statusu
izvršenja rutine metode pristupa
» osnova za obradu izuzetaka

OD – Metode pristupa 27 / 79
Metoda pristupa
• Upravljanje baferima metode pristupa
– okruženje u kojem je implementirana metoda pristupa
brine o zadacima upravljanja baferima
• alociranje i dealociranje bafera
• vođenje evidencije o sadržaju bafera i "dirty" bitu bloka
– tri nivoa "baferisanja" podataka datoteke u OM
• nivo sistemskih bafera
– kojim upravlja OS
• nivo bafera metode pristupa
– kojim upravlja okruženje u kojem je implementirana metoda
pristupa
• nivo lokacija promenljivih u aplikativnom programu
– kojim upravlja aplikativni program

OD – Metode pristupa 28 / 79
Metoda pristupa
• Nivoi baferisanja Slogovska pro-
menljiva programa
OM
Baferi met. pristupa Fizički blokovi
Programska OM AP
(bib. funkcije / SUBP) na disku
S1

Programska OM MP
Sistemski baferi
Memorija (bafer)
BM1 u kontroleru

Sistemska OM
Datoteka
SB1
FB
SB2

Kontroler
CB
OD – Metode pristupa 29 / 79
Metoda pristupa
• Okruženja koja uključuju metode pristupa
– operativni sistem
– programski jezik sa pridruženim paketima
(bibliotekama) funkcija
– sistem za upravljanje bazama podataka

• Neki servisi metode pristupa mogu biti


implementirani direktno u aplikativnom programu

OD – Metode pristupa 30 / 79
Metoda pristupa
• Okruženja koja uključuju metode pristupa
– operativni sistem
• najčešće stariji operativni sistemi "mainframe" računara
• nije bila vidljiva eksplicitna podela na usluge OS niskog i
visokog nivoa
– servisi metode pristupa, tj. fajl sistema, vidljivi kao "monolitna"
struktura
– prvi SUBP nastaju na temelju eksplicitne upotrebe servisa
takvih metoda pristupa
• podržavali upravljanje blokovima i baferima metode pristupa
– Block = Control Interval (CI)
– dozvoljavaju eksplicitno deklarisanje formata bloka (time i
kapaciteta bafera) na nivou pojedinačne datoteke
• pozivi servisa metode pristupa često kombinovani s
programskim jezikom Cobol ili PL/I (IBM)

OD – Metode pristupa 31 / 79
Metoda pristupa
• Okruženja koja uključuju metode pristupa
– programski jezik sa pridruženim paketima
(bibliotekama) funkcija
• praktično svaki savremeni programski jezik (npr. C, Java)
pruža određene usluge metode pristupa, koje mogu biti
– ugrađene u sam jezik ili
– uključene u određene pakete (biblioteke) funkcija
» "upakovane" i isporučene zajedno s kompajlerom i
razvojnim okruženjem (npr. za C, stdio.h) ili
» isporučene nezavisno od samog jezika / kompajlera
• eksplicitno koriste usluge niskog nivoa izabranog OS
• najčešće pružaju samo usluge na nivou sloga datoteke
– upravljanje blokovima i baferima sakriveno od aplikativnog
programa
» baferi bibliotečkih funkcija su konstantnog kapaciteta (u C
definisan u stdio.h) i nedostupni aplikativnom programu
OD – Metode pristupa 32 / 79
Metoda pristupa
• Okruženja koja uključuju metode pristupa
– sistem za upravljanje bazama podataka
• svaki SUBP obavezno obezbeđuje usluge metode pristupa
– najčešće, ne koriste se direktno iz aplikativnih programa
– već su na raspolaganju drugim modulima unutar SUBP
• eksplicitno koristi usluge niskog nivoa izabranog OS
– mada je moguće, u specifičnim situacijama, da SUBP
"zaobiđe" usluge niskog nivoa OS
» tada SUBP direktno upravlja fizičkom razmenom
podataka između datoteke na disku (raw device) i OM
• podržava upravljanje blokovima i baferima metode pristupa
– Database Block
– dozvoljava eksplicitno deklarisanje kapaciteta bloka / bafera na
nivou instalacije SUBP
» uniformno za sve datoteke kojima upravlja SUBP

OD – Metode pristupa 33 / 79
Sadržaj
• Osnovna struktura datoteke
• Struktura datoteke kao niza blokova
• Metoda pristupa
• Parametri organizacije datoteka
• Vrste organizacije datoteka
• Opšte procedure nad datotekama
• Performanse obrade datoteke

OD – Metode pristupa 34 / 79
Parametri organizacije datoteka
• Organizacija podataka
– projekat logičke strukture obeležja (LSO)
– projekat i implementacija FSP, u kontekstu
• isprojektovane LSO i
• sistemske arhitekture
– sa ciljevima da se obezbede
• zadovoljenje korisničkih zahteva
• uslovi za efikasnu obradu podataka
• Rezultat organizovanja podataka
– sistem baze podataka ili
– sistem datoteka

OD – Metode pristupa 35 / 79
Parametri organizacije datoteka
• Projekat i implementacija FSP
– izbor načina dodele lokacija slogovima
– izbor načina memorisanja logičkih veza između
slogova u LSP
– projektovanje osnovnih struktura podataka
– projektovanje pomoćnih struktura podataka
– proračun i rezervisanje potrebnog prostora na
eksternim memorijskim uređajima
– smeštanje slogova sa vezama na eksterne
memorijske uređaje
– proračun, praćenje i analiza performansi postupaka
obrade podataka

OD – Metode pristupa 36 / 79
Parametri organizacije datoteka
• Organizacija datoteke
– projektovanje LSO svodi se na projektovanje tipa
entiteta N(Q, C), tj. tipa sloga
– izbor vrste organizacije datoteke (osnovnih i
pomoćnih struktura) zavisi od vrednosti parametara
• način dodele lokacija slogovima
– uslovljava i način evidentiranja slobodnog i zauzetog prostora u
datoteci
• način memorisanja logičkih veza između slogova u LSP

OD – Metode pristupa 37 / 79
Parametri organizacije datoteka
• Način dodele lokacija slogovima (DLS)
– moguće vrednosti parametra DLS
• (A) svaki novi slog upisuje se na kraj datoteke, kao fizički
susedan u odnosu na poslednji slog datoteke
– ako se prostor datoteke dinamički alocira (povećava pri upisu)
» samo poslednji blok može biti delimično popunjen
» svi ostali blokovi su kompletno popunjeni
*

– ako se prostor datoteke statički (unapred) alocira


» poslednji upisani slog datoteke deli prostor datoteke na
kompletno zauzet i kompletno slobodni deo

OD – Metode pristupa 38 / 79
Parametri organizacije datoteka
• Način dodele lokacija slogovima (DLS)
– moguće vrednosti parametra DLS
• (B) svaki novi slog dobija prvu slobodnu lokaciju iz spregnute
linearne strukture slobodnih lokacija
– prostor datoteke uvek se statički (unapred) alocira
» ne izaziva ga svaki f-ti upis novih slogova u datoteku
– indeks na listu slobodnih lokacija memoriše se u zaglavlju
datoteke

OD – Metode pristupa 39 / 79
Parametri organizacije datoteka
• Način dodele lokacija slogovima (DLS)
– moguće vrednosti parametra DLS
• (C) svaki novi slog dobija slobodnu lokaciju čija relativna
adresa predstavlja funkciju vrednosti ključa
– prostor datoteke uvek se statički alocira
» nezavisno od upisa novih slogova u datoteku
– moguće kad su u pitanju isključivo slogovi konstantne dužine
– funkcija transformacije vrednosti ključa
» hash (analitička) transformacija ili
» tabelarno zadata, uz upotrebu pomoćne strukture

k1(S),... ..., ki(S),... ..., kn(S)

OD – Metode pristupa 40 / 79
Parametri organizacije datoteka
• Način memorisanja logičkih veza (MLV)
– između slogova u LSP
– moguće vrednosti parametra MLV
• (1) fizičkim pozicioniranjem
– logički susedni slogovi smeštaju se u fizički susedne lokacije
• (2) pomoću pokazivača kao relativnih adresa
– pokazivač memoriše relativnu adresu logički susednog sloga
– (2a) polja pokazivača ugrađena u osnovnu strukturu
» svaki slog osnovne strukture datoteke proširuje se barem
jednim poljem pokazivača
– (2b) polja pokazivača ugrađena u pomoćne strukture
» uvodi se barem jedna pomoćna, tzv. indeksna struktura
» često oblika stabla
» sa formatom sloga u obliku para ili n-torke
(polja identifikatora sloga, polja pokazivača)
OD – Metode pristupa 41 / 79
Parametri organizacije datoteka
• Način memorisanja logičkih veza (MLV)
– između slogova u LSP
– moguće vrednosti parametra MLV
• (3) logičke veze se ne memorišu
– u FSP ne postoje podaci o logički susednim slogovima
– podaci o logički susednim slogovima se jedino mogu generisati
» putem posebnih programa, na zahtev korisnika
» programi za uređivanje (sortiranje) datoteka

OD – Metode pristupa 42 / 79
Sadržaj
• Osnovna struktura datoteke
• Struktura datoteke kao niza blokova
• Metoda pristupa
• Parametri organizacije datoteka
• Vrste organizacije datoteka
• Opšte procedure nad datotekama
• Performanse obrade datoteke

OD – Metode pristupa 43 / 79
Vrste organizacije datoteka
• Vrste organizacija datoteka
– osnovne organizacije
• organizacija datoteke svodi se na osnovnu organizaciju
• FSP nad skupom slogova organizovana je u jednoj
memorijskoj zoni
– često, to je i jedna datoteka operativnog sistema
– složene organizacije
• dobijaju se kombinovanjem osnovnih organizacija
• FSP uključuju barem dve memorijske zone
– što mogu biti i barem dve datoteke operativnog sistema
– osnovna FSP može biti raspoređena u jednu, ili u više od jedne
zone
– mogu se pojaviti pomoćne strukture podataka, smeštene u
posebnim zonama

OD – Metode pristupa 44 / 79
Vrste organizacije datoteka
• Vrste organizacija datoteka
– osnovne organizacije datoteka
• serijska (pile, heap)
• sekvencijalna (sequential)
• spregnuta (chain)
• rasuta (hash) sa jedinstvenim memorijskim prostorom
– direktna
– relativna
– statička rasuta
– dinamička rasuta
– složene organizacije
• rasute (hash) sa zonom prekoračenja
• statičke indeksne (indeks-sekvencijalna)
• dinamičke indeksne (organizacije sa B-stablom)

OD – Metode pristupa 45 / 79
Vrste organizacije datoteka
• Osnovne organizacije datoteka
1 2a 3
MLV
1 2 3 4 ... 3 1 4 2 3 1 4 2 ...
DLS
A
*

sekvencijalna serijska spregnuta rasuta

OD – Metode pristupa 46 / 79
Vrste organizacije datoteka
• Osnovne organizacije datoteka
1 2a 3
MLV
1 2 3 4 ... 3 1 4 2 3 1 4 2 ...
DLS
A
* sekvencijalna serijska

B
spregnuta

C
rasuta

OD – Metode pristupa 47 / 79
Vrste organizacije datoteka
• Složene organizacije datoteka
– rasute (hash) sa zonom prekoračenja
• primarna zona – osnovna struktura
– osnovna rasuta organizacija
• zona prekoračenja – nastavak osnovne strukture
– spregnuta ili serijska organizacija
– statičke indeksne (indeks-sekvencijalne)
• primarna zona – osnovna struktura
– sekvencijalna organizacija
• zona prekoračenja – nastavak osnovne strukture
– spregnuta organizacija
• zona indeksa – pomoćna struktura
– spregnuta organizacija
» sprezanje u obliku n-arnog stabla traženja

OD – Metode pristupa 48 / 79
Vrste organizacije datoteka
• Složene organizacije datoteka
– dinamičke indeksne (organizacije sa B-stablom)
• primarna zona – osnovna struktura
– serijska ili spregnuta organizacija
• zona indeksa – pomoćna struktura
– spregnuta organizacija
» sprezanje u obliku jedne od varijanti B-stabla

OD – Metode pristupa 49 / 79
Vrste organizacije datoteka
• Navedene vrste organizacije pojavljuju se u
praksi kao
– fizičke organizacije datoteka
• u sistemima datoteka
– svaka datoteka u sistemu datoteka pojavljuje se kao jedna ili
više posebnih OS datoteka
– fizičke organizacije tabela
• u sistemima baza podataka
– svaka tabela BP može biti distribuirana u više datoteka
podataka kojima upravlja SUBP
– u jednoj datoteci podataka kojom upravlja SUBP može biti
smešteno više tabela BP

OD – Metode pristupa 50 / 79
Sadržaj
• Osnovna struktura datoteke
• Struktura datoteke kao niza blokova
• Metoda pristupa
• Parametri organizacije datoteka
• Vrste organizacije datoteka
• Opšte procedure nad datotekama
• Performanse obrade datoteke

OD – Metode pristupa 51 / 79
Opšte procedure nad datotekama
• Vrste postupaka (operacija) nad LSP datoteke
– formiranje datoteke
– pristupanje u datoteci
– traženje u datoteci
– pretraživanje u datoteci
– obrada datoteka
– ažuriranje datoteke
– reorganizacija datoteke

OD – Metode pristupa 52 / 79
Opšte procedure nad datotekama
• Formiranje datoteke
– postupak kreiranja FSP datoteke
• sa smeštanjem slogova na eksterni memorijski uređaj
• saglasno projektovanoj organizaciji
• na osnovu sadržaja neke druge strukture podataka
– uključuje preuzimanje podataka iz drugih datoteka ili
– direktno zadavanje podataka od strane korisnika
– dve vrste datoteka
• datoteke koje se formiraju u posebnom postupku
– najčešće: sekvencijalna, spregnuta, statičke rasute, statičke
indeksne
• datoteke koje se formiraju u redovnom postupku ažuriranja
(upisa novih slogova)
– najčešće: serijska, indeksne s B stablima, dinamička rasuta

OD – Metode pristupa 53 / 79
Opšte procedure nad datotekama
• Pristupanje u datoteci
– postupak pozicioniranja na željenu lokaciju
• sloga ili bloka datoteke
– vrste pristupa
• sekvencijalni pristup
– automatsko održavanje relativne adrese tekućeg pokazivača
– operacija se odnosi na neposredno susednu lokaciju u odnosu
na lokaciju na kojoj je obavljena prethodna operacija
• direktni pristup
– eksplicitno zadavanje relativne adrese tekućeg pokazivača koji
ukazuje na lokaciju nad kojom će se realizovati neka operacija
• dinamički
– kombinacija sekvencijalnog i direktnog pristupa
• NAPOMENA: sekvencijalni i direktni pristup i sekvencijalna i
direktna organizacija datoteke nisu isti pojmovi
OD – Metode pristupa 54 / 79
Opšte procedure nad datotekama
• Traženje u datoteci
– algoritam AT: dom(K)  Ind  A  S
• za zadatu vrednost argumenta traženja
– vrednost ključa iz domena, a  dom(K)
• u stanju je da generiše i vrati, po potrebi, u program
– indikaciju uspešnosti traženja Ind = {true, false}
» ako je slog nađen, traženje je uspešno (true)
» ako slog nije pronađen, traženje je neuspešno (false)
– relativnu adresu mesta zaustavljanja traženja
» iz skupa svih adresa u adresnom prostoru datoteke A
» koji, po potrebi, uključuje i adresu prve naredne lokacije
nakon kraja datoteke
– sadržaj sloga na mestu zaustavljanja traženja
» ili specijalnu vrednost, ako je reč o nepostojećem slogu

OD – Metode pristupa 55 / 79
Opšte procedure nad datotekama
• Traženje u datoteci
– algoritam AT: dom(K)  Ind  A  S
• nisu uvek svi nabrojani izlazni parametri potrebni
aplikativnom programu
• specifični algoritmi traženja na izlazu će generisati samo
vrednosti onih parametara koji su stvarno neophodni
aplikativnom programu
• moguće svrhe primene algoritma traženja
– da bi se utvrdilo ima li traženog sloga u datoteci ili nema
» npr. radi provere ispunjenosti uslova za upis novog ili
brisanje postojećeg sloga sa zadatom vrednošću ključa
– da bi se utvrdila adresa na kojoj se traženi slog nalazi
» jer je potrebno direktno pozicioniranje na datu adresu
– da bi se preneo sadržaj traženog sloga u aplikativni program
» npr. radi daljih potreba obrade podataka

OD – Metode pristupa 56 / 79
Opšte procedure nad datotekama
• Traženje u datoteci
– algoritam AT: dom(K)  Ind  A  S
POČETAK TRAŽENJA
generisanje početne relativne adrese traženja
postoji potreba za nastavak traženja  DA
RADI petlja_traženja DOK postoji potreba za nastavak traženja
čitanje sadržaja sloga s tekuće adrese
AKO argument traženja = vrednost ključa tekućeg sloga TADA
traženje uspešno, postoji potreba za nastavak traženja  NE
INAČE
AKO postoje uslovi za nastavak traženja TADA
generisanje naredne relativne adrese traženja
INAČE
traženje neuspešno, postoji potreba za nastavak traženja  NE
KRAJ AKO
KRAJ AKO
KRAJ RADI petlja_traženja
KRAJ TRAŽENJA

OD – Metode pristupa 57 / 79
Opšte procedure nad datotekama
• Traženje u datoteci
– metode traženja s obzirom na vrstu postupka
• linearno traženje
– moguće u sekvencijalnim, serijskim i rasutim organizacijama
• binarno traženje
– isključivo moguće u sekvencijalnim organizacijama
• traženje praćenjem pokazivača
– isključivo moguće u spregnutim organizacijama
» u osnovnim strukturama i
» uz korišćenje pomoćnih struktura
• traženje metodom transformacije argumenta u adresu
– h: dom(K)  A
– moguće u rasutim organizacijama

OD – Metode pristupa 58 / 79
Opšte procedure nad datotekama
• Traženje u datoteci
– vrste traženja s obzirom na predistoriju traženja
• traženje slučajno odabranog sloga (tso)
– izbor početne adrese traženja je unutrašnje pitanje algoritma
» ne zavisi od mesta zaustavljanja prethodnog traženja, niti
od toga da li je postojalo prethodno traženje
– moguće u svim organizacijama datoteka
• traženje logički narednog sloga (tln)
– početna adresa traženja predstavlja adresu na kojoj je
zaustavljeno prethodno traženje
» moguće je ako je prethodno postojalo barem jedno
traženje
– svaka naredna adresa traženja može biti samo adresa logički
narednog sloga
– moguće u organizacijama u kojima se vode podaci o logički
narednom slogu
OD – Metode pristupa 59 / 79
Opšte procedure nad datotekama
• Pretraživanje u datoteci
– algoritam AP: dom(LogUslov)  P(S) ili P(A)
• za zadatu vrednost argumenta pretraživanja
– zadati logički uslov
• u stanju je da generiše i vrati, po potrebi, u program
– skup slogova koji zadovoljavaju logički uslov pretraživanja
» P(S) - partitivni skup skupa slogova S ili
– skup adresa slogova koji zadovoljavaju logički uslov
pretraživanja
» P(A) - partitivni skup skupa adresa iz adresnog prostora
– pretraživanje je uspešno, ako je skup slogova koji zadovoljava
zadati uslov neprazan

OD – Metode pristupa 60 / 79
Opšte procedure nad datotekama
• Pretraživanje u datoteci
– algoritam AP: dom(LogUslov)  P(S) ili P(A)
• logički uslov zahteva definisanje sintakse zapisivanja
• predstavlja logički izraz, moguća upotreba
– logičkih izraza i operanada
– relacionih izraza i operanada
– tipskih izraza i operanada
» aritmetičkih, alfanumeričkih, datumskih
– u ulozi operanada mogu se pojaviti atributi tipa sloga, konstante
i funkcije primenjene nad izrazima
• neki specijalni tipovi logičkih uslova
– uslovi konjuktivnog tipa: A1 = a1  ...  An = an
– uslovi disjunktivnog tipa: A1 = a1  ...  An = an
– sekundarni ključ
• niz obeležja strukture po kojem se vrši pretraživanje
OD – Metode pristupa 61 / 79
Opšte procedure nad datotekama
• Ažuriranje datoteke
– postupak dovođenja LSP datoteke u sklad sa
izmenjenim stanjem klase entiteta u realnom sistemu
– osnovne operacije
• upis novog sloga u datoteku
– zahteva prethodno neuspešno traženje
– može iziskivati premeštanje određenog broja drugih slogova
• modifikacija vrednosti neprimarnih atributa sloga
– zahteva prethodno uspešno traženje
– uobičajeno, zabranjuje se modifikacija vrednosti obeležja
primarnog ključa
» po kojem je uspostavljena osnovna organizacija
• brisanje postojećeg sloga iz datoteke
– zahteva prethodno uspešno traženje
– može iziskivati premeštanje određenog broja drugih slogova
OD – Metode pristupa 62 / 79
Opšte procedure nad datotekama
• Ažuriranje datoteke
– vrste brisanja
• logičko brisanje sloga iz datoteke
– svodi se na izmenu vrednosti polja statusa sloga
– iz statusa aktuelnog u status neaktuelnog sloga
– neaktuelni slog i dalje zauzima lokaciju u memorijskom prostoru
– lokacije neaktuelnih slogova oslobađaju se reorganizacijom
• fizičko brisanje sloga iz datoteke
– dovodi do izmene sadržaja bloka u kojem se nalazio izbrisani
slog
– može izazvati pomeranje drugih slogova iz jednih u druge
lokacije
– dovodi do oslobađanja jedne lokacije sloga u memorijskom
prostoru
» to ne mora obavezno biti lokacija izbrisanog sloga

OD – Metode pristupa 63 / 79
Opšte procedure nad datotekama
• Obrada datoteka
– algoritamski iskazani niz operacija nad LSP jedne ili
više datoteka
• sa ciljem svrsishodne transformacije podataka datoteka
• moguća primena operacija
– pristupa slogovima
» jedina obavezna vrsta operacija u obradi datoteka
– traženja i pretraživanja
– ažuriranja (unosa, brisanja i modifikacije)
– generisanja (izračunavanja) novih podataka

OD – Metode pristupa 64 / 79
Opšte procedure nad datotekama
• Obrada datoteka
• Uloge datoteka u obradi
– podela prema vrstama primenjenih operacija u obradi
• ulazna datoteka
– datoteka u kojoj se isključivo vrše čitanja
• izlazna datoteka
– datoteka u koju se isključivo zapisuju novi slogovi u obradi
• ulazno-izlazna datoteka
– datoteka u kojoj se vrše i čitanja i ažuriranja slogova

OD – Metode pristupa 65 / 79
Opšte procedure nad datotekama
• Obrada datoteka
• Uloge datoteka u obradi
– podela prema ulozi u traženjima slogova
• vodeća datoteka
– datoteka koja isključivo generiše argumente traženja ili
pretraživanja slogova tokom obrade
– barem jedna ulazna datoteka u obradi mora biti vodeća
• obrađivana datoteka
– datoteka u kojoj se isključivo vrše traženja ili pretraživanja, na
osnovu generisanih argumenata
• vodeća i obrađivana datoteka
– datoteka sa obe uloge
» vodeća za neku drugu, obrađivanu i
» obrađivana, u odnosu na neku vodeću

OD – Metode pristupa 66 / 79
Opšte procedure nad datotekama
• Obrada datoteka

k(Sv) p(Sv) k(Sov) k(Sov) p(Sov) k(So) k(So) p(So) ...

Dv Dov Do

Program obrade
Vodeća, ulazna Obrađivana, ulazna
datoteka datoteka
Di
Obrađivana, izlazna Vodeća i obrađivana,
datoteka ulazna datoteka

OD – Metode pristupa 67 / 79
Opšte procedure nad datotekama
• Obrada datoteka

k(Sv) p(Sv) k(Sov) k(Sov) p(Sov) k(So) k(So) p(So) ...

Dv Dov Do
tln tso

Program obrade

Di

sekvencijalni pristup
OD – Metode pristupa 68 / 79
Opšte procedure nad datotekama
• Obrada datoteka
– vrste obrade, prema načinima traženja slogova u
obrađivanoj datoteci
• direktna obrada
– u svakom narednom koraku obrade zahteva se traženje
slučajno odabranog sloga (tso)
• redosledna (sekvencijalna) obrada
– u svakom narednom koraku obrade zahteva se
» traženje logički narednog sloga (tln) i/ili
» sekvencijalni pristup fizički susednoj lokaciji

OD – Metode pristupa 69 / 79
Opšte procedure nad datotekama
• Reorganizacija datoteke
– ponovno formiranje datoteke
– u cilju dovođenja u sklad FSP sa novim stanjem LSP
– motivacija
• operacije ažuriranja vrše izmene u LSP koje FSP nekada ne
prati na odgovarajući način
• to dovodi do degradacije performansi rada sa datotekom
• primeri
– nagomilavanje neaktuelnih, logički izbrisanih slogova koji
zauzimaju lokacije u FSP
– nagomilavanje lanaca slogova
– neizbalansiranost podataka s obzirom na postojeću indeksnu
strukturu
– prevelika fragmentacija slobodnog prostora

OD – Metode pristupa 70 / 79
Opšte procedure nad datotekama
• Reorganizacija datoteke
– organizacije koje traže povremenu reorganizaciju
• sekvencijalna
• spregnuta
• statička rasuta
• statička indeksna
– organizacije koje ne traže povremenu reorganizaciju
• serijska
– reorganizacija nije neophodna
• indeksna s B stablom
– reorganizacija se sprovodi dinamički i lokalizovana je
• dinamička rasuta
– reorganizacija se sprovodi dinamički i lokalizovana je

OD – Metode pristupa 71 / 79
Sadržaj
• Osnovna struktura datoteke
• Struktura datoteke kao niza blokova
• Metoda pristupa
• Parametri organizacije datoteka
• Vrste organizacije datoteka
• Opšte procedure nad datotekama
• Performanse obrade datoteke

OD – Metode pristupa 72 / 79
Performanse obrade datoteke
• Mere podobnosti datoteke sa zadatom
organizacijom da participira u obradi
– kao vodeća ili obrađivana
– u redoslednoj ili direktnoj obradi
• Idealna organizacija datoteke
– zahteva tačno onoliko lokacija koliko sadrži slogova
• faktor popunjenosti 100%
– zahteva najviše jedan pristup za tso i tln
– zahteva najviše jedan pristup za pretraživanje
• po bilo kom zadatom uslovu
– zahteva jedan pristup za bilo koju operaciju ažuriranja
– nikada ne zahteva reorganizaciju
OD – Metode pristupa 73 / 79
Performanse obrade datoteke
• Izbor vrste organizacije datoteke
– predstavlja kompromisno rešenje
• nemoguće je da jedna vrsta organizacije zadovolji sve
navedene zahteve
• favorizacija jednih često defavorizuje druge zahteve
• uzimaju se u obzir potrebe i uticajnost aplikativnih programa
– favorizuju se željene mere performansi, u odnosu na
zauzeće memorijskog prostora
• cena memorisanja po jedinici kapaciteta sve niža

OD – Metode pristupa 74 / 79
Performanse obrade datoteke
• Ukupno vreme traženja ili pretraživanja slogova
– zavisi od
• broja i vremena pristupa blokovima na jedinici diska
– broj dominantno opredeljen vrstom organizacije datoteke
» u slučaju pretraživanja i prirodom logičkog uslova
– broj (za velike datoteke) zavisi od karakteristika fajl sistema OS
– vreme dominantno opredeljeno karakteristikama diska ( 10ms)
• vremena prenosa bloka sa diska u OM
– dominantno opredeljeno karakteristikama diska i sprežnog
podsistema (< 1ms)
• broja i vremena upoređivanja argumenta sa vrednošću ključa
– broj dominantno opredeljen vrstom organizacije datoteke
» u slučaju pretraživanja i prirodom logičkog uslova
– vreme dominantno opredeljeno karakteristikama OM i CPU
( 10ns)

OD – Metode pristupa 75 / 79
Performanse obrade datoteke
• Mere za ocenu performansi
– (A)
• broj pristupa blokovima
• broj upoređivanja argumenta i vrednosti ključa
– (B)
• srednji broj
• broj najgorem slučaju (apsolutni broj)
– (C)
• traženje logički narednog sloga
• traženje slučajno odabranog sloga
• operacije ažuriranja (upis, brisanje, modifikacija)
– (D)
• uspešna operacija
• neuspešna operacija
OD – Metode pristupa 76 / 79
Performanse obrade datoteke
• Mere za ocenu performansi
Broj pristupa Broj upoređivanja
apsolutni srednji apsolutni srednji
uspešno    
tln
neuspešno    
uspešno    
tso
neuspešno    
uspešno    
upis
neuspešno    
uspešno    
brisanje
neuspešno    
uspešno    
modifikacija
neuspešno    

OD – Metode pristupa 77 / 79
Sadržaj
• Osnovna struktura datoteke
• Struktura datoteke kao niza blokova
• Metoda pristupa
• Parametri organizacije datoteka
• Vrste organizacije datoteka
• Opšte procedure nad datotekama
• Performanse obrade datoteke

OD – Metode pristupa 78 / 79
Pitanja i komentari

?
OD – Metode pristupa 79 / 79
Organizacija datoteka

Metode pristupa i
organizacija datoteka
Usluge metoda pristupa i
vrste organizacija datoteka

OD – Metode pristupa
Organizacija datoteka

Serijska i sekvencijalna
organizacija datoteke
Struktura, formiranje, traženje,
obrada, ažuriranje, primena i
ocena

OD – Serijska i sekvencijalna
Sadržaj
• Serijska organizacija datoteke
• Sekvencijalna organizacija datoteke

OD – Serijska i sekvencijalna 2 / 45
Serijska organizacija datoteke
• Osnovna struktura
– slogovi smešteni jedan za drugim
• u sukcesivne memorijske lokacije
– fizička struktura ne sadrži informacije o vezama
između slogova logičke strukture datoteke
– ne postoji veza između vrednosti ključa sloga i adrese
lokacije u koju je smešten
– redosled memorisanja slogova najčešće prema
hronološkom redosledu njihovog nastanka
– slogovi mogu, a i ne moraju, biti blokirani

OD – Serijska i sekvencijalna 3 / 45
Serijska organizacija datoteke
• Primer - mala serijska datoteka - Dser
– slogova N = 13 A1
– faktor blokiranja f = 3 34 p(S 1 ) 07 p(S 2 ) 03 p(S 3 )

– slogovi
A2
• dvojke (k(Si),p(Si)) 15 p(S 4 ) 19 p(S 5 ) 29 p(S 6 )
• k(Si) - vrednost ključa
• p(Si) - konkretizacija A3
ostalih obeležja sloga 64 p(S 7 ) 43 p(S 8 ) 23 p(S 9 )
Si (i = 1,...,13)
A4
– fizički blokovi 27 p(S 10 ) 13 p(S 11 ) 49 p(S 12 )
• adrese (relativne) Ai = i:
A1, A2, A3, A4 i A5 A5

– oznaka kraja datoteke:  25 p(S 13 ) *

OD – Serijska i sekvencijalna 4 / 45
Serijska organizacija datoteke
• Formiranje serijske datoteke
– serijska datoteka se generiše
• najčešće u postupku obuhvata podataka
– slogovi
• formiraju se prenosom podataka sa različitih izvora
– izvorna dokumenta
– uređaji i softveri za očitavanje vrednosti (u realnom vremenu)
• upisuju se jedan za drugim u sukcesivne memorijske lokacije
• svaki novi slog se upisuje na kraj datoteke
– rezultat obuhvata podataka
• neblokirana ili
• blokirana serijska datoteka

OD – Serijska i sekvencijalna 5 / 45
Serijska organizacija datoteke
• Formiranje serijske datoteke
– obuhvat podataka
• proces sa zadatkom da obezbedi inicijalno memorisanje
ispravnih podataka
– osnovna aktivnost: upis podataka na medijum,
izvršava je
• čovek-operater, koristeći
– program sa odgovarajućim UI-jem za formatiranje podataka i
– odgovarajuće U/I uređaje, ili
• specijalizovani softver sa odgovarajućim hardverskim
uređajima

OD – Serijska i sekvencijalna 6 / 45
Serijska organizacija datoteke
• Formiranje serijske datoteke
– UI programa za obuhvat podataka – format program
• opis formata dokumenta – raspored polja (layout),
ekranska forma
• pravila navigacije – pomeranja kursora između polja
• opisi i formatiranje sadržaja polja
• specijalne kontrole sadržaja polja
• dozvoljene operacije nad sadržajima polja

OD – Serijska i sekvencijalna 7 / 45
Serijska organizacija datoteke
• UI programa za obuhvat podataka
– opis formata dokumenta – raspored polja (layout)
KADROVSKA EVIDENCIJA
podaci o radnicima

Oznaka Redni broj


datoteke sloga

Preduzeće Radna jedinica

Matični broj radnika


Datum
Prezime Ime
rođenja

Opština Adresa

Radno mesto Broj bodova

Pozicija
Pritisni ENTER za upis Tip polja
kursora

OD – Serijska i sekvencijalna 8 / 45
Serijska organizacija datoteke
• UI programa za obuhvat podataka
– pravila navigacije – pomeranja kursora između polja
• mogućnost pristupa poljima putem miša ili tastature
• redosled obilaska polja u navigaciji
– putem tipke <TAB>, <ENTER>, ili automatskoj

OD – Serijska i sekvencijalna 9 / 45
Serijska organizacija datoteke
• UI programa za obuhvat podataka
– opisi i formatiranje sadržaja polja
• fiksni tekst (naslov) i tekstuelno uputstvo sa opisom polja
• tip polja (alfa, numeričko, alfanumeričko, datumsko)
• način vizuelizacije sadržaja
– tekstuelno polje, padajuća lista, combo-box, radio-grupa
– polje skrivenog sadržaja
– format maska za numeričke ili datumske vrednosti
– zadavanje vizuelnih atributa polja na formi
• maksimalni broj znakova koji je moguće uneti
• način poravnavanja sadržaja polja (levo, desno, centrirano)
• način preloma sadržaja tekstuelnih polja (bez preloma,
prelom na jedan znak, prelom na celu reč)

OD – Serijska i sekvencijalna 10 / 45
Serijska organizacija datoteke
• UI programa za obuhvat podataka
– specijalne kontrole sadržaja polja
• obaveznost unošenja barem jednog znaka u polje
• obaveznost kompletnog popunjavanja sadržaja polja
• kontrola na dozvoljeni opseg (domen) vrednosti
• kontrola po modulu – samo za numerička polja
– broju od n cifara pridružuje se jedna kontrolna cifra koja se
izračunava primenom posebnog algoritma na broj od n cifara
• provera da li se uneti podatak nalazi u tabeli / listi dozvoljenih
vrednosti

OD – Serijska i sekvencijalna 11 / 45
Serijska organizacija datoteke
• UI programa za obuhvat podataka
– dozvoljene operacije nad sadržajima polja
• ručni unos sadržaja polja
• modifikacija postojećeg sadržaja polja
• brisanje sadržaja jednog, izabranih, ili svih polja
• dupliciranje sadržaja jednog, izabranih, ili svih polja
– u cilju povećava produktivnost operatera
– kada se isti ili skoro isti sadržaj polja više puta ponavlja

OD – Serijska i sekvencijalna 12 / 45
Serijska organizacija datoteke
• Formiranje serijske datoteke
– obuhvat podataka – vreme obavljanja
• u realnom vremenu
– na mestu i u trenutku nastanka podataka
• u odloženom režimu (naknadno)
– nakon određenog intervala vremena od nastanka podataka
– po pravilu ga realizuje operater koji nije evidentirao izvorne
podatke, na osnovu manuelno izrađenih dokumenata
– verifikacija
– verifikacija
• postupak suštinske provere ispravnosti unetih podataka
(ručni, ili automatizovan)
– npr. drugi operater ponovo unosi jednom već unete podatke
koristeći isti izvorni dokument
– npr. korišćenje inteligentnih softverskih rešenja

OD – Serijska i sekvencijalna 13 / 45
Serijska organizacija datoteke
• Traženje sloga u serijskoj datoteci
– traženje slučajno odabranog sloga
• ne postoji funkcionalna veza između vrednosti ključa i adrese
lokacije sloga
• traženje logički narednog = traženje slučajno odabranog
– primena metode linearnog traženja
• počinje od početka datoteke
• pristupanje sukcesivno memorisanim blokovima i slogovima
– uspešno traženje, ukupan broj pristupa Ru:
1  Ru  B
– neuspešno traženje, ukupan broj pristupa Rn:
Rn = B
• B – ukupan broj blokova serijske datoteke
OD – Serijska i sekvencijalna 14 / 45
Serijska organizacija datoteke
• Traženje sloga u serijskoj datoteci
 N  1
– ukupan broj blokova datoteke: B   
• N – broj slogova  f 
• f – faktor blokiranja
• +1 - zbog specijalnog sloga sa oznakom kraja datoteke
– uspešno traženje, očekivani (srednji) broj pristupa
• verovatnoća traženja bilo kog sloga datoteke je ista, 1 / N
B f (B  1) 
Ru   N  
N 2 
• kada f | N, tj. B = N / f + 1, ili kada je N >> 1, tada:
B
Ru 
2
OD – Serijska i sekvencijalna 15 / 45
Serijska organizacija datoteke
• Traženje sloga u serijskoj datoteci
– uspešno traženje, ukupan broj upoređivanja
argumenta traženja i vrednosti ključa Uu:
1  Uu  N
– uspešno traženje, očekivani (srednji) broj
upoređivanja argumenta traženja i vrednosti ključa
• verovatnoća traženja bilo kog sloga datoteke je ista, 1 / N
N 1
Uu 
2
– neuspešno traženje, ukupan broj upoređivanja
argumenta traženja i vrednosti ključa Un:
Un = N
OD – Serijska i sekvencijalna 16 / 45
Serijska organizacija datoteke
• Obrada serijske datoteke
– vrste
• direktna obrada
• redosledna obrada
– ukoliko se ide na sekvencijalni pristup slogovima u
hronološkom redosledu
– može se koristiti kao vodeća u režimu direktne obrade
– može se koristiti kao vodeća u redoslednoj obradi
datoteke čiji ključ sadrži
• kao svoj strani ključ
• kada je uređena saglasno neopadajućim vrednostima tog
stranog ključa

OD – Serijska i sekvencijalna 17 / 45
Serijska organizacija datoteke
• Obrada serijske datoteke
– program koji vrši redoslednu obradu serijske datoteke
• učitava sukcesivne slogove vodeće datoteke
• svaki naredni slog vodeće datoteke sadrži logički narednu
vrednost ključa obrađivane serijske datoteke
• te vrednosti ključa se koriste kao argumenti za traženje u
serijskoj datoteci metodom linearnog traženja
– u režimu direktne obrade
• sukcesivni slogovi vodeće datoteke sadrže slučajno
odabrane vrednosti ključa obrađivane serijske datoteke
• traženje je, ponovo, linearno
– traženje logički narednog i slučajno odabranog sloga
serijske datoteke
• obavlja se identično, krećući od prvog sloga datoteke
OD – Serijska i sekvencijalna 18 / 45
Serijska organizacija datoteke
• Obrada serijske datoteke
– putem vodeće datoteke od Nv = Nvu + Nvn slogova
• Nvu slogova inicira uspešna traženja
• Nvn slogova inicira neuspešna traženja
– inicira ukupan prosečni broj traženja

Ruk  N vu Ru  N vn Rn
B
Ruk  N  N vn B
u
v
2
– broj pristupa se ne razlikuje za slučaj direktne i
redosledne obrade

OD – Serijska i sekvencijalna 19 / 45
Serijska organizacija datoteke
• Ažuriranje serijske datoteke
– upis novog sloga
• u prvu slobodnu lokaciju na kraju datoteke
• mora mu prethoditi jedno neuspešno traženje
• jednostavan, ali zahteva veliki broj pristupa
Rn  1, ( f | ( N  1))
Ri  
Rn  2, f | ( N  1)
– svaki f-ti put neophodno je proširiti datoteku novim blokom
• očekivani broj pristupa
1
Ri  Rn  1
f

OD – Serijska i sekvencijalna 20 / 45
Serijska organizacija datoteke
• Ažuriranje serijske datoteke
– brisanje postojećeg sloga
• mora mu prethoditi jedno uspešno traženje
• najčešće samo logičko – izmenom statusa aktuelnosti sloga
• fizičko brisanje bi zahtevalo veliki broj pristupa
– modifikacija sadržaja postojećeg sloga
• mora mu prethoditi jedno uspešno traženje

– očekivani broj pristupa za


• logičko brisanje ili
• modifikaciju sadržaja sloga

Rd  Ru  1

OD – Serijska i sekvencijalna 21 / 45
Serijska organizacija datoteke
• Oblasti primene i ocena karakteristika
– pogodne kao male datoteke
• kada mogu stati cele u OM
• zbog veoma velikog broja pristupa potrebnog za
pronalaženje logički narednog ili slučajno odabranog sloga
• druge vrste organizacije donose samo mala poboljšanja u
efikasnosti obrade malih datoteka
– serijska organizacija podataka u kombinaciji sa
indeksnim strukturama
• veoma pogodna za direktnu obradu
• osnovna fizička struktura relacionih baza podataka
– serijska datoteka kao rezultat obuhvata podataka
• polazna osnova za izgradnju datoteka sa drugim vrstama
organizacije podataka
OD – Serijska i sekvencijalna 22 / 45
Sadržaj
• Serijska organizacija datoteke
• Sekvencijalna organizacija datoteke

OD – Serijska i sekvencijalna 23 / 45
Sekvencijalna organizacije datoteke
• Osnovna struktura
– slogovi su smešteni sukcesivno jedan za drugim
– logički susedni slogovi smeštaju se u fizički susedne
lokacije
• postoji informacija o vezama između slogova logičke
strukture podataka datoteke, ugrađena u fizičku strukturu
• realizovana kao linearna logička struktura podataka
– smeštanjem sloga sa većom vrednošću ključa u lokaciju sa
većom adresom
• rastuće uređenje po vrednostima ključa  slog sa
najmanjom vrednošću ključa smešta se u prvu lokaciju
– naziva se i fizički sekvencijalnom organizacijom

OD – Serijska i sekvencijalna 24 / 45
Sekvencijalna organizacije datoteke
• Osnovna struktura
– veza između memorisanih vrednosti ključa k(S) i
adresa lokacija
• nije ugrađena u strukturu datoteke
• ne predstavlja bilo kakvu matematičku funkciju
– slogovi se smeštaju u blokovima od po f (1) slogova
• poželjno da faktor blokiranja f bude što veći
– savremeni OS (Unix) i programski jezici (C, C++,
Java) podržavaju samo sekvencijalni način pristupa
• korisnicima je ostavljeno da naprave svoje sopstvene
sekvencijalne metode pristupa

OD – Serijska i sekvencijalna 25 / 45
Sekvencijalna organizacije datoteke
• Primer - mala sekvencijalna datoteka - Dsek
– slogova N = 13 A1
03 p(S 1 ) 07 p(S 2 ) 13 p(S 3 )
– faktor blokiranja f = 3
– slogovi A2
15 p(S 4 ) 19 p(S 5 ) 23 p(S 6 )
• isti sadržaj kao i Dser
• dvojke (k(Si),p(Si)) A3
• k(Si) - vrednost ključa 25 p(S 7 ) 27 p(S 8 ) 29 p(S 9 )
• p(Si) - konkretizacija
ostalih obeležja sloga A4
Si (i = 1,...,13) 34 p(S 10 ) 43 p(S 11 ) 49 p(S 12 )
• oznaka kraja datoteke: 
A5
• indeksi i (i=1,...,13)
64 p(S 13 ) *
ukazuju na logički redosled
smeštanja slogova

OD – Serijska i sekvencijalna 26 / 45
Sekvencijalna organizacije datoteke
• Formiranje sekvencijalne datoteke
– najčešće sortiranjem serijske datoteke
– saglasno rastućim ili opadajućim vrednostima ključa

Serijska Sekvencijalna
SORT
datoteka datoteka

OD – Serijska i sekvencijalna 27 / 45
Sekvencijalna organizacije datoteke
• Traženje sloga u sekvencijalnoj datoteci
• logički narednog ili
• slučajno odabranog
– traženje slučajno odabranog sloga
• moguća primena metoda
– linearnog traženja
– binarnog traženja
– traženja po m putanja
• nema praktičnog smisla ako je datoteka velika i smeštena na
eksterni memorijski uređaj
• ima praktičnog smisla ako je cela datoteka smeštena u OM
– nju, u tom slučaju, može predstavljati
» neka linearna struktura nad skupom slogova ili
» blok neke druge datoteke, npr. indeks-sekvencijalne

OD – Serijska i sekvencijalna 28 / 45
Sekvencijalna organizacije datoteke
• Traženje sloga u sekvencijalnoj datoteci
– traženje logički narednog sloga
• linearnom metodom traženja
• počevši od prvog, fizički susedni blokovi se učitavaju u OM
• u centralnoj jedinici se vrši upoređivanje argumenata traženja
i vrednosti ključa sukcesivnih slogova dok se
– traženi slog ne pronađe
– argument traženja ne postane manji od vrednosti ključa sloga
– ne dođe do kraja datoteke
• traženje novog, logički narednog sloga, započinje od sloga
na kojem se prethodno traženje zaustavilo
– tekućeg sloga datoteke

OD – Serijska i sekvencijalna 29 / 45
Sekvencijalna organizacije datoteke
• Traženje sloga u sekvencijalnoj datoteci
– traženje logički narednog sloga
– broj pristupa pri uspešnom i pri neuspešnom traženju
0  R B - i
• i - redni broj tekućeg bloka u odnosu na početak
– broj poređenja argumenata traženja i vrednosti
ključeva slogova, pri uspešnom i neuspešnom
traženju
1  U N - i + 1
• i - redni broj tekućeg sloga
– broj za jedan veći od dužine puta između prvog i tekućeg sloga

OD – Serijska i sekvencijalna 30 / 45
Sekvencijalna organizacije datoteke
• Obrada sekvencijalne datoteke
• redosledna
• direktna
– direktna obrada
• ima smisla ako je sekvencijalna datoteka mala, tako da se
može smestiti u operativnu memoriju
• performanse obrade malo se razlikuju od performansi obrade
serijske datoteke

Ruk  N vu Ru  N vn Rn
B n B
Ruk  N u
v Nv
2 2

OD – Serijska i sekvencijalna 31 / 45
Sekvencijalna organizacije datoteke
• Obrada sekvencijalne datoteke
– vodeća datoteka u direktnoj i redoslednoj obradi
• česta upotreba
• sukcesivno učitavanje fizički susednih slogova, počevši od
prvog pa do poslednjeg
• ukupan broj pristupa, kada se sekvencijalna datoteka koristi
kao vodeća u obradi

 N  1
Ruk  B   
 f 

OD – Serijska i sekvencijalna 32 / 45
Sekvencijalna organizacije datoteke
• Obrada sekvencijalne datoteke
– redosledna obrada
• iterativan proces
• vodeća datoteka generiše logički naredne vrednosti ključa za
traženje u obrađivanoj, sekvencijalnoj datoteci
– svaki korak obrade = traženje logički narednog sloga
• vrši se metodom linearnog traženja
– svaki blok datoteke učitava se u OM samo jedanput

– vodeća datoteka sadrži Nv (Nv  1) slogova


• uključuje vrednost ključa veću ili jednaku najvećoj vrednosti
ključa u obrađivanoj datoteci

OD – Serijska i sekvencijalna 33 / 45
Sekvencijalna organizacije datoteke
• Obrada sekvencijalne datoteke
– redosledna obrada
– ukupan broj pristupa
Ruk = B
– srednji broj pristupa po jednom traženju
B
R
Nv
• što je R manji, obrada je efikasnija
• poželjniji veći faktor blokiranja f i veći broj traženja Nv
– ukupan broj upoređivanja U  N + Nv
N
– srednji broj upoređivanja U  1
Nv
OD – Serijska i sekvencijalna 34 / 45
Sekvencijalna organizacije datoteke
• Ažuriranje sekvencijalne datoteke
– upis novog sloga
• pronalaženje mesta upisa novog sloga – neuspešno traženje
– lokacija sloga sa prvom većom vrednošću ključa od datog
• pomeranje za jednu lokaciju udesno svih slogova sa
vrednostima ključa većim od vrednosti ključa novog sloga
– brisanje postojećeg sloga
• prethodno pronalaženje sloga – uspešno traženje
• pomeranje za jednu lokaciju ulevo svih slogova sa većom
vrednošću ključa, ako se brisanje vrši fizički
– modifikacija sadržaja sloga
• prethodno pronalaženje sloga – uspešno traženje
– upis i brisanje: ozbiljan problem ukupnog broja
pristupa
OD – Serijska i sekvencijalna 35 / 45
Sekvencijalna organizacije datoteke
• Ažuriranje sekvencijalne datoteke
– u režimu direktne obrade
• u proseku, pomeranje polovine od ukupnog broja slogova za
jednu lokaciju udesno (pri upisu) ili ulevo (pri brisanju) sloga
• primenjuje se kada je kompletna datoteka smeštena u OM
– u režimu redosledne obrade
• poseban iterativni postupak
– kreiranje potpuno nove datoteke, na osnovu postojeće
• primeren kada se datoteka ne može kompletno smestiti u
operativnu memoriju
• datoteke i uloge u obradi
– Ds - obrađivana, ulazna (stara) sekvencijalna datoteka
– Dn - obrađena, izlazna (nova) sekvencijalna datoteka
– Dp - vodeća datoteka promena, serijska, ulazna
– Dg - datoteka grešaka, izlazna
OD – Serijska i sekvencijalna 36 / 45
Sekvencijalna organizacije datoteke
• Ažuriranje sekvencijalne datoteke
– u režimu redosledne obrade

Ds

Ser Sek Program za


SORT
Dp Dp ažuriranje

Dn
Dg
Lista grešaka

OD – Serijska i sekvencijalna 37 / 45
Sekvencijalna organizacije datoteke
• Ažuriranje sekvencijalne datoteke
– u režimu redosledne obrade
– format sloga datoteke Ds i Dn identičan (k(Si), p(Si))

– format sloga datoteke promena Dp: (k(Si),pp(Si),sp(Si))


• sp(Si) - polje statusa izvršene operacije, moguće vrednosti:
– n – novi slog, m – podaci za modifikaciju, b – slog za brisanje

– format sloga datoteke grešaka Dg: (k(Si), p(Si), sg(Si))


• sg(Si) - polje opisa greške, moguće vrednosti ukazuju na:
– pokušaj upisa već postojećeg sloga u datoteku
– pokušaj brisanja ili modifikacije nepostojećeg sloga datoteke

OD – Serijska i sekvencijalna 38 / 45
Sekvencijalna organizacije datoteke
• Ažuriranje sekvencijalne datoteke
– u režimu redosledne obrade
• sekvencijalni pristup sa učitavanjem slogova Ss(Ds) i Sp(Dp)
• upoređivanje vrednosti ključeva tekućih slogova
• generisanje novih slogova Sn(Dn) na osnovu sadržaja tekućih
slogova Ss i Sp
• upis slogova Sn u datoteku Dn

– dužina intervala između dva ažuriranja


• određuje se tako da se tokom njega nakupi toliki broj
promena koji bi opravdao pristupanje svim slogovima stare i
generisanje nove datoteke
• duži interval  veća efikasnost obrade, ali i duže vreme
neusaglašenosti sadržaja datoteke sa realnim stanjem

OD – Serijska i sekvencijalna 39 / 45
Sekvencijalna organizacije datoteke
• Ažuriranje sekvencijalne datoteke
– u režimu redosledne obrade
– datoteka promena Dp sadrži Nv = Nvn + Nvb + Nvm
slogova
– Nvn za upis, Nvb za brisanje i Nvm za modifikaciju

 N v  1
– i Bv blokova: Bv   
 f 
 N  1
– postojeća datoteka Ds sadrži Bs blokova: Bs   
 f 
– nova datoteka Dn sadrži Bn blokova:
 N  N vn  N vb  1
Bn   
 f 
OD – Serijska i sekvencijalna 40 / 45
Sekvencijalna organizacije datoteke
• Ažuriranje sekvencijalne datoteke
– u režimu redosledne obrade
– srednji broj pristupa pri ažuriranju datoteke za jedno
traženje logički narednog sloga

Bv  Bs  Bn
R
Nv

OD – Serijska i sekvencijalna 41 / 45
Sekvencijalna organizacije datoteke
• Oblasti primene i ocena karakteristika
– prednosti
• najpogodnija fizička organizacija za redoslednu obradu
• ekonomično korišćenje memorijskog prostora
• mogućnost korišćenja i magnetne trake i magnetnog diska,
kao medijuma
– nedostaci
• nepogodnost za direktnu obradu
• potreba sortiranja pri formiranju
• relativno dugotrajan postupak ažuriranja

OD – Serijska i sekvencijalna 42 / 45
Sekvencijalna organizacije datoteke
• Oblasti primene i ocena karakteristika
– najpogodnija fizička organizacija za redoslednu
obradu
• režim redosledne obrade često se koristi u praksi, u paketnoj
(batch) obradi podataka
• posledica činjenice da su logički susedni slogovi smešteni u
fizički susedne lokacije
• učitavanjem jednog bloka u OM, pribavlja se f slogova koji
najverovatnije učestvuju u narednim koracima obrade
• poželjno je da f bude što veći
• kada Nv  N, tada R  1 / f, te se s povećanjem f
poboljšava efikasnost obrade

OD – Serijska i sekvencijalna 43 / 45
Sadržaj
• Serijska organizacija datoteke
• Sekvencijalna organizacija datoteke

OD – Serijska i sekvencijalna 44 / 45
Pitanja i komentari

?
OD – Serijska i sekvencijalna 45 / 45
Organizacija datoteka

Serijska i sekvencijalna
organizacija datoteke
Struktura, formiranje, traženje,
obrada, ažuriranje, primena i
ocena

OD – Serijska i sekvencijalna
Organizacija datoteka

Rasuta organizacija
datoteke
Struktura, formiranje, traženje,
obrada, ažuriranje, primena i
ocena

OD – Rasute organizacije
Sadržaj
• Rasute organizacije datoteka
• Direktna i relativna organizacija datoteke
• Statička rasuta organizacija datoteke
• Dinamička rasuta organizacija datoteke

OD – Rasute organizacije 2 / 108


Rasute organizacije datoteka
• Rasuta organizacija datoteke
– često se, u najširem značenju, naziva i direktnom jer
se
• slogu ili grupi slogova pristupa direktno na osnovu
poznavanja adrese memorijske lokacije u kojoj su smešteni
• adresa lokacije dobija transformacijom vrednosti
identifikatora sloga u adresu
– identifikator – skup obeležja čije vrednosti
jednoznačno određuju slogove datoteke
• identifikator može a ne mora pripadati skupu obeležja tipa
sloga datoteke – interni ili eksterni
• interni identifikator - po pravilu, primarni ključ datoteke
• eksterni identifikator - vrednosti identifikatora pidružuju se
svakom slogu eksterno, van konteksta sadržaja datoteke

OD – Rasute organizacije 3 / 108


Rasute organizacije datoteka
• Rasuta organizacija datoteke
– transformacija vrednosti identifikatora u adresu
• h: dom(K)  A
– K - domen identifikatora
– A - skup adresa lokacija memorijskog prostora datoteke
– vrste transformacija vrednosti identifikatora u adresu
• deterministička
– funkcija h je injektivna
– svakoj vrednosti identifikatora odgovara jedna adresa
– svakoj adresi odgovara najviše jedna vrednost identifikatora
• probabilistička
– svakoj vrednosti identifikatora odgovara jedna adresa
– jednoj adresi može odgovarati više rezultata transformacije
– metoda za generisanje pseudoslučajnih brojeva

OD – Rasute organizacije 4 / 108


Rasute organizacije datoteka
• Rasuta organizacija datoteke
– fizička struktura podataka ne sadrži informaciju o
vezama između slogova logičke strukture datoteke
• u dve fizički susedne lokacije mogu a ne moraju biti
memorisani logički susedni slogovi
• slogovi su, na slučajan način, rasuti po memorijskom
prostoru datoteke
• Baket
– tradicionalan naziv za blok kod rasutih datoteka
– faktor baketiranja b (b  1) = faktor blokiranja f
– transformacijom h vrednost identifikatora pretvara se
u adresu baketa

OD – Rasute organizacije 5 / 108


Rasute organizacije datoteka
• Primer - rasuta datoteka - Dras
– slogova N = 10 1
15 p(S 4 ) 25 p(S 7 )
– faktor baketiranja
b=3 2
– datoteci je dodeljeno
B = 5 baketa 3
– identifikator 07 p(S 2 ) 27 p(S 9 )
• primarni ključ datoteke
4
– transformacija 03 p(S 3 ) 23 p(S 8 ) 13 p(S 10 )
• h(ki)=1+k(Si)(mod B)
i  {1,...,N} 5
• rezultat : relativna 34 p(S 1 ) 19 p(S 5 ) 29 p(S 6 )
adresa baketa
iz skupa {1,2,3,4,5}
OD – Rasute organizacije 6 / 108
Rasute organizacije datoteka
• Vrste rasutih datoteka
– s obzirom na način alokacije memorijskog prostora
– statičke
• veličina adresnog prostora određuje se i kompletno alocira
unapred , statički
• ne može se menjati tokom eksploatacije
– dinamičke
• veličina dodeljenog adresnog prostora menja se tokom
ažuriranja, saglasno potrebama

– istorijski gledano, statičke rasute datoteke nastale su


znatno ranije od dinamičkih

OD – Rasute organizacije 7 / 108


Rasute organizacije datoteka
• Opšti postupak formiranja statičke rasute
– statičkoj rasutoj datoteci, u postupku formiranja,
dodeljuje se Q = bB lokacija, N  Q
• nakon formiranja, Q se više ne može menjati
– faktor popunjenosti
• q = N / Q, 0q1
– redosled smeštanja slogova u datoteku je nevažan
• i u slučaju determinističke i probabilističke transformacije
– slogovi se upisuju saglasno hronološkom redosledu
nastanka
– upisu sloga prethodi neuspešno traženje, na osnovu
obavljene transformacije identifikatora u adresu
– slog se smešta u baket sa izračunatom adresom
OD – Rasute organizacije 8 / 108
Sadržaj
• Rasute organizacije datoteka
• Direktna i relativna organizacija datoteke
• Statička rasuta organizacija datoteke
• Dinamička rasuta organizacija datoteke

OD – Rasute organizacije 9 / 108


Direktna i relativna organizacija datoteke
• Direktna organizacija datoteke
– eksterni identifikator, trivijalna deterministička
transformacija h: A  A
– vrednost identifikatora je, u isto vreme, i adresa
baketa: Ai = ki
• najjednostavniji vid determinističke transformacije
– preslikavanje veza između sadržaja slogova i adresa
ne pripada direktnoj organizaciji datoteke
– vrste direktnih datoteka, s obzirom na vrstu
upotrebljavanih adresa
• vrednosti identifikatora su mašinske adrese baketa
• vrednosti identifikatora su relativne adrese baketa

OD – Rasute organizacije 10 / 108


Direktna i relativna organizacija datoteke
• Direktna datoteka s mašinskim adresama
– direktna datoteka u užem smislu reči
– koristi se adresa baketa na disku, oblika (u, c, t, s)
– ima samo istorijski značaj
– nedostaci
• čvrsta povezanost programa sa fizičkim karakteristikama
memorijskog uređaja
– program zavisi od karakteristika eksternog memorijskog
uređaja i fizički alociranog prostora na uređaju
– ne može se koristiti putem programskih jezika treće generacije
• odsustvo logičke veze između vrednosti identifikatora i
sadržaja sloga
– održavanje veze između sadržaja sloga i adrese je zadatak
krajnjeg korisnika, ili u boljem slučaju, samog programa
– problemi u slučaju reorganizacije ili brisanja pa upisa sloga
OD – Rasute organizacije 11 / 108
Direktna i relativna organizacija datoteke
• Direktna datoteka s relativnim adresama
– relativna organizacija datoteke
– korišćenje relativnih adresa slogova
• lokacije alociranog memorijskog prostora numerišu se rednim
brojevima od od 1 do Q (alternativno, od 0 do Q - 1)
• redni broj sloga u memorijskom prostoru predstavlja eksterni
identifikator sloga
• rešava se problem čvrste povezanosti slogova datoteke sa
fizičkim karakteristikama memorijskog uređaja
– odsustvo logičke veze između vrednosti identifikatora
i sadržaja sloga – glavni nedostatak
– relativna metoda pristupa
• deo sistema za upravljanje podacima koji obavlja
transformaciju relativne adrese u mašinsku i ostale operacije
OD – Rasute organizacije 12 / 108
Direktna i relativna organizacija datoteke
• Relativna metoda pristupa
– pruža programu usluge na nivou bloka (baketa)
• ne vrši blokiranje i rastavljanje blokova na slogove
• prihvata samo vrednost faktora blokiranja jednaku 1
• sa stanovišta relativne metode pristupa:
1 blok = 1 slog
– aktivnosti blokiranja i rastavljanja blokova na slogove
moraju se realizovati u okviru samog programa
• ukoliko za tim postoji realna potreba
• čime se može postići veća efikasnost iskorišćenja
memorijskog prostora

OD – Rasute organizacije 13 / 108


Direktna i relativna organizacija datoteke
• Relativna metoda pristupa
– sistemi za upravljanje datotekama mainframe
računarskih sistema
• kompletna podrška – usluge na nivou bloka
– savremeni SUBP
• moguća podrška, ali nije tipično u upotrebi
– standardne biblioteke programskih jezika
• podržana transformacija relativne adrese u apsolutnu
• moguća kompletna podrška – usluge na nivou sloga, ili
• podrška samo direktnog pristupa lokacijama datoteke
– rutinske operacije rada sa slogovima datoteke rešavaju se kroz
aplikativni program
– koriste se pozivi rutina koje obezbeđuju rad sa datotekom kao
bajt ili znak-orijentisanom strukturom

OD – Rasute organizacije 14 / 108


Direktna i relativna organizacija datoteke
• Relativna metoda pristupa
– standardne biblioteke programskih jezika, za razliku
od sistema za upravljanje datotekama mainframe
računarskih sistema
• ne prave razliku između serijske, sekvencijalne, relativne,
spregnute ili rasute osnovne organizacije datoteke
• pružaju usluge na nivou sloga ili čak samo na nivou bajt-
orijentisane strukture
• za svaku datoteku, podržavaju metode direktnog i
sekvencijalnog pristupa
• za upravljanje svakom datotekom podržavaju iste sistemske
pozive i odgovarajuće bibliotečne funkcije
– otvaranje, pozicioniranje, čitanje, upisivanje i zatvaranje
• aplikativnom programu ostaje da obezbedi svu
funkcionalnost koju zahteva određena vrsta organizacije
OD – Rasute organizacije 15 / 108
Direktna i relativna organizacija datoteke
• Formiranje relativne datoteke
– najčešće u posebnom postupku
– na osnovu vodeće serijske ili neke druge vrste
datoteke
• sukcesivno učitavanje slogova vodeće datoteke
• pridruživanje vrednosti identifikatora – relativne adrese slogu
– najčešće automatski, kroz aplikativni program
• smeštanje sloga u lokaciju s pridruženom relativnom
adresom

OD – Rasute organizacije 16 / 108


Direktna i relativna organizacija datoteke
• Traženje sloga u relativnoj datoteci
– traženje i logički narednog i slučajno odabranog sloga
• zadavanjem relativne adrese lokacije metodi pristupa
– primena trivijalne metode transformacije identifikatora u adresu
• na osnovu adrese, metoda pristupa prenosi blok u radnu
zonu programa
– uspešno traženje
• ako i samo ako traženi slog postoji u prenetom bloku
• broj pristupa za uspešno ili neuspešno traženje Ru, Rn:
Ru = 1, Rn = 1

OD – Rasute organizacije 17 / 108


Direktna i relativna organizacija datoteke
• Ažuriranje relativne datoteke
– u režimu direktne obrade
– upis novog sloga
• novom slogu pridruži se vrednost identifikatora
• slog se upisuje u datoteku, ako postoji slobodna lokacija u
bloku
• pre upisa, može se izvršiti provera da li slog sa istom
vrednošću ključa već postoji u istom bloku
– brisanje
• realizuje se kao logičko
• pročita se sadržaj adresiranog bloka
• nakon provere vrednosti ključa, izmena sadržaja statusnog
polja sloga
• modifikovani sadržaj bloka ponovo se upisuje u datoteku
OD – Rasute organizacije 18 / 108
Direktna i relativna organizacija datoteke
• Ocena karakteristika relativne datoteke
– traženje slučajno odabranog sloga
• najefikasnije moguće
• uz pretpostavku da korisnik brine o vezi između sadržaja
sloga i relativne adrese
– traženje logički narednog sloga
• značajno efikasnije nego u slučaju serijske datoteke
• značajno manje efikasno nego u slučaju sekvencijalne
datoteke
– traženje i logički narednog i slučajno odabranog sloga
• potreban uvek samo jedan pristup datoteci
– uvođenje relativne adrese lokacije kao identifikatora
• rešava problem čvrste povezanosti slogova datoteke sa
karakteristikama memorijskog uređaja
OD – Rasute organizacije 19 / 108
Direktna i relativna organizacija datoteke
• Ocena karakteristika relativne datoteke
– nepostojanje veze između vrednosti identifikatora i
sadržaja sloga u relativnoj organizaciji datoteke
• prepreka za šire korišćenje relativnih datoteka u praksi
– moguća primena relativne metode pristupa
• osnov za izgradnju spregnute datoteke
– relativna adresa lokacije logički narednog sloga smešta se u
polje pokazivača tekućeg sloga
• osnov za izgradnju rasutih datoteka sa probabilističkom
transformacijom ključa u adresu
– probabilistička transformacija brine o vezi između vrednosti
identifikatora i relativne adrese
• osnov za izgradnju indeksnih datoteka
– formira se pomoćna struktura podataka koja obezbeđuje
memorisanje veze između sadržaja sloga i relativne adrese

OD – Rasute organizacije 20 / 108


Sadržaj
• Rasute organizacije datoteka
• Direktna i relativna organizacija datoteke
• Statička rasuta organizacija datoteke
• Dinamička rasuta organizacija datoteke

OD – Rasute organizacije 21 / 108


Statička rasuta organizacija datoteke
• Opšte karakteristike rasute datoteke sa
probabilističkom transformacijom
– ključ
• često uzima vrednosti iz veoma velikog opsega mogućih
vrednosti
– ograničenog samo brojem pozicija p i brojem dozvoljenih
vrednosti v koju svaka pozicija može imati
• može uzimati jednu od vp ili vp-1 vrednosti
– veličina adresnog prostora dodeljenog datoteci
• broj lokacija Q = Bb
– B - broj baketa, b - broj lokacija u baketu
• N - broj aktuelnih slogova u datoteci
– po pravilu, mnogo manji od broja mogućnih vrednosti ključa

v  Q  N
p

OD – Rasute organizacije 22 / 108


Statička rasuta organizacija datoteke
• Metode probabilističke transformacije
– uvode se kako bi se prevazišli nedostaci do kojih
dovodi deterministička transformacija vrednosti ključa
u adresu
• Ciljevi:
– što ravnomernija raspodela slogova u adresnom
prostoru
– pseudoslučajna transformacija vrednosti ključa u
adresu
– pravilno dizajniranje potrebnog adresnog prostora

OD – Rasute organizacije 23 / 108


Statička rasuta organizacija datoteke
• Metode probabilističke transformacije
– koraci probabilističke transformacije vrednosti ključa
h: dom(K)  A
– (1) pretvaranje nenumeričke u numeričku vrednost
ključa:
k(S)  0, 1,..., vp - 1
• očekivano, osnova brjonog sistema: v = 10
• p – broj cifara numeričke vrednosti ključa
– (2) pretvaranje numeričke vrednosti ključa k(S) u
pseudoslučajan broj T(k(S)), ili skraćeno T
T  0, 1,..., vn - 1
• n – dozvoljeni broj cifara relativne adrese A  1,..., B
n  log v B, 1  n  p
OD – Rasute organizacije 24 / 108
Statička rasuta organizacija datoteke
• Metode probabilističke transformacije
– koraci probabilističke transformacije vrednosti ključa
h: dom(K)  A
– (3) dovođenje vrednosti pseudoslučajnog broja T u
opseg dozvoljenih vrednosti relativne adrese 1,..., B
B
A  1  kT , k  n , 0,1  k  1
• A  1,..., B
v
– (4) pretvaranje relativne u mašinsku adresu
• opšti zadatak metode pristupa
• rezultat primene prva tri koraka je relativna adresa

OD – Rasute organizacije 25 / 108


Statička rasuta organizacija datoteke
• Metode probabilističke transformacije
– tri često upotrebljavane metode
• metoda ostatka pri deljenju
• metoda centralnih cifara kvadrata ključa
• metoda preklapanja

OD – Rasute organizacije 26 / 108


Statička rasuta organizacija datoteke
• Metoda ostatka pri deljenju
– relativna adresa A – celobrojni ostatak pri deljenju
numeričke vrednosti ključa
T  k (S )(mod m)
• m – ceo broj, takav da:

v n1  m  v n
B  B
A  1   T , k  , 0,1  k  1
m  m
• kada se izabere da je m = B:

A  1  k (S )(mod B)
OD – Rasute organizacije 27 / 108
Statička rasuta organizacija datoteke
• Metoda ostatka pri deljenju
– preporuke za izbor vrednosti m
• kako bi rezultat transformacije bio što slučajniji broj, a
transformacija što ravnomernija
– m ne treba da bude paran broj, jer tada
• neparne vrednosti ključa daju neparne vrednosti relativne
adrese, a
• parne vrednosti ključa daju parne adrese
– m ne treba da bude stepen osnove brojnog sistema
• jer bi tada cifre najmanje težine ključa predstavljale relativnu
adresu bez obzira na vrednost ostalih cifara
– najpogodnije da m predstavlja
• prost broj ili
• neparan broj sa relativno velikim prostim činiocima
OD – Rasute organizacije 28 / 108
Statička rasuta organizacija datoteke
• Metoda ostatka pri deljenju
– Primer: B = 5, m = B

Si S1 S2 S3 S4 S5 S6 S7 S8 S9
k(Si) 34 7 3 15 19 29 64 43 23
Ti 4 2 3 0 4 4 4 3 3
Ai 5 3 4 1 5 5 5 4 4

OD – Rasute organizacije 29 / 108


Statička rasuta organizacija datoteke
• Metoda ostatka pri deljenju
– pogodna za primenu kada se vrednosti ključa javljaju
u paketima
• pojedini intervali u opsegu dozvoljenih vrednosti ključa gusto
zaposednuti aktuelnim vrednostima ključa
• između njih intervali sa neaktuelnim vrednostima ključa

dom(K)

0 vp - 1

– slogovi sa sukcesivnim vrednostima ključa iz paketa


dobijaju adrese fizički susednih baketa
• što rezultuje ravnomernim zaposedanjem baketa

OD – Rasute organizacije 30 / 108


Statička rasuta organizacija datoteke
• Metoda centralnih cifara kvadrata ključa
– vrednost ključa diže se na kvadrat
– uzima se onoliko centralnih cifara kvadrata vrednosti
ključa koliko pozicija treba da sadrži relativna adresa
• formira se pseudoslučajan broj T
– vrši se centriranje i normiranje pseudoslučajnog broja
na zadati opseg relativnih adresa

OD – Rasute organizacije 31 / 108


Statička rasuta organizacija datoteke
• Metoda centralnih cifara kvadrata ključa
– vrednost ključa k(S)  {0, 1,...,vp - 1} u polinomijalnom
obliku: p 1
k ( S )   ai v i , ai {0, 1,..., v  1}
i 0

– kvadrat u vrednosti ključa u polinomijalnom obliku:


2 p 1
(k ( S )) 2   i , ci {0, 1,..., v  1}
c v
i 0
i

OD – Rasute organizacije 32 / 108


Statička rasuta organizacija datoteke
• Metoda centralnih cifara kvadrata ključa
– iz niza cifara kvadrata ključa (c2p-1, c2p-2,..., c1, c0)
izdvaja se podniz od n centralnih cifara
(ct+n-1, ct+n-2,...,ct+1,ct)
 n
• t – pozicija najlakše cifre podniza t  p 
 2
• formira se pseudoslučajni broj T:
n 1
T   ct i v i
i 0

B 
– relativna adresa matičnog baketa A: A  1  n T 
v 
OD – Rasute organizacije 33 / 108
Statička rasuta organizacija datoteke
• Metoda centralnih cifara kvadrata ključa
– Primer:
• p = 2, v = 10,
• B = 20, n = 2,
• t = 1, k = B / vn = 0,2

Si S1 S2 S3 S4 S5 S6 S7 S8 S9
k(Si) 34 7 3 15 19 29 64 43 23
(k(Si))2 1156 0049 0009 0225 0361 0841 4096 1849 0529
Ti 15 04 00 22 36 84 09 84 52
Ai 4 1 1 5 8 17 2 17 11

OD – Rasute organizacije 34 / 108


Statička rasuta organizacija datoteke
• Metoda preklapanja
– cifre ključa premeštaju se kao pri savijanju, tj.
preklapanju hartije
– vrši se sabiranje preklopljenih vrednosti po modulu vn
– pogodna za primenu
• kada je broj pozicija vrednosti ključa p mnogo veći od broja
pozicija relativne adrese n
– preklapanje se izvodi po osama koje zdesna u levo
određuje broj pozicija n relativne adrese

 p segmenata (brojeva) za
n
  preklapanje

n
OD – Rasute organizacije 35 / 108
Statička rasuta organizacija datoteke
• Metoda preklapanja
– vrednost ključa k(S)  {0, 1,...,vp - 1} u polinomijalnom
obliku: p 1
k ( S )   ai v i , ai {0, 1,..., v  1}
i 0
– pseudoslučajan broj T
 q n1 i q n1 i 
T    cr v   cs v (mod v n )
 k 0 i 0 k 1 i  0 
 p
q   , r  2kn  i, s  2kn  i  1
 2n 
cr , za r  p cs , za s  p
cr   i cs  
0, za r  p 0, za s  p
OD – Rasute organizacije 36 / 108
Statička rasuta organizacija datoteke
• Metoda preklapanja
B 
– relativna adresa matičnog baketa A: A  1  n T 
– Primer: v 
• p = 6, v = 10,
• B = 20, n = 2,
• p / n = 3, k = B / vn = 0,2
• k(S1) = 341201, T1 = (01 + 21 + 34) mod 102 = 56

Si S1 S2 S3 S4 S5 S6 S7 S8 S9
k(Si) 341201 237896 465210 542812 191378 296532 641000 430025 231258
Ti 56 6 81 48 28 17 65 68 2
Ai 12 2 17 10 6 4 14 14 1

OD – Rasute organizacije 37 / 108


Statička rasuta organizacija datoteke
• Karakteristike probabilističke transformacije
– pojava slogova sinonima
• dve različite vrednosti ključa mogu transformacijom dobiti istu
relativnu adresu
• slogovi sinonimi – slogovi koji transformacijom dobiju iste
relativne adrese
k(Si)  k(Sj), h(k(Si)) = h(k(Sj))
– matični baket
• baket čija relativna adresa predstavlja rezultat transformacije
• slogovi se uvek smeštaju u matični baket dok se ne popuni
– primarni slog
• slog koji je smešten u matični baket
– metoda transformacije particionira skup mogućih
vrednosti ključa na B skupova sinonima
OD – Rasute organizacije 38 / 108
Statička rasuta organizacija datoteke
• Karakteristike probabilističke transformacije
– prekoračilac
• slog koji ne može biti smešten u matični baket, usled njegove
popunjenosti
• mora se smestiti u neki drugi baket
– definiše se poseban postupak za smeštanje prekoračilaca
– pojava prekoračilaca je nepoželjna, jer
• zahteva poseban postupak za pronalaženje nove slobodne
lokacije za smeštaj prekoračilaca
• dovodi do produženja vremena pristupa pri kasnijem traženju
slogova prekoračilaca

OD – Rasute organizacije 39 / 108


Statička rasuta organizacija datoteke
• Karakteristike probabilističke transformacije
– verovatnoća pojave sinonima zavisi od
• raspodele vrednosti ključa unutar opsega dozvoljenih
vrednosti
• odabrane metode transformacije
• faktora popunjenosti memorijskog prostora
N N
q 
Q bB
– broj prekoračilaca će biti manji
• što su slogovi ravnomernije raspoređeni po baketima
• što je faktor popunjenosti manji
• što je faktor baketiranja veći
– pojava prekoračilaca je neminovnost
OD – Rasute organizacije 40 / 108
Statička rasuta organizacija datoteke
• Karakteristike probabilističke transformacije
– verovatnoća pojave sinonima
• transformacija vrednosti ključa u adresu – serija od N
nezavisnih eksperimenata
• verovatnoća dodele bilo koje adrese vrednosti ključa je, u
idealnom slučaju, jednaka i za bilo koji baket iznosi 1 / B
• broj slogova u jednom skupu sinonima – slučajna veličina s
binomnom raspodelom:
N i
 N  1   1 
i

P(i)     1  
 i  B   B 
• za velike vrednosti B i N: 1 / B  0, N / B = qb je konstantan,
Poissonova raspodela:
(qb)i qb
P(i)  e
i!
OD – Rasute organizacije 41 / 108
Statička rasuta organizacija datoteke
• Karakteristike probabilističke transformacije
– očekivani broj sinonima u svakom skupu sinonima
• očekivanje slučajne promenljive s binomnom ili Poissinovom
raspodelom
N
N
S   iP (i)   qb
i 0 B

– broj prekoračilaca po baketu L


• slučajna veličina s binomnom ili Poissionovom raspodelom
• uzima vrednosti u opsegu L  0, 1,..., N – b

OD – Rasute organizacije 42 / 108


Statička rasuta organizacija datoteke
• Karakteristike probabilističke transformacije
– očekivani broj prekoračilaca po baketu
N N b
L  (i  b) P(i)   (i  b) P(i)   (i  b) P(i)
i b 1 i 0 i 0
b
L  b(q  1)   (i  b) P(i)
i 0
– ukupan očekivani broj prekoračilaca: L B
• L – nezavisna slučajna promenljiva za svaki baket
– očekivani broj prekoračilaca po jednom slogu
LB 1 N q 1 1 b
N
 
qb i b1
(i  b) P(i) 
q
  (i  b) P(i)
qb i 0

OD – Rasute organizacije 43 / 108


Statička rasuta organizacija datoteke
• Karakteristike probabilističke transformacije
– očekivani broj prekoračilaca po jednom slogu

OD – Rasute organizacije 44 / 108


Statička rasuta organizacija datoteke
• Karakteristike probabilističke transformacije
– izbor faktora popunjenosti
• ostvaruje veliki uticaj na karakteristike rasuto organizovane
datoteke
– za malo q
• verovatnoća pojave više slogova u jednom skupu sinonima je
takođe mala ali je malo i iskorišćenje memorijskog prostora
– za veliko q (blizu 1)
• iskorišćenje memorijskog prostora je dobro, ali je velika
verovatnoća pojave sinonima i prekoračilaca
– u praksi se bira q  0,8

OD – Rasute organizacije 45 / 108


Statička rasuta organizacija datoteke
• Karakteristike probabilističke transformacije
– izbor faktora baketiranja
• utiče na očekivani broj prekoračilaca po jednom baketu, pri
datom faktoru popunjenosti q
– s porastom faktora baketiranja b
• verovatnoća pojave prekoračilaca opada
• ali raste vreme razmene sadržaja baketa između diska i OM
– putem jednog baketa učitava se veći broj, potencijalno
nepotrebnih slogova u OM
– sa smanjenjem faktora baketiranja b
• povećava se očekivani broj prekoračilaca
• za isti N i q povećava se broj baketa B i poboljšava se
preciznost transformacije
– u praksi, bira se b  10
OD – Rasute organizacije 46 / 108
Statička rasuta organizacija datoteke
• Postupci za smeštaj prekoračilaca
– smeštaj svih prekoračilaca unutar jedinstvenog
adresnog prostora
• izbor posebnog postupka za pronalaženje prazne lokacije za
smeštaj prekoračioca
– smeštaj svih prekoračilaca u posebnu zonu
adresnog prostora
• datoteka poseduje dve zone, primarnu i zonu prekoračenja
– prekoračioci se smeštaju u neku od slobodnih lokacija unutar
zone prekoračenja
• izbor vrste fizičke organizacije zone prekoračenja
– kombinacija prethodna dva načina
• lokalne zone prekoračenja u okviru primarne zone
• glavna zona prekoračenja – posebna zona
OD – Rasute organizacije 47 / 108
Statička rasuta organizacija datoteke
• Projektovanje rasute datoteke
– pri projektovanju utvrđuju se
• faktor popunjenosti memorijskog prostora q
• faktor baketiranja b
• metoda transformacije vrednosti ključa u adresu
• postupak za smeštanje prekoračilaca
– ova opredeljenja donose se s obzirom na
• raspodelu vrednosti ključa unutar opsega mogućnih vrednosti
• veličinu sloga
• obim i karakter ažuriranja datoteke
• očekivani srednji broj pristupa datoteci pri uspešnom i
neuspešnom traženju

OD – Rasute organizacije 48 / 108


Statička rasuta organizacija datoteke
• Projektovanje i formiranje rasute datoteke
– za zadati b, q i N, broj baketa je:
N
B 
 bq 
– aktivnosti formiranja rasuto organizovane datoteke
realizuju se
• potpuno uz pomoć metode pristupa, ako je podržava ili
• delom uz pomoć aplikativnog programa i delom uz pomoć
relativne metode pristupa
– aplikativni program: transformacija vrednosti ključa, smeštanje
prekoračilaca, formiranje baketa od više slogova, izdvajanje
slogova iz baketa
– relativna metoda: direktni upis i čitanje sadržaja baketa

OD – Rasute organizacije 49 / 108


Statička rasuta organizacija datoteke
• Formiranje rasute datoteke
– (1) inicijalno alociranje prazne datoteke
• statička alokacija kompletnog praznog prostora datoteke
• izbor postupka prepoznavanja slobodnih lokacija unutar
baketa
– putem sadržaja statusnog polja
– upisom specijalnih znakova u lokaciju
– putem indeksa slobodnih lokacija i njihovog sprezanja
– (2) upisivanje slogova u rasutu datoteku
• saglasno opštem postupku formiranja rasutih datoteka
• na osnovu sadržaja vodeće datoteke kojoj se sekvencijalno
pristupa ili
• direktnim upisivanjem slogova u realnom vremenu

OD – Rasute organizacije 50 / 108


Statička rasuta organizacija datoteke
• Formiranje rasute datoteke
– (A) Formiranje u jednom prolazu
• slogovi se upisuju u hronološkom redosledu nastanka
– bilo čitanjem sadržaja vodeće datoteke u sekvencijalnom
pristupu, bilo direktnim unosom podataka u realnom vremenu
– (B) Formiranje u dva prolaza
• slogovi se učitavaju iz vodeće datoteke i upisuju u rasutu
• (I) Prvi prolaz
– upisuju se samo oni slogovi koji će biti smešteni u matične
bakete
• (II) Drugi prolaz
– upisuju se preostali slogovi – prekoračioci, saglasno izabranom
postupku za smeštanje prekoračilaca
• ima smisla kod datoteka sa jedinstvenim adresnim prostorom
– time se umanjuje ukupan broj prekoračilaca
OD – Rasute organizacije 51 / 108
Statička rasuta organizacija datoteke
• Traženje sloga u rasutoj datoteci
– traženje logički narednog = slučajno odabranog sloga
• vrši se metodom transformacije argumenta u adresu baketa
– ako se slog ne nađe u matičnom baketu, a matični
baket ima prekoračilaca, traženje se nastavlja
• saglasno izabranom postupku za smeštanje i traženje
prekoračilaca
– linearna metoda
– ponovna transformacija
– metoda praćenja pokazivača
– za zadati q i b, efikasnost traženja zavisi od
primenjenog postupka za smeštaj prekoračilaca

OD – Rasute organizacije 52 / 108


Statička rasuta organizacija datoteke
• Vrste statičkih rasutih organizacija
– rasute datoteke s jedinstvenim adresnim
prostorom
• datoteka sa linearnim traženjem lokacije za smeštaj
prekoračilaca – sa otvorenim načinom adresiranja
– s fiksnim korakom k, k  1
– sa slučajno odbarnim korakom k, k  1
• datoteka sa sprezanjem prekoračilaca u jedinstvenom
adresnom prostoru – primarnoj zoni
– rasute datoteke sa zonom prekoračenja
• sa serijskom zonom prekoračenja
• sa spregnutom zonom prekoračenja

OD – Rasute organizacije 53 / 108


Statička rasuta organizacija datoteke
• Rasuta s linearnim traženjem prekoračilaca
– s fiksnim korakom k, k = 1
– ukoliko je matični baket popunjen, slog se smešta u
prvu narednu slobodnu lokaciju
• s obzirom na poziciju matičnog baketa
A0 = h(k(S))
An =1 + An-1 mod B, za n ≥ 1
– traženje slučajno odabranog sloga - prekoračioca
• linearnom metodom
• zaustavlja se na
– a) pronađenom slogu, ako je uspešno
– b) prvoj slobodnoj lokaciji, ako je neuspešno
– c) ponovnim nailaskom na matični baket, ako je neuspešno, a
cela datoteka kompletno popunjena
OD – Rasute organizacije 54 / 108
Statička rasuta organizacija datoteke
• Rasuta s linearnim traženjem prekoračilaca
– s fiksnim korakom k, k = 1
– upis novog sloga - prekoračioca
• pronalaženjem prve slobodne lokacije iza matičnog baketa
– brisanje postojećeg sloga
• logičko, potrebna tri statusa sloga
– a) aktuelan, b) neaktuelan i c) slobodna lokacija
• fizičko, uz lokalnu reorganizaciju memorijskog prostora
– primarnog sloga, kada ne postoje prekoračioci
» oslobađa se lokacija
– primarnog sloga, kada postoje prekoračioci ili prekoračioca
» svi prekoračioci (ne samo za dati matični baket) pomeraju
se za jednu poziciju prema matičnom baketu
» pri pomeranju, prekoračilac ne sme da pređe ispred svog
matičnog baketa
OD – Rasute organizacije 55 / 108
Statička rasuta organizacija datoteke
• Rasuta s linearnim traženjem prekoračilaca
– s fiksnim korakom k, k = 1
• glavni nedostaci
– (A) efekat nagomilavanja prekoračilaca
• prekoračioci iz jednih baketa izazivaju pojavu prekoračilaca
iz drugih baketa
• sve više raste verovatnoća zauzeća prve prazne lokacije iza
sve dužeg lanca zauzetih lokacija
– (B) neefikasno traženje
• traženje se vrši i u baketima koji ne sadrže slogove iz istog
skupa sinonima
– (C) neefikasno neuspešno traženje
• zaustavlja se tek nailaskom na prvu slobodnu lokaciju

OD – Rasute organizacije 56 / 108


Statička rasuta organizacija datoteke
• Rasuta s linearnim traženjem prekoračilaca
– s fiksnim korakom k, k > 1
– ukoliko je matični baket popunjen, slog se smešta u
narednu slobodnu lokaciju, udaljenu za k > 1 pozicija
• s obzirom na poziciju matičnog baketa
A0 = h(k(S))
An =1 + (An-1 + k – 1) mod B, za n ≥ 1

– k i B moraju biti uzajamno prosti brojevi


• kako bi se obezbedio, u najgorem slučaju, siguran obilazak
svih mogućih baketa
– u cilju pronalaska prve slobodne lokacije

OD – Rasute organizacije 57 / 108


Statička rasuta organizacija datoteke
• Rasuta s linearnim traženjem prekoračilaca
– s fiksnim korakom k, k > 1
• glavna motivacija
– odlaganje efekta nagomilavanja prekoračilaca
• pozitivan efekat
– prekidanje dugačkih lanaca zauzetih lokacija
• pokušaj da se, koliko je to moguće, očuva približno jednaka
verovatnoća zauzeća bilo koje prazne lokacije

OD – Rasute organizacije 58 / 108


Statička rasuta organizacija datoteke
• Rasuta s linearnim traženjem prekoračilaca
– sa slučajno odabranim korakom k, k ≥ 1
– Rasuta datoteka sa slučajnim traženjem
– ukoliko je matični baket popunjen, slog se smešta u
narednu slobodnu lokaciju, udaljenu za k ≥ 1 pozicija
• s obzirom na poziciju matičnog baketa
– k se određuje na slučajan način
• predstavlja rezultat druge probabilističke transformacije,
primenjene na vrednost identifikatora – ključa sloga

OD – Rasute organizacije 59 / 108


Statička rasuta organizacija datoteke
• Rasuta s linearnim traženjem prekoračilaca
– sa slučajno odabranim korakom k, k ≥ 1
– dve probabilističke transformacije
A0 = h1(k(S))  1,..., B
k = h2(k(S))  1,..., B - 1
An =1 + (An-1 + k – 1) mod B, tj.
An =1 + (An-1 + h2(k(S)) – 1) mod B, za n ≥ 1
– k i B moraju biti uzajamno prosti brojevi
• kako bi se obezbedio, u najgorem slučaju, siguran obilazak
svih mogućih baketa
– u cilju pronalaska prve slobodne lokacije
• pošto je k slučajna veličina, bira se da B bude prost broj
• često, k = h2(k(S)) = 1 + k(S) mod (B - 1)
OD – Rasute organizacije 60 / 108
Statička rasuta organizacija datoteke
• Rasuta s linearnim traženjem prekoračilaca
– sa slučajno odabranim korakom k, k ≥ 1
• glavna motivacija
– izbegavanje efekta nagomilavanja prekoračilaca
• pozitivan efekat
– prekidanje dugačkih lanaca zauzetih lokacija
• bolji pokušaj da se, koliko je to moguće, očuva približno
jednaka verovatnoća zauzeća bilo koje prazne lokacije
• Rasute s otvorenim načinom adresiranja
– pogodne za upotrebu u slučaju
• manje popunjenosti, q  0,7
• nižeg intenziteta ažuriranja

OD – Rasute organizacije 61 / 108


Statička rasuta organizacija datoteke
• Rasuta sa sprezanjem u primarnoj zoni
– primena tehnike sprezanja i složenija fizička struktura
– ukoliko je matični baket popunjen, slog se smešta u
prvu slobodnu lokaciju iz lanca slobodnih lokacija
• sprežu se dvostruko baketi sa slobodnim lokacijama
• specijalan (nulti) baket s pokazivačem na početak lanca
– vrši se sprezanje svih sinonima u odnosu na matični
baket
• za svaki matični baket po jedan lanac sinonima
• pokazivač na početak lanca u zaglavlju matičnog baketa
• pokazivač na sledeći u lancu sinonima ugrađen u svaki slog

OD – Rasute organizacije 62 / 108


Statička rasuta organizacija datoteke
• Rasuta sa sprezanjem u primarnoj zoni
Pokazivač na sledeći
– format baketa i sloga u lancu sinonima
E Pokazivač na lanac matičnog baketa
Ai baketa sa slobodnim
lokacijama
Ai
Ai1 Ai2 Ai3
u b n e
k(S1) p(S1) u(S1) k(S2) p(S2) u(S2) k(S3) p(S3) u(S3)

Broj slobodnih
lokacija u baketu

Pokazivač na lanac Pokazivač na prethodni Pokazivač na naredni


sinonima matičnog u lancu baketa sa u lancu baketa sa
baketa slobodnim lokacijama slobodnim lokacijama
OD – Rasute organizacije 63 / 108
Statička rasuta organizacija datoteke
• Rasuta sa sprezanjem u primarnoj zoni
– traženje slučajno odabranog sloga
• transformacija vrednosti ključa u adresu A = h(k(S)) i
pristupanje matičnom baketu
• praćenje lanca sinonima, započinjući od pokazivača u
– metodom praćenja pokazivača
• zaustavlja se na
– a) pronađenom slogu, ako je uspešno
– b) kraju lanca sinonima, ako je neuspešno

OD – Rasute organizacije 64 / 108


Statička rasuta organizacija datoteke
• Rasuta sa sprezanjem u primarnoj zoni
– upis novog sloga
• nakon neuspešnog traženja, uvezivanjem u lanac sinonima
• izborom prve prazne lokacije iz lanca baketa sa slobodnim
lokacijama
– na koju ukazuje E
– brisanje postojećeg sloga
• fizičko
• uklanjanjem sloga iz lanca sinonima, uz potrebno
prevezivanje
• oslobađanje lokacije, uz eventualno vraćanje baketa u lanac
baketa sa slobodnim lokacijama

OD – Rasute organizacije 65 / 108


Statička rasuta organizacija datoteke
• Rasuta sa sprezanjem u primarnoj zoni
• glavna motivacija
– izbegavanje efekata neefikasnog traženja (B) i (C)
• traženje se vrši samo u baketima koji sadrže slogove iz istog
skupa sinonima
• neuspešno traženje zaustavlja se dolaskom do kraja lanca
spregnutih slogova - sinonima
• pozitivan efekat
– poboljšana efikasnost traženja (naročito neuspešnog)
• u odnosu na datoteke s otvorenim načinom adresiranja
• negativan efekat
– i dalje moguć efekat nagomilavanja prekoračilaca (A)
– komplikovanija fizička struktura
OD – Rasute organizacije 66 / 108
Statička rasuta organizacija datoteke
• Rasuta sa sprezanjem u zoni prekoračenja
– uvođenje zone prekoračenja – spregnuta datoteka
– primena tehnike sprezanja i složenija fizička struktura
– ukoliko je matični baket popunjen, slog se smešta u
prvu slobodnu lokaciju iz lanca slobodnih lokacija u
zoni prekoračenja
• sprežu se jednostruko baketi sa slobodnim lokacijama u zoni
prekoračenja
• specijalan (nulti) baket s pokazivačem na početak lanca
– vrši se sprezanje svih prekoračilaca
• za svaki matični baket po jedan lanac prekoračilaca
• pokazivač na početak lanca u zaglavlju matičnog baketa
• pokazivač na sledeći u lancu prekoračilaca ugrađen u svaki
slog u zoni prekoračenja
OD – Rasute organizacije 67 / 108
Statička rasuta organizacija datoteke
• Rasuta sa sprezanjem u zoni prekoračenja
– dimenzionisanje spregnute zone prekoračenja
– tipičan faktor blokiranja f = 1
• mala je verovatnoća da se dva prekoračioca iz istog lanca
sinonima nađu u susednim lokacijama
– kapacitet – maksimalni broj blokova

Z  L B  k B 
• očekivana vrednost ukupnog broja prekoračilaca
• uvećana za standardnu devijaciju, pomnoženu s faktorom
sigurnosti k (normalna raspodela, tipično k = 3)
– formiranje
• uvek u jednom prolazu
• svi prekoračioci su u zoni prekoračenja, koja je odvojena od
primarne zone
OD – Rasute organizacije 68 / 108
Statička rasuta organizacija datoteke
• Rasuta sa sprezanjem u zoni prekoračenja
– traženje slučajno odabranog sloga
• transformacija vrednosti ključa u adresu A = h(k(S)) i
pristupanje matičnom baketu
• praćenje lanca prekoračilaca, započinjući od pokazivača na
početak lanca u matičnom baketu
– ukoliko slog nije pronađen u matičnom baketu, a postoji lanac
prekoračilaca
– metodom praćenja pokazivača
• zaustavlja se na
– a) pronađenom slogu, ako je uspešno
– b) kraju lanca prekoračilaca, ako je neuspešno

OD – Rasute organizacije 69 / 108


Statička rasuta organizacija datoteke
• Rasuta sa sprezanjem u zoni prekoračenja
– upis novog sloga
• nakon neuspešnog traženja
• u matični baket, ako ima mesta
• uvezivanjem u lanac prekoračilaca, ako u matičnom baketu
nema mesta
• izborom prve prazne lokacije iz lanca baketa sa slobodnim
lokacijama u zoni prekoračenja
– na koju ukazuje pokazivač na početak lanca
– brisanje postojećeg sloga
• fizičko
• uklanjanjem sloga iz matičnog baketa uz, eventualno,
prebacivanje prvog prekoračioca u matični baket, ili
• uklanjanjem sloga iz lanca prekoračilaca, uz potrebno
prevezivanje
OD – Rasute organizacije 70 / 108
Statička rasuta organizacija datoteke
• Rasuta sa sprezanjem u zoni prekoračenja
• glavna motivacija
– izbegavanje efekata neefikasnog traženja (B) i (C)
• traženje se vrši samo u baketima koji sadrže slogove iz istog
skupa sinonima
• neuspešno traženje zaustavlja se dolaskom do kraja lanca
spregnutih slogova – sinonima
– uklanjanje efekta nagomilavanja prekoračilaca (A)
• svi prekoračioci u zoni prekoračenja – spregnuta datoteka
• pozitivan efekat
– poboljšana efikasnost traženja (naročito neuspešnog)
• u odnosu na datoteke s jedinstvenim adresnim prostorom

OD – Rasute organizacije 71 / 108


Statička rasuta organizacija datoteke
• Rasuta sa serijskom zonom prekoračenja
– uvođenje zone prekoračenja – serijska datoteka
– ukoliko je matični baket popunjen, slog se smešta u
prvu slobodnu lokaciju u serijskoj zoni prekoračenja
– jednostavna struktura
• nema dodatnih polja pokazivača
– pogodna u slučaju manjeg očekivanog ukupnog broja
prekoračilaca
• ne isplati se sprezanje prekoračilaca u zoni prekoračenja

OD – Rasute organizacije 72 / 108


Statička rasuta organizacija datoteke
• Ocena traženja sloga u rasutoj datoteci
– očekivani broj prekoračilaca po jednom slogu
L B q 1 1 b
   (i  b) P(i)
N q qb i 0

– pri zadatom q i b ne zavisi od broja slogova N


• odnos N / B je konstantan
– očekivani broj pristupa pri uspešnom i neuspešnom
traženju zavisi od q i b, a ne od N
– karakteristike velikih rasutih datoteka mogu se
procenjivati poređenjem smalim datotekama, ali sa
istim q i b

OD – Rasute organizacije 73 / 108


Statička rasuta organizacija datoteke
• Ocena traženja sloga u rasutoj datoteci
– očekivani broj pristupa za uspešno traženje slučajno
odabranog sloga, kod svih vrsta
N
1
Ru 
N
 i
R u

i 1
• prebroji se potreban broj pristupa za svaki pojedinačni slog
– očekivani broj pristupa za neuspešno traženje
slučajno odabranog sloga, kod svih vrsta
• osim kod datoteke sa slučajnim traženjem prekoračilaca

1 B n
Rn   Ri
B i 1
• prebroji se potreban broj pristupa za svaki matični baket

OD – Rasute organizacije 74 / 108


Statička rasuta organizacija datoteke
• Ocena traženja sloga u rasutoj datoteci
– očekivani broj pristupa za neuspešno traženje
slučajno odabranog sloga
• kod datoteke sa slučajnim traženjem prekoračilaca

B ( B 1)
1 T n 1
Rn   Ri ili Rn   i R n

T i 1 B( B  1) i 1

• prebroji se potreban broj pristupa za


– svaku neaktuelnu vrednost ključa, T = vp – N ili
– svaki matični baket i svaku moguću vrednost koraka
k 1,..., B - 1

OD – Rasute organizacije 75 / 108


Statička rasuta organizacija datoteke
• Obrada rasute datoteke sa probabilističkom
transformacijom
– nepogodne za korišćenje u ulozi osnovne (prve)
vodeće datoteke
– mogu se koristiti kao obrađivane i vodeće u režimu
direktne obrade
– ne mogu se koristiti kao vodeće u režimu redosledne
obrade
• pošto fizička struktura ne sadrži informaciju o logičkoj
strukturi podataka
– mogu se obrađivati i u režimu redosledne i u režimu
direktne obrade

OD – Rasute organizacije 76 / 108


Statička rasuta organizacija datoteke
• Obrada rasute datoteke sa probabilističkom
transformacijom
– performanse redosledne i direktne obrade rasute
datoteke su iste
• zbog iste efikasnosti traženja i logički narednog i slučajno
odabranog sloga
– očekivani ukupni broj pristupa
Ruk  Nvu Ru  Nvn Rn
• broj slogova vodeće datoteke Nv  N vu  Nvn

• Ru očekivani broj pristupa pri uspešnom traženju 1 sloga


• Rn očekivani broj pristupa pri neuspešnom traženju 1 sloga

OD – Rasute organizacije 77 / 108


Statička rasuta organizacija datoteke
• Oblasti primene rasutih datoteka
– u svim mrežnim SUBP
– u pojedinim relacionim SUBP
– u interaktivnoj obradi podataka
– u režimu paketne obrade
– prednost
• mali očekivani broj pristupa pri traženju slučajno odabranog
sloga

OD – Rasute organizacije 78 / 108


Statička rasuta organizacija datoteke
• Oblasti primene rasutih datoteka
– nedostaci
• potreba da se unapred odredi veličina datoteke
– pogodne samo za datoteke čiji se sadržaj ređe menja
– intenzivno upisivanje novih slogova dovodi do degradacije
performansi obrade
• problem izbora probabilističke transformacije
– ravnomerna raspodela broja sinonima po baketima i pri
formiranju i pri ažuriranju
• broj pristupa pri traženju može biti nepredvidivo velik

OD – Rasute organizacije 79 / 108


Sadržaj
• Rasute organizacije datoteka
• Direktna i relativna organizacija datoteke
• Statička rasuta organizacija datoteke
• Dinamička rasuta organizacija datoteke

OD – Rasute organizacije 80 / 108


Dinamička rasuta organizacija datoteke
• Dinamička rasuta datoteka
– osnovni nedostatak statičkih rasutih datoteka
• uzajamna zavisnost metode transformacije identifikatora u
relativnu adresu i veličine adresnog prostora dodeljenog
datoteci
• dolazi do pojave prekoračilaca
• dolazi do degradacije performansi obrade datoteke
– za datoteke koje se skoro isključivo obrađuju u režimu
direktne obrade i čiji se sadržaj intenzivno menja
• moguće je uvesti rasutu organizaciju koja će se dinamički
prilagođavati aktuelnom broju slogova u datoteci

OD – Rasute organizacije 81 / 108


Dinamička rasuta organizacija datoteke
• Dinamička rasuta datoteka
– više vrsta struktura dinamičkih rasutih datoteka
• rasute datoteke koje se mogu širiti
• dinamičke rasute datoteke
• linearne dinamičke rasute datoteke
– zajedničke osobine
• metoda transformacije h
– ne zavisi od veličine adresnog prostora dodeljenog datoteci
– ne menja se zbog upisa novih slogova ili brisanja postojećih
• rezultat primene h na vrednost ključa
– binaran broj maksimalne dužine dmax
– vodećih d (0 d  dmax) bitova rezultata transformacije je
vrednost transformacije vt
– vt se koristi za pronalaženje adrese baketa u kojem je slog
• dužina d i broj baketa B se povećavaju i smanjuju dinamički
OD – Rasute organizacije 82 / 108
Dinamička rasuta organizacija datoteke
• Struktura dinamičke rasute datoteke
– dva dela
• adresar
– sadrži niz pokazivača dužine 2d (d  0) sa adresama baketa i
druga polja (uključujući i d i faktor baketiranja b)
• zona podataka sa baketima
– svaki baket sadrži zaglavlje i bar jedan slog
– zaglavlje baketa sadrži
» polje d' (0 d'  d) sa lokalnom dužinom vrednosti
transformacije
» polje m sa brojem aktuelnih slogova u baketu
– d' govori koliko istih bitova najveće težine vrednosti
transformacije vt moraju imati svi slogovi u baketu
– adresar i zona podataka
• realizuju se kao dve posebne datoteke

OD – Rasute organizacije 83 / 108


Dinamička rasuta organizacija datoteke
• Adresar
– mala pomoćna struktura podataka
• kao indeks koristi se za pristup baketima na disku
– najčešće se realizuje kao linearna struktura
– adresar sadrži
• jednodimenzionalni niz od 2d (B) pokazivača ka baketima u
zoni podataka, gde je B broj aktuelnih baketa u zoni
podataka
• promenljivu d
– broj bitova najveće težine funkcije h(k) koji se trenutno koriste
za indeksiranje niza pokazivača
• faktor baketiranja b

OD – Rasute organizacije 84 / 108


Dinamička rasuta organizacija datoteke
• Adresar
– koristi se samo stvarno neophodni broj bitova za
adresiranje baketa
d  log 2 B
– adresar zahteva relativno mali kapacitet memorijskog
prostora
• ceo adresar može smestiti u OM
• pri otvaranju datoteke adresar se prenosi u OM
• u OM ostaje do zatvaranja datoteke, kada se upisuje nazad
na disk
– elementima niza pokazivača
• pristup na osnovu binarne vrednosti njihove pozicije u nizu
– ta vrednost izražena je putem d bitova

OD – Rasute organizacije 85 / 108


Dinamička rasuta organizacija datoteke
• Adresar
– indeksi niza pokazivača se ponekad predstavljaju kao
kompletno binarno stablo
• u čijim listovima se nalaze pokazivači ka baketima
• levom odlaznom potegu iz jednog čvora pridružuje se binarni
broj 1, a desnom 0
• nizu dužine 2d odgovara kompletno binarno stablo visine
h=d+1
• svakom putu od korena do nekog lista odgovara
h - 1 = d ivica i nosi informaciju o jednom od 2d indeksa u
jednodimenzionalnom nizu pokazivača

OD – Rasute organizacije 86 / 108


Dinamička rasuta organizacija datoteke
• Adresar - primer
– binarno stablo, d = 2, koje reprezentuje niz
pokazivača dužine 2d = 4

Binarno
stablo 1 0

1 0 1 0
Pokazivači
ka baketima

Zona podataka sa baketima

OD – Rasute organizacije 87 / 108


Dinamička rasuta organizacija datoteke
• Veza između adresara i zone podataka
– zona podataka sadrži bakete
• svaki sadrži najviše b slogova
• svaki sadrži zaglavlje sa poljima d' i m
• svi slogovi u baketu moraju imati istih samo prvih d' bitova
vrednosti transformacije
• svaki element niza pokazivača u adresaru ukazuje na jedan
baket koji poseduje slogove sa istih d' vodećih bitova
vrednosti transformacije vt

OD – Rasute organizacije 88 / 108


Dinamička rasuta organizacija datoteke
• Veza između adresara i zone podataka
• ako za neki baket važi d = d'
– svi slogovi u baketu imaju iste vrednosti transformacije vt
dužine d
– samo jedan pokazivač vodi od niza pokazivača u adresaru ka
baketu
– za d > 0 vrednosti transformacije vt slogova u baketu su
jednake onoj vrednosti transformacije koja predstavlja indeks
pokazivača ka baketu i
– za d = d' = 0 vrednosti transformacije slogova u baketu su
nebitne, a niz pokazivača je jednočlan
• pošto broj pokazivača adresara koji ukazuju na isti baket
iznosi 2d-d', ako za neki baket važi d' < d tada
– slogovi u baketu moraju imati istih d' bitova najveće težine za
vt, a mogu imati neke od d - d' bitova najmanje težine različite
– 2d-d' susednih pokazivača čiji indeksi imaju istih d' bitova
najveće težine za vt, ukazuje ka posmatranom baketu
OD – Rasute organizacije 89 / 108
Dinamička rasuta organizacija datoteke
• Predstava dinamičke rasute datoteke
Baketi u zoni
Adresar u podataka na disku
operativnoj memoriji
d' = 2
m=4
pokazivači A2 zaglavlje
000 ... slog
001 ... slog
010 A2 slog
011 A2 slog
100 A4 d' = 3
101 ... m=1
110 ... A4 zaglavlje
111 ... slog

d=3 b=4

OD – Rasute organizacije 90 / 108


Dinamička rasuta organizacija datoteke
• Generisanje vrednosti transformacije
– kako bi se izbeglo snižavanje poželjnog stepena
slučajnosti transformacije
• vrednosti ključa k se podvrgavaju netrivijalnoj transformaciji
• redosled binarnih pozicija rezultata transformacije h(k) se
invertuje
– za transformaciju h se bira neka metoda generisanja
pseudoslučajnih brojeva
• čiji je cilj da od datih vrednosti ključa sloga proizvede niz
vrednosti sa što ravnomernijom raspodelom
• pojava više od b slogova sinonima u okviru jedne klase može
dovesti do potrebe da se menja metoda transformacije jer
• dinamičke rasute datoteke ne poseduju mehanizam za
smeštaj prekoračilaca

OD – Rasute organizacije 91 / 108


Dinamička rasuta organizacija datoteke
• Formiranje dinamičke rasute datoteke
– u režimu direktne obrade
• vrednosti ključa slogova ulazne serijske datoteke
podvrgavaju se transformaciji
• od rezultata koristi se d bitova najveće težine kao indeks u
jednodimenzionalnom nizu pokazivača ka baketima
• baket čija je adresa dobijena korišćenjem tog niza u adresaru
prenosi se u OM
• ako slog sa istom vrednošću ključa u baketu ne postoji, novi
slog se upisuje u baket
• svakom upisu prethodi neuspešno traženje

OD – Rasute organizacije 92 / 108


Dinamička rasuta organizacija datoteke
• Formiranje dinamičke rasute datoteke
– tri slučaja upisa
• prost upis
– izvršava se u baketu sa m < b slogova
– novi slog se upisuje u prvi slobodnu lokaciju u baketu
– broj zauzetih lokacija m se povećava za jedan
• upis koji dovodi do deljenja baketa i udvostručavanja dužine
niza pokazivača u adresaru
– ako važi sledeće: m = b, d' = d
• upis koji dovodi samo do deljenja baketa
– ako važi sledeće: m = b, d' < d

OD – Rasute organizacije 93 / 108


Dinamička rasuta organizacija datoteke
• Traženje sloga u dinamičkoj rasutoj datoteci
– traženje logički narednog i slučajno odabranog sloga
vrši se korišćenjem istog algoritma
– koraci algoritma za traženje slučajno odabranog sloga
• vrednost ključa k se podvrgava transformaciji h
• rezultat transformacije h(k) se pretvara u vrednost
transformacije dužine dmax bita
• korišćenjem vrednosti transformacije dužine d  dmax u
adresaru se pronalazi adresa baketa, u kojem bi traženi slog
trebalo da bude
• ako je traženi slog u baketu, traženje je uspešno, inače je
neuspešno

OD – Rasute organizacije 94 / 108


Dinamička rasuta organizacija datoteke
• Traženje sloga u dinamičkoj rasutoj datoteci
– transformacija kluča i generisanje vrednosti
• vrši se u OM, ne zahteva pristup disku
– kompletan adresar nalazi u OM
• ne zahteva pristup disku
– jedini pristup disku u cilju čitanja baketa
– potrebno je najviše R = 1 pristupa
• ako se baket već nalazi u OM važi R = 0

OD – Rasute organizacije 95 / 108


Dinamička rasuta organizacija datoteke
• Ažuriranje dinamičke rasute datoteke
– u režimu direktne obrade
• svakom upisu ili brisanju prethodi jedno traženje
– upis novog sloga
• vrši po principima upisa novih slogova pri formiranju datoteke
• u najnepovoljnijem slučaju upis zahteva
– dva pristupa datoteci, ako upis ne dovodi do prepunjenja
baketa
» jedan pristup za neuspešno traženje
» drugi za upis baketa
– tri pristupa datoteci, ako upis dovodi do prepunjenja baketa
» jedan pristup za neuspešno traženje
» drugi i treći pristup za upis polaznog i jednog novog baketa
u datoteku
• broj pristupa (najnepovoljniji slučaj): 2  Ri  3
OD – Rasute organizacije 96 / 108
Dinamička rasuta organizacija datoteke
• Ažuriranje dinamičke rasute datoteke
– brisanje postojećih slogova
• dva baketa su prijatelji ako zadovoljavaju uslove
– na njih ukazuju dva takva pokazivača u adresaru čiji se indeksi
razlikuju samo na poziciji najmanje težine
– za oba baketa važi d' = d
– važi d > 0

OD – Rasute organizacije 97 / 108


Dinamička rasuta organizacija datoteke
• Ažuriranje dinamičke rasute datoteke
– tri slučaja brisanja
• prosto brisanje
– u baketu sa m > 1 slogova za koji važi da je ukupan broj
njegovih slogova i slogova njegovog prijatelja veći od b
– nakon uspešnog traženja svi slogovi u baketu koji su smešteni
iza sloga koji se briše,
» pomeraju se za jednu poziciju ulevo
» parametar m se smanjuje za jedan
– poslednji slog u baketu se briše
» smanjivanjem parametra m za jedan
» nakon čega se mora učitati prijatelj baket da bi se proverio
ukupni broj slogova u ta dva baketa

OD – Rasute organizacije 98 / 108


Dinamička rasuta organizacija datoteke
• Ažuriranje dinamičke rasute datoteke
– tri slučaja brisanja
• spajanje susednih baketa, bez uticaja na veličinu adresara
– dešava se kada nakon brisanja sloga ukupan broj slogova u
dva baketa prijatelja nije veći od b
– baketi prijatelji se spajaju
– u spojenom baketu lokalna vrednost transformacije postaje
d' = d' - 1
– parametar m u baketu dobijenom spajanjem postaje m  b
– svi elementi niza pokazivača koji su ukazivali na bakete
prijatelje pre spajanja dobijaju pokazivač ka baketu dobijenom
spajanjem

OD – Rasute organizacije 99 / 108


Dinamička rasuta organizacija datoteke
• Ažuriranje dinamičke rasute datoteke
– tri slučaja brisanja
• spajanje susednih baketa sa smanjenjem dužine niza
pokazivača na pola
– dešava se kada na svaki baket ukazuju najmanje po dva
pokazivača u adresaru
– u adresaru se vrednost transformacije d umanjuje za jedan
» čime se dužina niza pokazivača smanjuje na pola
– svaka dva pokazivača čiji se indeksi razlikuju samo na binarnoj
poziciji najmanje težine transformišu se u jedan

OD – Rasute organizacije 100 / 108


Dinamička rasuta organizacija datoteke
• Ažuriranje dinamičke rasute datoteke
– brisanje
• pod pretpostavkom da datoteka sadrži bar dva baketa, i u
slučaju prostog i u slučaju brisanja sa spajanjem susednih
baketa, u najnepovoljnijem slučaju je potrebno izvršiti tri
pristupa datoteci
– jedan za pronalaženje sloga
– jedan za učitavanje susednog baketa
– jedan za upis bilo ažuriranog polaznog baketa ili baketa
dobijenog spajanjem
• broj pristupa: Rd = 3
• redukcija veličine adresara ne zahteva pristupe disku

OD – Rasute organizacije 101 / 108


Dinamička rasuta organizacija datoteke
• Obrada dinamičke rasute datoteke
– dinamičke (kao i statičke) rasute datoteke su
nepogodne za korišćenje u ulozi osnovne vodeće
datoteke
– mogu se koristiti kao obrađivane i vodeće u režimu
direktne obrade
– ne mogu se koristiti kao vodeće u režimu redosledne
obrade
• pošto im fizička struktura ne sadrži podatke o logičkoj
strukturi podataka

OD – Rasute organizacije 102 / 108


Dinamička rasuta organizacija datoteke
• Obrada dinamičke rasute datoteke
– mogu se obrađivati i u režimu redosledne i u režimu
direktne obrade
• iste su performanse redosledne i direktne obrade rasute
datoteke
– zbog iste efikasnosti traženja i logički narednog i slučajno
odabranog sloga
– pod pretpostavkom da se adresar može smestiti u OM
broj pristupa za pronalaženje jednog sloga: R = 1
• ukupni broj pristupa

Ruk  Nvu  Nvn


– važi i pri redoslednoj i pri direktnoj obradi
– ako je broj slogova vodeće datoteke

Nv  N vu  Nvn
OD – Rasute organizacije 103 / 108
Dinamička rasuta organizacija datoteke
• Ocena karakteristika i oblasti primene
– ne proizvodi slogove prekoračioce
– datoteka se širi i skuplja u zavisnosti od broja
aktuelnih slogova
– broj pristupa pri traženju ne zavisi od veličine
datoteke
• ako se adresar može kompletan smestiti u OM, tada je broj
pristupa i u najnepovoljnijem slučaju 1
• zato su ove datoteke veoma pogodne za direktnu obradu
– nisu pogodne za redoslednu obradu
• ali broj pristupa za pronalaženje jednog logički narednog
sloga u obrađivanoj rasutoj datoteci iznosi jedan

OD – Rasute organizacije 104 / 108


Dinamička rasuta organizacija datoteke
• Ocena karakteristika i oblasti primene
– zauzeće memorijskog prostora na disku
• očekivani broj baketa

N
B
b ln 2
– N – broj slogova
– b – faktor blokiranja

OD – Rasute organizacije 105 / 108


Dinamička rasuta organizacija datoteke
• Ocena karakteristika i oblasti primene
– rasute datoteke sa dinamičkom transformacijom
• zasnovane su na ideji deljenja baketa, koju su pozajmile od
B-stabala
– u traženju slučajno odabranog sloga su efikasnije od B-stabala
• popularnost ovih vrsta datoteka zaostaje za B-stablima
• postoje SUBP-ovi
– koji podržavaju korišćenje fizičkih struktura zasnovanih na
principima dinamičkih rasutih datoteka
– podrazumevaju korišćenje B-stabala dok se izgradnja rasutih
struktura mora posebno zahtevati

OD – Rasute organizacije 106 / 108


Sadržaj
• Rasute organizacije datoteka
• Direktna i relativna organizacija datoteke
• Statička rasuta organizacija datoteke
• Dinamička rasuta organizacija datoteke

OD – Rasute organizacije 107 / 108


Pitanja i komentari

?
OD – Rasute organizacije 108 / 108
Organizacija datoteka

Rasuta
organizacija datoteke
Struktura, formiranje, traženje,
obrada, ažuriranje, primena i
ocena

OD – Rasute organizacije
Organizacija datoteka

Indeks-sekvencijalna
organizacija datoteke
Struktura, formiranje, traženje,
obrada, ažuriranje, primena i
ocena

OD – Indeks-sekvencijalna
Sadržaj
• Indeksne datoteke
• Indeks-sekvencijalna organizacija datoteke
• Indeks-sekvencijalna metoda pristupa

OD – Indeks-sekvencijalna 2 / 49
Indeksne datoteke
• Karakteristike indeksnih datoteka
– postojanje indeksa
• pomoćna struktura podataka
• realizovana u posebnoj datoteci, kao stablo traženja
• sadrži parove
(vrednost ključa, relativna adresa sloga/bloka)
– za preslikavanje argumenta traženja u adresu sloga
– za brz pristup slučajno odabranom i logički narednom slogu
– smeštanje kompletnih slogova
• u posebnu datoteku - zonu podataka (primarnu zonu)
– može biti različito organizovana

OD – Indeks-sekvencijalna 3 / 49
Indeksne datoteke
• Vrste indeksnih datoteka
– statičke
• istorijski prve
– danas ređe u praktičnoj upotrebi
• statička alokacija memorijskog prostora
– definiše se prilikom projektovanja organizacije
• statički indeks
– formira se i, nakon formiranja, ne ažurira se
– dinamičke
• praktično nezaobilazne u realnim projektima
• dinamička alokacija memorijskog prostora
• dinamički indeks
– ažurira se paralelno sa ažuriranjem zone podataka
– održavanje poželjnih karakteristika u vremenu

OD – Indeks-sekvencijalna 4 / 49
Indeksne datoteke
• Efikasnost organizacija u upotrebi
– sekvencijalne datoteke
• ideal redosledne obrade i traženja logički narednih slogova
– rasute datoteke
• ideal direktne obrade i traženja slučajno odabranih slogovaa
– indeksne datoteke
• struktura kompromisa
• solidna podrška direktne i redosledne obrade, kao i obe vrste
traženja

OD – Indeks-sekvencijalna 5 / 49
Sadržaj
• Indeksne datoteke
• Indeks-sekvencijalna organizacija datoteke
• Indeks-sekvencijalna metoda pristupa

OD – Indeks-sekvencijalna 6 / 49
Indeks-sekvencijalna organizacija
• Statička indeks-sekvencijalna datoteka
– tri memorijske zone ili osnovne organizacije datoteke
• primarna zona ili zona podataka
– sekvencijalna organizacija
• zona indeksa
– spregnuta organizacija – n-arno stablo
• zona prekoračenja
– spregnuta organizacija – lanci prekoračilaca

OD – Indeks-sekvencijalna 7 / 49
Indeks-sekvencijalna organizacija
• Primarna zona
– slogovi uređeni saglasno rastućim vrednostima ključa
– slogovi grupisani u blokove
• poželjan što veći faktor blokiranja
– kreira se u postupku formiranja statičke indeks-
sekvencijalne datoteke
– nikada se, naknadno, ne ažurira
– ciljevi
• iskoristiti poželjne osobine sekvencijalne organizacije u
redoslednoj obradi podataka
• izbeći efekat loših performansi ažuriranja sekvencijalno
organizovane datoteke

OD – Indeks-sekvencijalna 8 / 49
Indeks-sekvencijalna organizacija
• Zona indeksa
– puno stablo traženja, spregnuta struktura
• reda n (n  2)
• visine h
– čvor stabla = blok, sadrži od 1 do n elemenata
• parovi (ke, Ae), e  {1,..., n}
• n – faktor blokiranja u zoni indeksa
– ke = k(S) - vrednost ključa sloga S
– Ae je adresa:
» bloka primarne zone u kojem je slog S, u slučaju lista, ili
» podstabla, tj. drugog čvora stabla traženja koji takođe
sadrži ke, u slučaju neterminalnog čvora
• elementi u čvoru uređeni saglasno rastućim vrednostima
ključa ke
– čvor je sekvencijalno organizovana struktura
OD – Indeks-sekvencijalna 9 / 49
Indeks-sekvencijalna organizacija
• Zona indeksa
– retko popunjeni indeks
• reprezentativne vrednosti ključa svakog bloka primarne zone
propagirane u stablo
– vrednosti ključa ke u stablu
• najmanje ili najveće vrednosti ključa iz svakog bloka
primarne zone
– elementi listova stabla
• sadrže po jednu vrednost ključa iz svakog bloka
– elementi čvorova na višim nivoima hijerarhije stabla
• sadrže po jednu vrednost ključa iz svakog direktno
podređenog čvora
• vrednosti ključa ponavljaju se u čvorovima na svim nižim
nivoima hijerarhije
OD – Indeks-sekvencijalna 10 / 49
Indeks-sekvencijalna organizacija
• Zona indeksa
– neterminalni čvor sa m (1  m  n) elemenata
• poseduje m direktno podređenih čvorova
– adresa Ae - pokazivač, relativna adresa
• Vrste zone indeksa
– zona indeksa s propagacijom najvećih vrednosti
ključa iz svakog bloka
• u slučaju poslednjeg bloka, propagira se ne aktuelna najveća
vrednost ključa, već najveća dozvoljena vrednost ključa
– zona indeksa s propagacijom najmanjih vrednosti
ključa iz svakog bloka
• u slučaju prvog bloka, propagira se ne aktuelna najmanja
vrednost ključa, već najmanja dozvoljena vrednost ključa

OD – Indeks-sekvencijalna 11 / 49
Indeks-sekvencijalna organizacija
• Primer - indeks-sekvencijalna datoteka Dinsek
– propagacija najvećih vrednosti ključa
• iz svakog bloka primarne zone, osim iz poslednjeg
• najveća dozvoljena vrednost ključa – iz poslednjeg bloka
– N = 13 slogova
– faktor blokiranja u primarnoj zoni f = 3
– red stabla traženja i faktor blokiranja u zoni indeksa
n=2

OD – Indeks-sekvencijalna 12 / 49
Indeks-sekvencijalna organizacija
• Primer - indeks-sekvencijalna datoteka Dinsek
– propagacija najvećih vrednosti ključa

ZONA INDEKSA
A6i
49 A4i 99 A5i

A4i A5i
23 A1i 49 A2i 99 A3i *

A1i A2i A3i


p p p p p
13 A1 23 A2 29 A3 49 A4 99 A5 *

OD – Indeks-sekvencijalna 13 / 49
Indeks-sekvencijalna organizacija
• Primer - indeks-sekvencijalna datoteka Dinsek
– propagacija najvećih vrednosti ključa

PRIMARNA ZONA

A 1p A 2p
03 p(S 1 ) 07 p(S 2 ) 13 p(S 3 ) 15 p(S 4 ) 19 p(S 5 ) 23 p(S 6 )

A 3p A 4p
25 p(S 7 ) 27 p(S 8 ) 29 p(S 9 ) 34 p(S 10 ) 43 p(S 11 ) 49 p(S 12 )

A 5p
64 p(S 13 ) *

OD – Indeks-sekvencijalna 14 / 49
Indeks-sekvencijalna organizacija
• Zona indeksa
– broj čvorova Ci
• na i-tom nivou hijerarhije stabla (i=1,...,h)

 B 
Ci   h i 1 
n 
– B – broj blokova u primarnoj zoni (B  1)
– visina stabla

h  log n B
– ukupni broj čvorova stabla C
h
 B 
C    h i 1 
i 1  n 
OD – Indeks-sekvencijalna 15 / 49
Indeks-sekvencijalna organizacija
• Zona indeksa
– kapacitet stabla
• koliko parova (ke,Ae) se može upisati u čvorove

K  nC
– ukupni broj elemenata E u stablu pristupa

h
 B 
E    h i 
i 1  n 

– stablo traženja obezbeđuje relativno brz pristup za


traženje slučajno odabranog sloga

OD – Indeks-sekvencijalna 16 / 49
Indeks-sekvencijalna organizacija
• Zona prekoračenja
– sadrži kompletne slogove datoteke
• kao i primarna zona
• koji se upisuju u zonu prekoračenja pri upisu novih slogova
• koji se nazivaju prekoračioci
• svaki blok primarne zone može imati svoje prekoračioce
– posmatra se list u stablu traženja sa m elemenata
(1  m  n):
(k1, A1),..., (ke-1, Ae-1), (ke, Ae), (ke+1, Ae+1),..., (km, Am)
• Ae, e1,...,m - adrese sukcesivnih blokova primarne zone
• ako stablo sadrži najveće vrednosti ključa, slog sa k(S) je u
– bloku sa adresom A1 ako je k(S) < k1
– bloku sa adresom Ae, ako je ke-1 < k(S)  ke, e2,...m

OD – Indeks-sekvencijalna 17 / 49
Indeks-sekvencijalna organizacija
• Zona prekoračenja
– kada blok u primarnoj zoni nije kompletan (m ≠ n)
• upis novog sloga dovodi samo do pomeranja slogova u bloku
– kada je blok u primarnoj zoni kompletan (m = n)
• upis svakog novog sloga dovodi do upisa jednog od slogova
koji pripadaju bloku sa adresom Ae, e1,...m, u zonu
prekoračenja
• ke(max) – trenutno maksimalna vrednost ključa u bloku sa
adresom Ae
• ako je k(S) < ke(max)
– novi slog se upisuje u blok a svi slogovi sa vrednošću ključa
većom od k(S) pomeraju se za jednu lokaciju ka kraju bloka
– slog sa vrednošću ključa ke(max) se upisuje u zonu prekoračenja
• ako je k(S) > ke(max)
– novi slog se upisuje u zonu prekoračenja
OD – Indeks-sekvencijalna 18 / 49
Indeks-sekvencijalna organizacija
• Zona prekoračenja
– sprežu se logički neposredno susedni prekoračioci iz
jednog bloka, faktor blokiranja fz = 1
• za svaki blok primarne zone, najviše jedan lanac spregnutih
prekoračilaca
• slogovi u svakom lancu prekoračilaca uređeni su u rastućem
(alternativno opadajućem) redosledu
• dodatno, lanac slobodnih blokova
• Pokazivač na početak lanca – dva načina
– direktno povezivanje sa listom stabla traženja
• pokazivač na početak lanca smešta se u odgovarajući list
– indirektno povezivanje sa listom stabla traženja
• pokazivač na početak lanca smešta se u prateći deo
odgovarajućeg bloka u primarnoj zoni
OD – Indeks-sekvencijalna 19 / 49
Indeks-sekvencijalna organizacija
• Struktura zone prekoračenja – direktni pristup
LISTOVI STABLA TRAŽENJA

A 1i p p p z A 2i
13 A 1 13 A 1 19 A 2 23 A 2 29 A 3 p 29 A 3 p 43 A 4 p 49 A 3 z

i
A3
71 A 5 p 99 A 5 p *
PRIMARNA ZONA

A 1p A 2p
03 p(S 1 ) 07 p(S 2 ) 13 p(S 3 ) 14 p(S 15 ) 15 p(S 4 ) 19 p(S 5 )

A 3p A 4p
25 p(S 7 ) 27 p(S 8 ) 29 p(S 9 ) 31 p(S 14 ) 34 p(S 10 ) 43 p(S 11 )

A 5p
64 p(S 13 ) 71 p(S 17 ) *
ZONA PREKORAČENJA
z z z z z
A1 A2 A3 A4 A5
z
E A4z 49 p(S 12 ) * 23 p(S 6 ) * 47 p(S 16 ) A1 A 5z *

OD – Indeks-sekvencijalna 20 / 49
Indeks-sekvencijalna organizacija
• Struktura zone prekoračenja - indirektni pristup
PRIMARNA ZONA

A 1p z A 2p *
A4
01 p(S 17 ) 03 p(S 1 ) 07 p(S 2 ) 15 p(S 4 ) 19 p(S 5 ) 23 p(S 6 )

A 3p z A 4p z
A1 A3
25 p(S 7 ) 27 p(S 8 ) 29 p(S 9 ) 31 p(S 10 ) 43 p(S 11 ) 47 p(S 16 )

A 5p *
64 p(S 13 ) *

ZONA PREKORAČENJA
E A5z
A1z A2z A3z A4z A5z

30 p(S 14 ) * 14 p(S 15 ) * 49 p(S 12 ) * 13 p(S 3 ) A2z *

OD – Indeks-sekvencijalna 21 / 49
Sadržaj
• Indeksne datoteke
• Indeks-sekvencijalna organizacija datoteke
• Indeks-sekvencijalna metoda pristupa

OD – Indeks-sekvencijalna 22 / 49
Indeks-sekvencijalna metoda pristupa
• Podržana
– najčešće, sistemima za upravljanje datoteka,
ugrađenim u OS mainframe računara
– ređe savremenim SUBP-ovima
• Obezbeđuje
– formiranje, traženje, ažuriranje i reorganizaciju
– sekvencijalni, direktni i dinamički način pristupa
indeks-sekvencijalnoj datoteci

OD – Indeks-sekvencijalna 23 / 49
Indeks-sekvencijalna metoda pristupa
• Formiranje IS datoteke
– program redosledno učitava slogove ulazne
sekvencijalne datoteke
– smešta blokove u primarnu zonu IS datoteke
– alternativno, već formirana sekvencijalna datoteka
proglašava se primarnom zonom IS datoteke
– formiranje zone indeksa

SER SEQ Program za IS


datoteka SORT datoteka formiranje IS datoteka
datoteke

OD – Indeks-sekvencijalna 24 / 49
Indeks-sekvencijalna metoda pristupa
• Formiranje IS datoteke
– formiranje zone indeksa
• iterativan postupak, po nivoima stabla traženja
– s dna na gore  s leva na desno
• prvo se formiraju svi listovi – čvorovi nivoa h, zatim čvorovi
nivoa h – 1, itd. do čvorova nivoa 1
• u svaki čvor na i-tom nivou hijerarhije (i=h-1, h-2,...,1)
– upisuju se najveće (alternativno najmanje) vrednosti ključa iz n
sukcesivnih čvorova na nivou hijerarhije i+1
• propagacija najvećih vrednosti
– u poslednji element krajnjeg desnog čvora upisuje se
maksimalna dozvoljena vrednost ključa
• propagacija najmanjih vrednosti
– u prvi element krajnjeg levog čvora upisuje se minimalna
dozvoljena vrednost ključa

OD – Indeks-sekvencijalna 25 / 49
Indeks-sekvencijalna metoda pristupa
• Formiranje IS datoteke
– formiranje zone prekoračenja
– alocira se prazna zona prekoračenja
– svi blokovi sprežu se u lanac slobodnih blokova
– početak lanca upisuje se u zaglavlje zone prekoračenja

OD – Indeks-sekvencijalna 26 / 49
Indeks-sekvencijalna metoda pristupa
• Traženje logički narednog sloga
– vrši se kombinovanom primenom
• metode linearnog traženja i
• metode traženja praćenjem pokazivača
– počinje u prvom bloku primarne zone
• svako naredno traženje se nastavlja od tekućeg sloga
datoteke u bloku primarne zone
– linearna metoda
• po dolasku do poslednjeg sloga bloka traženje se nastavlja u
lancu prekoračilaca, ako postoji
– metoda praćenja pokazivača
• indirektno povezivanje prekoračilaca - nastavak traženja
direktno u zoni prekoračenja
• direktno povezivanje prekoračilaca - pristup direktno
nadređenom listu i nastavak traženja u zoni prekoračenja
OD – Indeks-sekvencijalna 27 / 49
Indeks-sekvencijalna metoda pristupa
• Traženje logički narednog sloga
– direktno povezivanje prekoračilaca
• pristupa se blokovima primarne zone, prekoračiocima i
listovima stabla traženja
• broj pristupa R i pri uspešnom i pri neuspešnom traženju
jednog logički narednog sloga
B
0  R  B     Z  (i  j  k )
n
– Z – ukupni broj slogova u zoni prekoračenja
– i – redni broj tekućeg bloka datoteke u odnosu na početak
primarne zone
 
– j  i / n – redni broj tekućeg lista stabla traženja
– k – broj slogova zone prekoračenja kojima se već pristupilo

OD – Indeks-sekvencijalna 28 / 49
Indeks-sekvencijalna metoda pristupa
• Traženje logički narednog sloga
– indirektno povezivanje prekoračilaca
• broj pristupa R i pri uspešnom i pri neuspešnom traženju
jednog logički narednog sloga
0  R  B  Z  (i  k )
– traženje logički narednog sloga je efikasnije

OD – Indeks-sekvencijalna 29 / 49
Indeks-sekvencijalna metoda pristupa
• Traženje slučajno odabranog sloga
– praćenjem pokazivača u stablu pristupa
• započinje u korenu i stiže do lista u stablu traženja
• uvažava organizaciju sa propagacijom maksimalnih ili
minimalnih vrednosti ključa iz svakog bloka
– direktno povezivanje prekoračilaca
• dolaskom do odgovarajućeg elementa u listu – odluka o
nastavku traženja
– u bloku primarne zone ili
– praćenjem lanca prekoračilaca, u zoni prekoračenja
– indirektno povezivanje prekoračilaca
• prati se pokazivač odgovarajućeg elementa u listu i prelazi se
u blok podataka u primarnoj zoni
• po potrebi, nastavlja se traženje praćenjem lanca
prekoračilaca
OD – Indeks-sekvencijalna 30 / 49
Indeks-sekvencijalna metoda pristupa
• Traženje slučajno odabranog sloga
– direktno povezivanje prekoračilaca
• broj pristupa R i pri uspešnom i pri neuspešnom traženju
jednog slučajno odabranog sloga

h 1  R  h  z

– indirektno povezivanje prekoračilaca


• broj pristupa R i pri uspešnom i pri neuspešnom traženju
jednog slučajno odabranog sloga
h 1  R  h 1 z

• z – dužina lanca prekoračilaca za jedan blok primarne zone


– nešto efikasnije traženje u datoteci s direktnim
povezivanjem prekoračilaca
OD – Indeks-sekvencijalna 31 / 49
Indeks-sekvencijalna metoda pristupa
• Obrada IS datoteke
– moguća efikasna obrada i
• u režimu redosledne obrade i
• u režimu direktne obradne
– pogodne za korišćenje u ulozi vodeće datoteke u oba
režima
– redosledna obrada putem vodeće datoteke od Nv
slogova odvija se
• naizmeničnim pristupanjem blokovima primarne zone i
njihovim lancima prekoračilaca
• adresa prvog bloka primarne zone nalazi se u zaglavlju
datoteke

OD – Indeks-sekvencijalna 32 / 49
Indeks-sekvencijalna metoda pristupa
• Obrada IS datoteke
– ukupan broj pristupa pri redoslednoj obradi Ruk
• za slučaj direktnog povezivanja
Ruk  B  Z  B / n
• za slučaj indirektnog povezivanja
Ruk  B  Z
– očekivani broj pristupa pri uspešnom ili neuspešnom
traženju jednog logički narednog sloga
B  Z  B / n
• za slučaj direktnog povezivanja R
Nv

BZ
• za slučaj indirektnog povezivanja R 
Nv
OD – Indeks-sekvencijalna 33 / 49
Indeks-sekvencijalna metoda pristupa
• Obrada IS datoteke
– redosledna obrada
• nešto efikasnija kod datoteke sa indirektnim povezivanjem
prekoračilaca
– pri uobičajenim vrednostima reda stabla n razlika je
neznatna

OD – Indeks-sekvencijalna 34 / 49
Indeks-sekvencijalna metoda pristupa
• Obrada IS datoteke
– direktna obrada
• putem vodeće datoteke od Nv slogova

N v  Nvu  N vn
• očekivani ukupni broj pristupa

Ruk  Ru N vu  Rn Nvn

– Ru – očekivani broj pristupa pri uspešnom traženju

– Rn – očekivani broj pristupa pri neuspešnom traženju

OD – Indeks-sekvencijalna 35 / 49
Indeks-sekvencijalna metoda pristupa
• Obrada IS datoteke
– direktna obrada
• putem vodeće datoteke od Nv slogova
• očekivani broj prekoračilaca po bloku primarne zone
Z
z
B
• za datoteku sa direktnim povezivanjem prekoračilaca
– ista verovatnoća zaustavljanja traženja na bilo kom slogu
f z z 1
Ru  Rn  h    i
f  z f  z i 1 z
2 f  z ( z  1)
Ru  Rn  h 
2( f  z )
OD – Indeks-sekvencijalna 36 / 49
Indeks-sekvencijalna metoda pristupa
• Obrada IS datoteke
– direktna obrada
• putem vodeće datoteke od Nv slogova
• za datoteku sa indirektnim povezivanjem prekoračilaca

z z 1 z ( z  1)
Ru  h  1   i  h 1
f  z i 1 z 2( f  z )
z ( z  3)
Rn  h  1 
2( f  z )
– direktna obrada
• nešto efikasnija kod datoteke sa direktnim povezivanjem
prekoračilaca

OD – Indeks-sekvencijalna 37 / 49
Indeks-sekvencijalna metoda pristupa
• Ažuriranje IS datoteke
– vrši se u režimu direktne obrade
– upis novog sloga
• nakon neuspešnog traženja
• ako se neuspešno traženje zaustavilo u bloku primarne zone
– vrši se pomeranje slogova sa većom vrednošću ključa od
vrednosti ključa novog sloga za jednu lokaciju ka kraju bloka
– novi slog se upisuje u lokaciju koju je zauzimao slog sa prvom
većom vrednošću ključa, a slog sa do tada najvećom
vrednošću ključa u bloku upisuje se u zonu prekoračenja
– prekoračilac se upisuje u lokaciju čiju adresu sadrži indeks
slobodnih lokacija i povezuje se sa ostalim prekoračiocima iz
bloka

OD – Indeks-sekvencijalna 38 / 49
Indeks-sekvencijalna metoda pristupa
• Ažuriranje IS datoteke
– upis novog sloga
• ako se neuspešno traženje zaustavilo na nekom od
prekoračilaca
– novi slog se upisuje u prvu slobodnu lokaciju
– uvezuje se sa ostalim prekoračiocima

OD – Indeks-sekvencijalna 39 / 49
Indeks-sekvencijalna metoda pristupa
• Ažuriranje IS datoteka
– brisanje sloga
• logičko brisanje - češće

Rd  Ru  1
– lokacija logički izbrisanog sloga može se upotrebiti za upis
novog sloga u specijalnom slučaju
» kada se vrednost ključa novog sloga nalazi tačno u
odgovarajućim granicama
• fizičko brisanje
– zahteva pomeranje slogova sa ažuriranjem lanca prekoračilaca
– zahteva veći broj pristupa datoteci

OD – Indeks-sekvencijalna 40 / 49
Indeks-sekvencijalna metoda pristupa
• Ažuriranje IS datoteke
– modifikacija sadržaja postojećeg sloga
• nakon uspešnog traženja
• potreban samo jedan pristup da bi se modifikovani slog
upisao u datoteku

OD – Indeks-sekvencijalna 41 / 49
Indeks-sekvencijalna metoda pristupa
• Reorganizacija IS datoteke
– značajna degradacija performansi traženja slogova i
obrade datoteke u vremenu
• usled upisa slogova u zonu prekoračenja i
• logičkog brisanja slogova
– periodična reorganizacija datoteke
• uklanjanje negativnih posledica ažuriranja
– postupak
• ponovno formiranje primarne zone
– redoslednom obradom – traženjima logički narednih slogova u
postojećoj primarnoj zoni i zoni prekoračenja
• generisanje novog stabla traženja
• formiranje nove, prazne zone prekoračenja

OD – Indeks-sekvencijalna 42 / 49
Indeks-sekvencijalna metoda pristupa
• Reorganizacija IS datoteke
– interval vremena između dve reorganizacije može biti
• fiksan
– npr. jednom mesečno
• dinamički određen
– na osnovu stepena popunjenosti zone prekoračenja
– npr. kada se zona prekoračenja popuni do 80% svog obima, a
dimenzionisana je da primi npr. 10% slogova prim. zone
– distribuirani slobodni prostor
• ublažava problem degradacije performansi obrade zbog
upisa novih slogova
– blokovi podataka se pri formiranju datoteke popunjavaju samo
delimično (npr. 60% ili 80%)
– time se obezbeđuje prostor za upis novih slogova
• produžava se interval vremena između dve reorganizacije
OD – Indeks-sekvencijalna 43 / 49
Indeks-sekvencijalna metoda pristupa
• Reorganizacija IS datoteke
– IS datoteka može se ažurirati i kao sekvencijalna u
režimu redosledne obrade
• po završetku ažuriranja, generiše se novo stablo traženja
• ovakav postupak predstavlja istovremeno i reorganizaciju
datoteke

OD – Indeks-sekvencijalna 44 / 49
Indeks-sekvencijalna metoda pristupa
• Oblasti primene i ocena karakteristika
– prednosti
• kada iste podatke treba obrađivati i u režimu redosledne i u
režimu direktne obrade
• intenzivno se koristi u paketnoj obradi
• može se koristiti i u interaktivnoj obradi
– performanse redosledne obrade
• u početku ne zaostaju za performansama redosledne obrade
sekvencijalne datoteke
– performanse direktne obrade
• ne zaostaju značajnije za performansama direktne obrade
rasute datoteke

OD – Indeks-sekvencijalna 45 / 49
Indeks-sekvencijalna metoda pristupa
• Oblasti primene i ocena karakteristika
– glavni nedostatak
• upis slogova u zonu prekoračenja dovodi do degradacije
performansi obrade
• performanse redosledne obrade mogu se držati pod
kontrolom
– pogodnim dimenzionisanjem zone prekoračenja
• performanse traženja slučajno odabranog sloga i direktne
obrade značajnije se degradiraju
• jedino rešenje: periodično reorganizovanje datoteke
– nepogodno, ako se mora često sprovoditi u slučaju datoteka
velikog obima

OD – Indeks-sekvencijalna 46 / 49
Indeks-sekvencijalna metoda pristupa
• Oblasti primene i ocena karakteristika
– FSP zasnovane na statičkoj IS organizaciji
• intenzivno korišćene u mrežnim sistemima baza podataka
• relacioni i objektno-relacioni SUBP ih retko podržavaju
– ponekad se ističe više njihov istorijski značaj
• nazivaju se i klasičnim indeks-sekvencijalnim datotekama
• preteča modernih indeksnih datoteka s B-stablima
– osnovna ideja za primenu IS datoteka
• kada se podaci ne ažuriraju intenzivno i u većem obimu
• kada je potrebno obezbediti vrlo efikasnu redoslednu obradu
i, u isto vreme, solidne performanse direktne obrade
• brz pristup slučajno odabranom slogu u sekvencijalnoj
strukturi vrši se korišćenjem stabla traženja kao funkcije koja
preslikava vrednost ključa u adresu
OD – Indeks-sekvencijalna 47 / 49
Sadržaj
• Indeksne datoteke
• Indeks-sekvencijalna organizacija datoteke
• Indeks-sekvencijalna metoda pristupa

OD – Indeks-sekvencijalna 48 / 49
Pitanja i komentari

?
OD – Indeks-sekvencijalna 49 / 49
Organizacija datoteka

Indeks-sekvencijalna
organizacija datoteke
Struktura, formiranje, traženje,
obrada, ažuriranje, primena i
ocena

OD – Indeks-sekvencijalna
Organizacija datoteka

Indeksne datoteke
s B-stablima
B-stablo, formiranje, traženje,
ažuriranje i obrada indeksne
datoteke sa B-stablom

OD – Datoteke s B-stablima
Sadržaj
• Osnovno B-stablo
• Formiranje datoteke s B-stablom
• Traženje u datoteci s B-stablom
• Obrada datoteke s B-stablom
• Ažuriranje datoteke s B-stablom
• Ocena karakteristika datoteka s B-stablom
• B*-stablo, B#-stablo, B+-stablo
• Indeks-sekvencijalna datoteka s B-stablom

OD – Datoteke s B-stablima 2 / 75
Osnovno B-stablo
• B-stablo
– puno stablo i stablo traženja
– gusto popunjeni, dinamički indeks
– visine h
• svi listovi su na jednakoj udaljenosti od korena
• put od korena do bilo kog lista je iste dužine
– ranga r (r >= 2)
• uvodi ograničenje na dozvoljeni broj elemenata u svakom
čvoru
– reda n = 2r + 1

OD – Datoteke s B-stablima 3 / 75
Osnovno B-stablo
• B-stablo
– čvor = blok zone indeksa
– čvor sadrži niz elemenata
– element = propagirana vrednost ključa iz primarne
zone
– svaki čvor sadrži maksimalno 2r elemenata
– svaki čvor, izuzev korena, sadrži minimalno r
elemenata
– koren sadrži minimalno 1 element
– svaki čvor sa m elemenata, koji ne predstavlja list,
poseduje m + 1 direktno podređenih čvorova

OD – Datoteke s B-stablima 4 / 75
Osnovno B-stablo
• Format čvora B-stabla
– niz elemenata
– svaki element: trojka (ke, Ae, Pe), e  {1,..., m}
• ke vrednost ključa sloga Si (i  {1, 2,..., N})
• Ae pridruženi podatak
• Pe pokazivač ka podstablu s većim vrednostima ključa od ke

Zaglavlje Neiskorišćeni
bloka P0 k1 A1 P1 k2 A2 P2 ... km Am Pm prostor

– Uslovi stabla traženja


• (i  {1,..., m - 1})(ki < ki+1)
• (k  K(P0))(k < k1)
• (i  {1,..., m - 1})(k  K(Pi))(ki < k < ki + 1)
• (k  K(Pm))(km < k)
OD – Datoteke s B-stablima 5 / 75
Osnovno B-stablo
• Primer:
– B-stablo sa N = 18 slogova, ranga r = 2, visine h = 3

34

15 25 43 64

03 07 13 19 23 27 29 37 40 46 49 71 88

OD – Datoteke s B-stablima 6 / 75
Osnovno B-stablo
• Popunjenost B-stabla
– za isti broj slogova N i rang r, B-stablo može
posedovati različite visine i različite brojeve čvorova
• Ekstremni slučajevi popunjenosti B-stabla
– poluprazno (polupuno) B-stablo
• svi čvorovi, osim korena, sadrže po r elemenata
• koren sadrži samo 1 element
• stablo ne može biti manje popunjeno od polupraznog
– kompletno (popunjeno) B-stablo
• svi čvorovi sadrže po 2r elemenata
• stablo ne može biti više popunjeno od kompletnog

OD – Datoteke s B-stablima 7 / 75
Osnovno B-stablo
• Broj čvorova i elemenata
– na različitim nivoima hijerarhije B-stabla ranga r

Kompletno B-stablo Poluprazno B-stablo


Nivo Visina Broj Broj Broj Broj
čvorova elemenata čvorova elemenata
0 1 1 2r 1 1
1 2 (2r + 1)1 2r(2r + 1)1 2 2r
2 3 (2r + 1)2 2r(2r + 1)2 2(r + 1)1 2r(r + 1)1
... ... … … … …
i-1 i (2r + 1)i-1 2r(2r + 1)i-1 2(r + 1)i–2 2r(r + 1)i–2
... ... … … … …
h-1 h (2r + 1)h–1 2r(2r + 1)h–1 2(r + 1)h–2 2r(r + 1)h–2

OD – Datoteke s B-stablima 8 / 75
Osnovno B-stablo
• Broj čvorova stabla
– kompletno stablo
h h 1
( 2 r  1) h
1
Ckp   (2r  1)   (2r  1) 
i 1 i

i 1 i 0 2r

– poluprazno stablo
h 1
h 1 h2
( r  1) 1
C pp  1  2 (r  1)  1  2 (r  1)  1  2
i 1 i

i 1 i 0 r

OD – Datoteke s B-stablima 9 / 75
Osnovno B-stablo
• Broj čvorova i visina stabla
– kompletno stablo

(2r  1) h  1
Ckp  , N  2rCkp  N  (2r  1)  1
h

2r
hkp  log 2 r 1 ( N  1), hmin  log 2 r 1 ( N  1)

N N
Ckp  , Cmin   
2r  2r 
• visina ne može biti manja od hmin
• ukupan broj čvorova ne može biti manji od Cmin

OD – Datoteke s B-stablima 10 / 75
Osnovno B-stablo
• Broj čvorova i visina stabla
– poluprazno stablo
(r  1) h 1  1
C pp  1 2 , N  1  r (C pp  1)  N  2(r  1) h1  1
r
N 1  N  1
hpp  1  log r 1 , hmax  1  log r 1
2  2 
N 1  N  1
C pp  1  , Cmax  1   
r  r 
• visina ne može biti veća od hmax
• ukupan broj čvorova ne može biti veći od Cmax

OD – Datoteke s B-stablima 11 / 75
Osnovno B-stablo
• Broj čvorova i visina stabla
– hmin  h  hmax, Cmin  C  Cmax

N r hmin hmax Cmin Cmax


103 50 2 2 10 20
104 50 2 3 102 2102
105 50 3 3 103 2103
106 50 3 4 104 2104

 N  1
hmin  log 2 r 1 ( N  1) hmax  1  log r 1
 2 
N  N  1
Cmin    Cmax  1   
 2r   r 
OD – Datoteke s B-stablima 12 / 75
Sadržaj
• Osnovno B-stablo
• Formiranje datoteke s B-stablom
• Traženje u datoteci s B-stablom
• Obrada datoteke s B-stablom
• Ažuriranje datoteke s B-stablom
• Ocena karakteristika datoteka s B-stablom
• B*-stablo, B#-stablo, B+-stablo
• Indeks-sekvencijalna datoteka s B-stablom

OD – Datoteke s B-stablima 13 / 75
Formiranje datoteke s B-stablom
• Indeksna metoda pristupa
– operativni sistem
• OS mainframe računara poseduju metode pristupa za
formiranje, korišćenje i ažuriranje indeksnih datoteka sa B-
stablima
– programski jezici
• korišćenje specijalizovanih biblioteka za indeksnu metodu
pristupa, ili
• korisnici sami pišu svoje metode
– SUBP
• poseduju sopstvene indeksne metode pristupa
• koriste ih u izgradnji fizičkih struktura baza podataka

OD – Datoteke s B-stablima 14 / 75
Formiranje datoteke s B-stablom
• Struktura datoteke s B-stablom
– zona indeksa: spregnuta struktura, B-stablo
• dinamički, gusto popunjeni indeks
– svaka vrednost ključa primarne zone propagira se u zonu
indeksa
• dinamičko ažuriranje – prati ažuriranje primarne zone
• omogućava traženja u primarnoj zoni
– primarna zona: serijska datoteka
• iskorišćenje dobrih osobina serijske datoteke pri ažuriranju
– pod pretpostavkom da se traženja ne vrše direktno u serijskoj
datoteci

OD – Datoteke s B-stablima 15 / 75
Formiranje datoteke s B-stablom
• Formiranje datoteke s B-stablom
– formiranje primarne zone
• preuzimanjem postojeće (serijske) datoteke ili
• sukcesivnim učitavanjem slogova ulazne (serijske) datoteke
– formiranje zone indeksa
• upisivanje zaglavlja stabla traženja u zonu indeksa
– inicijalno, nedefinisane vrednosti pokazivača na koren stabla i
krajnji levi čvor stabla
– inicijalizuje se pokazivač na prvi blok u lancu praznih blokova
• formiranje lanca praznih blokova (čvorova)
• sukcesivno čitanje slogova primarne zone i formiranje B-
stabla, dinamičkim upisivanjem novih elemenata
• upisivanje prvog elementa  formiranje korena stabla

OD – Datoteke s B-stablima 16 / 75
Formiranje datoteke s B-stablom
• Upis novog elementa u B-stablo
– prethodi mu neuspešno traženje elementa (tso)
• započinje u korenu
• uvek završava u listu
– upoređivanjem argumenta traženja s vrednostima ključa u
svakom čvoru i
– praćenjem pokazivača na čvorove na jednom pristupnom putu
od korena do lista
– započinje na mestu zaustavljanja neuspešnog
traženja u listu
– list može biti potpuno ili delimično popunjen

OD – Datoteke s B-stablima 17 / 75
Formiranje datoteke s B-stablom
• Upis novog elementa u B-stablo
– aktuelni broj elemenata u listu me – dve mogućnosti
– (A) delimično popunjen list: me < 2r
• novi element upisuje se na poziciju zaustavljanja traženja
• elementi s većom vrednošću ključa u čvoru pomeraju se za
jednu poziciju udesno
– (B) potpuno popunjen list: me = 2r
• podela lista na dva lista – alocira se novi, desni list
• formira se u OM uređeni niz od 2r + 1 elemenata
– prva polovina niza ostaje u levom (postojećem) listu:
– srednji element upisuje se u nadređeni čvor - može izazvati
deljenje nadređenog čvora
– druga polovina niza upisuje se u desni (novi) list
• ukoliko se deli koren, dolazi do formiranja novog korena i
povećavanja visine stabla za 1
OD – Datoteke s B-stablima 18 / 75
Formiranje datoteke s B-stablom
• Upis novog elementa u B-stablo

P0 k A P ... k
1 1 1 r+1 Ar+1 Pr+1 ... k2r A2r P2r k2r+1 A2r+1 P2r+1

... ... ... ... kr+1 Ar+1 ...

P0 k A P ... k A Pr Pr+1 k
1 1 1 r r r+2 Ar+2 Pr+2 ... k2r+1 A2r+1 P2r+1

OD – Datoteke s B-stablima 19 / 75
Formiranje datoteke s B-stablom
• Primer
– ulazna serijska datoteka – primarna zona

– N = 18 slogova
– rang stabla: r = 2
– visina stabla: h = 3
– kapacitet svakog čvora: 2r = 4 elementa

OD – Datoteke s B-stablima 20 / 75
Formiranje datoteke s B-stablom

OD – Datoteke s B-stablima 21 / 75
Formiranje datoteke s B-stablom

OD – Datoteke s B-stablima 22 / 75
Sadržaj
• Osnovno B-stablo
• Formiranje datoteke s B-stablom
• Traženje u datoteci s B-stablom
• Obrada datoteke s B-stablom
• Ažuriranje datoteke s B-stablom
• Ocena karakteristika datoteka s B-stablom
• B*-stablo, B#-stablo, B+-stablo
• Indeks-sekvencijalna datoteka s B-stablom

OD – Datoteke s B-stablima 23 / 75
Traženje u datoteci s B-stablom
• Traženje logički narednog sloga
– modifikovani simetrični postupak prolaska kroz B-
stablo
• rnaizmenično pristupanje listovima i njihovim nadređenim
elementima
– vrši se od tekućeg elementa stabla
• inicijalno, tekući element stabla je element sa najmanjom
vrednošću ključa u krajnjem levom listu
– upoređuju se argument traženja a i vrednosti ključa
elemenata stabla ke
• traženje se uspešno završava kada je a = ke
• neuspešno traženje završava se nailaskom na element sa
ke > a ili nailaskom na kraj krajnjeg desnog lista

OD – Datoteke s B-stablima 24 / 75
Traženje u datoteci s B-stablom
• Traženje slučajno odabranog sloga
– traženje započinje u korenu stabla
• eventualno se nastavlja u podređenim čvorovima
• završava se u čvoru u kojem je element pronađen ili u listu
• na svakom nivou hijerarhije stabla pristupa se najviše jednom
čvoru
– upoređuju se argument traženja a i vrednosti ključa
elemenata stabla ke
– ako se pri traženju nađe element, za koji je a = ke
• traženom slogu pristupa se na osnovu adrese Ae
– ako se, pri traženju u čvoru, dođe do elementa sa
ke > a
• traženje se nastavlja u odgovarajućem podstablu

OD – Datoteke s B-stablima 25 / 75
Traženje u datoteci s B-stablom
• Traženje slučajno odabranog sloga
– uspešno, završava u bilo kojem čvoru
• broj pristupa, samo jedan bafer u OM za stablo pristupa
Ru = h + 1
• broj pristupa, h bafera u OM za stablo pristupa
0  Ru  h + 1
– neuspešno, završava uvek u listu
• broj pristupa, samo jedan bafer u OM za stablo pristupa
Rn = h
• broj pristupa, h bafera u OM za stablo pristupa
0  Rn  h
– celo stablo u OM: Ru = Rn = 0

OD – Datoteke s B-stablima 26 / 75
Sadržaj
• Osnovno B-stablo
• Formiranje datoteke s B-stablom
• Traženje u datoteci s B-stablom
• Obrada datoteke s B-stablom
• Ažuriranje datoteke s B-stablom
• Ocena karakteristika datoteka s B-stablom
• B*-stablo, B#-stablo, B+-stablo
• Indeks-sekvencijalna datoteka s B-stablom

OD – Datoteke s B-stablima 27 / 75
Obrada datoteke s B-stablom
• Može se koristiti
– i kao vodeća i kao obrađivana
– i u režimu redosledne i u režimu direktne obrade
– u svim slučajevima, pokazuje solidne performanse

OD – Datoteke s B-stablima 28 / 75
Obrada datoteke s B-stablom
• Ukupan broj pristupa datoteci Rukv – parametri
– da li je stablo kompletno ili poluprazno
• broj čvorova kompletnog stabla je najmanji mogući, a
polupraznog najveći mogući
– da li je rezervisano h bafera za ceo pristupni put ili
samo 1 bafer za čvorove B-stabla
• u slučaju h bafera, ceo pristupni put staje u OM pa se
svakom čvoru stabla pristupa tačno jedanput
• u slučaju jednog bafera, svakom neterminalnom čvoru mora
se pristupati barem onoliko puta koliko elemenata poseduje
– da li su sukcesivno traženi slogovi u primarnoj zoni
uvek smešteni u fizički susedne lokacije, ili uvek u
lokacije različitih blokova

OD – Datoteke s B-stablima 29 / 75
Obrada datoteke s B-stablom
• Ukupan broj pristupa datoteci Rukv
– uloga vodeće datoteke

N 
C     Rukv  Ch  E1h 1  N
f 
N 
Cmin     Rukv  Chmax  E1max
 h 1  N
f

 N  N   N  1  N  r 
 2r    f   Ruk   r  1    r  1   N
v

 

OD – Datoteke s B-stablima 30 / 75
Obrada datoteke s B-stablom
• Redosledna obrada
– putem vodeće datoteke sa Nv = Nvu + Nvn slogova
• Nvu slogova koji iniciraju uspešno traženje
• Nvn slogova koji iniciraju neuspešno traženje
– ukupan broj pristupa datoteci kao obrađivanoj, Rukr

 
N  N u
  N  1  N  r 

 2r   f 
v
 R r
uk  
 r 1   r 1   N u
v
       
– očekivani broj pristupa pri uspešnom ili neuspešnom
traženju jednog logički narednog sloga
Rukr
R
Nv
OD – Datoteke s B-stablima 31 / 75
Obrada datoteke s B-stablom
• Direktna obrada
– putem vodeće datoteke sa Nv = Nvu + Nvn slogova
• Nvu slogova koji iniciraju uspešno traženje
• Nvn slogova koji iniciraju neuspešno traženje
– relativno brz pristup slučajno odabranom slogu
– ukupan broj pristupa Rukd

R  Ru N  Rn N
d
uk
u
v
n
v

OD – Datoteke s B-stablima 32 / 75
Sadržaj
• Osnovno B-stablo
• Formiranje datoteke s B-stablom
• Traženje u datoteci s B-stablom
• Obrada datoteke s B-stablom
• Ažuriranje datoteke s B-stablom
• Ocena karakteristika datoteka s B-stablom
• B*-stablo, B#-stablo, B+-stablo
• Indeks-sekvencijalna datoteka s B-stablom

OD – Datoteke s B-stablima 33 / 75
Ažuriranje datoteke s B-stablom
• Upis novog i brisanje postojećeg sloga
– vrši se u režimu direktne obrade
– izvodi ga metoda pristupa na zahtev aplikativnog
programa
– vrši se upis, odnosno logičko brisanje elementa iz
primarne zone i odgovarajućeg elementa iz stabla
pristupa
• Upis novog elementa u B-stablo
– na isti način, kao u slučaju formiranja B-stabla

OD – Datoteke s B-stablima 34 / 75
Ažuriranje datoteke s B-stablom
• Brisanje elementa iz B-stabla
– prethodi mu uspešno traženje
– logičko brisanje sloga u primarnoj zoni
– fizičko brisanje elementa iz B-stabla
– element se sme fizički izbrisati jedino ako se nalazi u
listu

OD – Datoteke s B-stablima 35 / 75
Ažuriranje datoteke s B-stablom
• Brisanje elementa iz B-stabla
– (A) element za brisanje nalazi se u listu
• (A1) list sadrži me > r elemenata ili je koren stabla
– fizičko oslobađanje lokacije izbrisanog elementa
– po potrebi, pomeranje ostalih elemenata u listu za jednu
poziciju ulevo
– nakon brisanja, u listu ostaje me - 1 ≥ r elemenata
• (A2) list sadrži me = r elemenata i nije koren stabla
– fizičko oslobađanje lokacije izbrisanog elementa nije dozvoljeno
» svaki čvor, osim korena, mora imati minimalno r elemenata
– (A21) postoji barem jedan susedni čvor sa mf > r elemenata
» primena tehnike pozajmljivanja elemenata iz susednog
čvora
– (A22) svi susedni čvorovi imaju mf = r elemenata
» primena tehnike spajanja dva čvora u jedan

OD – Datoteke s B-stablima 36 / 75
Ažuriranje datoteke s B-stablom
• Brisanje elementa iz B-stabla
– susedni čvorovi
• čvorovi Ce i Cf su susedni, ako imaju zajednički direktno
nadređeni čvor C i ako važi
(!k  K(C))(km < k < k1)

• K(C) - skup vrednosti ključa u čvoru C


• km - najveća vrednost ključa u čvoru Ce
• k1 - najmanja vrednost ključa u čvoru Cf

OD – Datoteke s B-stablima 37 / 75
Ažuriranje datoteke s B-stablom
• Brisanje elementa iz B-stabla
– tehnika pozajmljivanja elemenata od suseda
• formira se u OM uređeni niz od mf + r – 1 + 1 elemenata
– svi elementi susednog čvora, jedan nadređeni i r - 1 element
čvora iz kojeg se briše element
– (mf + r) / 2 elemenata smešta se u levi susedni čvor
– (mf + r) / 2 + 1-vi element smešta se u nadređeni čvor
– preostali elementi smeštaju se u desni susedni čvor
– tehnika spajanja dva susedna čvora u jedan
• formira se u OM uređeni niz od r + r – 1 + 1 elemenata
– r elemenata susednog čvora, jedan nadređeni i r - 1 element
čvora iz kojeg se briše element
– svih 2r elemenata smešta se u levi susedni čvor
– desni susedni čvor postaje prazan – dealocira se
– fizičko brisanje elementa iz nadređenog čvora

OD – Datoteke s B-stablima 38 / 75
Ažuriranje datoteke s B-stablom
• Brisanje elementa iz B-stabla
– tehnika spajanja dva susedna čvora u jedan
• fizičko brisanje elementa iz nadređenog čvora
• može izazvati novo pozajmljivanje ili spajanje čvorova, na
višem nivou u stablu
• u ekstremnom slučaju, može doći do spajanja jedina dva
direktno podređena čvora korenu
– izaziva dealociranje korena i smanjenje visine stabla za jedan

OD – Datoteke s B-stablima 39 / 75
Ažuriranje datoteke s B-stablom
• Brisanje elementa iz B-stabla
– (B) element za brisanje ne nalazi se u listu
• zamena elementom koji sadrži prvu veću vrednost ključa
• predstavlja krajnji levi element u krajnjem levom čvoru
desnog podstabla u odnosu na element koji se briše
• nakon zamene (upisivanja u lokaciju izbrisanog elementa),
element s prvom većom vrednošću ključa fizički se briše iz
lista
• povratak na slučaj (A) – primena za fizičko brisanje elementa
s prvom većom vrednošću ključa

OD – Datoteke s B-stablima 40 / 75
Ažuriranje datoteke s B-stablom
• Tehnika spajanja

OD – Datoteke s B-stablima 41 / 75
Ažuriranje datoteke s B-stablom
• Tehnika spajanja

OD – Datoteke s B-stablima 42 / 75
Ažuriranje datoteke s B-stablom
• Tehnika spajanja

OD – Datoteke s B-stablima 43 / 75
Ažuriranje datoteke s B-stablom
• Tehnika pozajmljivanja

OD – Datoteke s B-stablima 44 / 75
Ažuriranje datoteke s B-stablom
• Tehnika pozajmljivanja

OD – Datoteke s B-stablima 45 / 75
Ažuriranje datoteke s B-stablom
• Tehnika pozajmljivanja

OD – Datoteke s B-stablima 46 / 75
Sadržaj
• Osnovno B-stablo
• Formiranje datoteke s B-stablom
• Traženje u datoteci s B-stablom
• Obrada datoteke s B-stablom
• Ažuriranje datoteke s B-stablom
• Ocena karakteristika datoteka s B-stablom
• B*-stablo, B#-stablo, B+-stablo
• Indeks-sekvencijalna datoteka s B-stablom

OD – Datoteke s B-stablima 47 / 75
Ocena karakteristika datoteka s B-stabl.
• Prednosti
– pokazuju uravnotežene performanse pri direktnoj i
redoslednoj obradi
– ne kvare se performanse obrade u vremenu
• kao posledica naknadnih ažuriranja
– u odnosu na indeks-sekvencijalne datoteke
• ne zahtevaju postojanje zone prekoračenja
– struktura primarne zone odgovara strukturi serijske datoteke
• maksimalni broj pristupa pri traženju slučajno odabranog
sloga moguće je unapred proceniti
• selektivnost indeksa po svakom pristupnom putu je ista

OD – Datoteke s B-stablima 48 / 75
Ocena karakteristika datoteka s B-stabl.
• Nedostaci
– nije najpogodnije rešenje za redoslednu obradu
• broj pristupa datoteci zavisi od broja slogova vodeće
datoteke
• primena modifikovanog algoritma simetričnog postupka
prolaska kroz stablo pri traženju adrese lokacije logički
narednog sloga
– potreba višestrukog pristupanja neterminalnim čvorovima
– deljenje čvorova favorizuje izgradnju polupraznog
B-stabla
• kada se formiranje datoteke vrši na osnovu sekvencijalne
ulazne datoteke
• svi listovi, osim krajnjeg desnog, uvek poluprazni
• česta situacija u praksi, kada se vrednosti ključa generišu
automatski, inkrementiranjem
OD – Datoteke s B-stablima 49 / 75
Sadržaj
• Osnovno B-stablo
• Formiranje datoteke s B-stablom
• Traženje u datoteci s B-stablom
• Obrada datoteke s B-stablom
• Ažuriranje datoteke s B-stablom
• Ocena karakteristika datoteka s B-stablom
• B*-stablo, B#-stablo, B+-stablo
• Indeks-sekvencijalna datoteka s B-stablom

OD – Datoteke s B-stablima 50 / 75
B*-stablo, B#-stablo, B+-stablo
• B*-stablo
– strukturalno isto, kao osnovno B-stablo
– tehnika prelivanja
• ublažavanje problema favorizacije polupraznog stabla
• primenjuje se pri upisu novog elementa u stablo
– kada je čvor Ce u koji se upisuje element kompletan, a
– bar jedan od njegovih susednih čvorova Cf sadrži mf < 2r
elemenata
• formira se u OM uređeni niz od mf + 2r + 1 + 1 elemenata
– svi elementi susednog čvora, jedan nadređeni i 2r + 1
elemenata čvora u koji se upisuje element
– (mf + 2r + 2) / 2 elemenata smešta se u levi susedni čvor
– (mf + 2r + 2) / 2 + 1-vi element smešta se u nadređeni čvor
– preostali elementi smeštaju se u desni susedni čvor
– favorizacija 75% popunjenosti stabla
OD – Datoteke s B-stablima 51 / 75
B*-stablo, B#-stablo, B+-stablo
• B#-stablo
– varijanta B*-stabla
– garantuje se minimalna popunjenost 66%
• za sve čvorove na svim nivoima hijerarhije, osim na prva dva
– tehnika distribuiranog deljenja
• primenjuje se pri upisu novog elementa u stablo
– kada je čvor Ce u koji se upisuje element kompletan i kompletni
su svi njegovi susedi
• elementi susednih čvorova Ce i Cf distribuiraju se u tri čvora

OD – Datoteke s B-stablima 52 / 75
B*-stablo, B#-stablo, B+-stablo
• B#-stablo
– tehnika distribuiranog deljenja
• elementi susednih čvorova Ce i Cf distribuiraju se u tri čvora
• formira se u OM uređeni niz od 2r + 2r + 1 + 1 elemenata
– 2r elemenata susednog čvora, jedan nadređeni i 2r + 1
elemenata čvora u koji se upisuje element
– (4r + 2) / 3 elemenata smešta se u levi susedni čvor
– (4r + 2) / 3 + 1-vi element smešta se u nadređeni čvor
– (4r + 1) / 3 elemenata smešta se u srednji susedni čvor
– (4r + 2) / 3 + (4r + 1) / 3 + 2-gi element smešta se u
nadređeni čvor
– preostalih 4r / 3 elemenata smešta se u novoalocirani, desni
susedni čvor

OD – Datoteke s B-stablima 53 / 75
B*-stablo, B#-stablo, B+-stablo
• B+-stablo
– modifikacija osnovnog B-stabla
• prevazilaženje glavnog nedostatka osnovnog B-stabla, ili
neke od njegovih varijanti
• pri traženju logički narednog sloga potrebno je pristupati svim
čvorovima stabla
– u slučaju B+-stabla, za traženje logički narednog
sloga dovoljno je pristupati samo listovima

OD – Datoteke s B-stablima 54 / 75
B*-stablo, B#-stablo, B+-stablo
• B+-stablo
– strukturalno drugačije od osnovnog B-stabla
• vrednosti ključa svih slogova nalaze se uređene u listovima
• svi listovi su dvostruko spregnuti
– sadrže informaciju o svim logičkim vezama između slogova
• čvorovi na višim nivoima stabla traženja sadrže najmanje
vrednosti ključa iz svakog lista osim iz krajnjeg levog
• vrednosti ključa čvorova koji ne predstavljaju listove, u
nadređenim čvorovima ne ponavljaju se
• logika formiranja neterminalnih čvorova odgovara strukturi
osnovnog B-stabla

OD – Datoteke s B-stablima 55 / 75
B*-stablo, B#-stablo, B+-stablo
• Format čvora B+-stabla
– niz elemenata
– svaki element: dvojka (ke, Pe), e  {1,..., m}
• ke - vrednost ključa sloga Si (i  {1, 2,..., N})
• Pe - pokazivač ka podstablu, za neterminalni čvor ili bloku u
primarnoj zoni, u slučaju lista

Zaglavlje Neiskorišćeni
bloka P0 k1 P1 k2 P2 ... km Pm prostor

– Uslovi stabla traženja


• (i  {1,..., m - 1})(ki < ki+1)
• (k  K(P0))(k < k1)
• (i  {1,..., m - 1})(k  K(Pi))(ki  k < ki + 1)
• (k  K(Pm))(km  k)
OD – Datoteke s B-stablima 56 / 75
B*-stablo, B#-stablo, B+-stablo
• Formiranje B+-stabla
– analogan postupak formiranju osnovnog B-stabla, ili
neke njegove varijante (B* ili B#-stablo)
• mogu se koristiti postupci prelivanja, običnog ili distribuiranog
deljenja, na uobičajen način
– tehnika deljenja lista - specifičnosti
• formira se u OM uređeni niz od 2r + 1 elemenata
– svi elementi datog čvora i jedan novododati
– (2r + 1) / 2 = r elemenata smešta se u levi susedni čvor
– r + 1-vi element smešta se u nadređeni čvor
– r + 1-vi element i svih preostalih r elemenata smešta se u
novoalocirani, desni susedni čvor
» ponavljanje istog elementa i u nadređenom čvoru i u
desnom susedu
• neterminalni čvorovi dele se na isti način kao kod B-stabla
OD – Datoteke s B-stablima 57 / 75
B*-stablo, B#-stablo, B+-stablo
• Formiranje B+-stabla
– tehnika prelivanja u listovima - specifičnosti
• formira se u OM uređeni niz od mf + 2r + 1 + 1 elemenata
– svi elementi susednog čvora, jedan nadređeni i 2r + 1
elemenata čvora u koji se upisuje element
– (mf + 2r + 2) / 2 elemenata smešta se u levi susedni čvor
– (mf + 2r + 2) / 2 + 1-vi element smešta se u nadređeni čvor
– (mf + 2r + 2) / 2 + 1-vi element i svi preostali elementi
smeštaju se u desni susedni čvor
• prelivanje u neterminalnim čvorovima vrši se na isti način kao
kod osnovnog B-stabla

OD – Datoteke s B-stablima 58 / 75
B*-stablo, B#-stablo, B+-stablo
• Traženje u B+-stablu
– traženje logički narednog sloga
• vrši se isključivo u listovima B+-stabla
• primenom kombinacije metoda linearnog traženja i metode
praćenja pokazivača
• vrši se od tekućeg elementa B+-stabla
– redosledna obrada
• prolazak kroz sve listove B+-stabla i pristupanje primarnoj
zoni
 Nv
u

C min
h    R r
uk  C max
h  N u
v
 f 
 N   Nv  N 
u

 2r   f   R r
uk  r  N u
v
     
OD – Datoteke s B-stablima 59 / 75
B*-stablo, B#-stablo, B+-stablo
• Traženje u B+-stablu
– traženje slučajno odabranog sloga
• počinje u korenu B+-stabla i uvek se završava u jednom od
listova – i za uspešno i za neuspešno traženje
– ako je a < ke, dalje se prati pokazivač Pe - 1
– ako je a = ke, prati se pokazivač Pe – stiže se do lista
– ako je a > km, prati se pokazivač Pm
– broj pristupa, uspešno
• samo jedan bafer u OM za stablo pristupa
Ru = h+ + 1
– broj pristupa, neuspešno
• samo jedan bafer u OM za stablo pristupa
Rn = h+

OD – Datoteke s B-stablima 60 / 75
B*-stablo, B#-stablo, B+-stablo
• Traženje u B+-stablu
– visina kompletnog B+-stabla
h 1 N
C  (2r  1) , N  2rC 
kp
h
kp
h  (2r  1) h1
2r
 N   N
hkp  1  log 2 r 1 , hmin  1  log 2 r 1 
2r  2r 
– visina polupraznog B+-stabla

h2 N
C  2(r  1) , N  rC 
h
pp
h
pp
 (r  1) h2
2r
 N   N
hpp  2  log r 1 , hmax  2  log r 1 
2r  2r 
OD – Datoteke s B-stablima 61 / 75
B*-stablo, B#-stablo, B+-stablo
• Visine B-stabla i B+-stabla
– hmin+  h+  hmax+

N r hmin hmax hmin+ hmax+


103 50 2 2 2 2
104 50 2 3 2 3
105 50 3 3 3 3
106 50 3 4 3 4

  N hmin  log 2 r 1 ( N  1)


h  1  log 2 r 1 
min
 2r 
 N  1
 N hmax  1  log r 1
2 

hmax  2  log r 1  
 2r 
OD – Datoteke s B-stablima 62 / 75
B*-stablo, B#-stablo, B+-stablo
• Ažurianje B+-stabla
– upis novog elementa u B+-stablo vrši se na isti način
kao pri formiranju B+-stabla
– brisanje
• briše se i element u listu i, ako je ponovljen, element sa istom
vrednošću ključa u nadređenom čvoru
– brisanje elementa iz čvora sa r elemenata
• tehnika pozajmljivanja
• tehnika spajanja čvorova

OD – Datoteke s B-stablima 63 / 75
Sadržaj
• Osnovno B-stablo
• Formiranje datoteke s B-stablom
• Traženje u datoteci s B-stablom
• Obrada datoteke s B-stablom
• Ažuriranje datoteke s B-stablom
• Ocena karakteristika datoteka s B-stablom
• B*-stablo, B#-stablo, B+-stablo
• Indeks-sekvencijalna datoteka s B-stablom

OD – Datoteke s B-stablima 64 / 75
Indeks-sekvencijalna dat. s B-stablom
• Indeks-sekvencijalna datoteka s B-stablom
– modifikacija B+-stabla
• prevazilaženje glavnog nedostatka B+-stabla, ili neke od
njegovih varijanti
• za sva uspešna traženja sloga, potrebno je pristupati
primarnoj zoni
– u slučaju indeks-sekvencijalne datoteke s B-stablom,
uspešna traženja završavaju u listovima
– strukturalno drugačija od B+-stabla
• u listovima B+-stabla ne memorišu se parovi (ke, Pe), već
kompletni slogovi
• pogodna u situacijama kada kapacitet sloga nije preveliki
– kako bi se očuvao solidan rang stabla

OD – Datoteke s B-stablima 65 / 75
Indeks-sekvencijalna dat. s B-stablom
• Indeks-sekvencijalna datoteka s B-stablom
– strukturalno drugačija od B+-stabla
– Listovi B+-stabla postaju blokovi primarne zone
• Primarna zona
– spregnuta struktura
– slogovi uređeni saglasno rastućim vrednostima ključa
• Zona indeksa
– spregnuta struktura = neterminalni čvorovi B+-stabla
– osnovno B-stablo ili neka od varijanti (B*, B#)
– retko popunjeni indeks
• u zonu indeksa propagiraju se najmanje vrednosti ključa
svakog bloka primarne zone, osim prvog bloka

OD – Datoteke s B-stablima 66 / 75
Indeks-sekvencijalna dat. s B-stablom
• Indeks-sekvencijalna datoteka s B-stablom
– Primarna zona - faktor blokiranja
• f = 2r
– Primarna zona - broj blokova
 N  N 
• kompletno stablo Bmin      
 2r   f 
 N   2N 
• poluprazno stablo Bmax      
  
r f 
– broj blokova kreće se u rasponu
Bmin  B  Bmax

OD – Datoteke s B-stablima 67 / 75
Indeks-sekvencijalna dat. s B-stablom
• Formiranje
– na uobičajen način
• može se poći od ulazne serijske ili ulazne sekvencijalne
datoteke
• Obrada
– može se koristiti
• i kao vodeća i kao obrađivana
• i u režimu redosledne i u režimu direktne obrade
• pogodnija za primenu u redoslednoj obradi
– u redoslednoj obradi, pristupa se (svim) blokovima
primarne zone
• pogodno da broj blokova primarne zone bude manji
– za manje kapacitete slogova, postiže se veći r i manji B

OD – Datoteke s B-stablima 68 / 75
Indeks-sekvencijalna dat. s B-stablom
• Traženje i ažuriranje
– postupci analogni onima koji se primenjuju u slučaju
B+-stabla
– traženje logički narednog sloga
• vrši se isključivo u blokovima primarne zone
• primenom kombinacije metoda linearnog traženja i metode
praćenja pokazivača
• vrši se od tekućeg sloga primarne zone

OD – Datoteke s B-stablima 69 / 75
Indeks-sekvencijalna dat. s B-stablom
• Traženje i ažuriranje
– traženje slučajno odabranog sloga
• počinje u korenu B-stabla i uvek se završava u bloku
primarne zone – i za uspešno i za neuspešno traženje
– broj pristupa, uspešno
• samo jedan bafer u OM za stablo pristupa
Ru = his + 1
– broj pristupa, neuspešno
• samo jedan bafer u OM za stablo pristupa
Rn = his + 1

OD – Datoteke s B-stablima 70 / 75
Indeks-sekvencijalna dat. s B-stablom
• Traženje slučajno odabranog sloga
– visina kompletnog B-stabla
(2r  1) h  1
Ckp  , B  1  2rCkp  B  (2r  1) h
2r
N  N
hkp  log 2 r 1 B  log 2 r 1 , hmin  log 2 r 1 
is is

2r  2r 
– visina polupraznog B-stabla
(r  1) h 1  1
C pp  1 2 , B  1  1  r (C pp  1)  B  2(r  1) h 1
r

B N  N
h  1  log r 1  1  log r 1 , hmax  1  log r 1 
is
pp
is

2 2r  2r 
OD – Datoteke s B-stablima 71 / 75
Indeks-sekvencijalna dat. s B-stablom
• Visine B-stabla, B+-stabla i B-stabla IS datot.
– hminis  his  hmaxis

N r hmin hmax hmin+ hmax+ hminis hmaxis


103 50 2 2 2 2 1 1
104 50 2 3 2 3 1 2
105 50 3 3 3 3 2 2
106 50 3 4 3 4 2 3

 N   N
h  log 2 r 1 
is
min h  1  log 2 r 1 
min
 2r   2r 
 N   N
hmax  1  log r 1 
is
hmax  2  log r 1 
 2r   2r 
OD – Datoteke s B-stablima 72 / 75
Indeks-sekvencijalna dat. s B-stablom
• Ocena karakteristika indeksnih datoteka s
B-stablima
– pogodne i za direktnu i za redoslednu obradu
• relativno brz pristup slučajno odabranom slogu
• ne prevelik broj pristupa u redoslednoj obradi
– za efikasniju redoslednu obradu koriste se indeks-sekvencijalne
datoteke s B-stablom
» u slučajevima ne prevelikog kapaciteta sloga
– kompromisno rešenje pri izboru fizičke strukture
podataka
• nije idealna organizacija ni za redoslednu ni za direktnu
obradu, ali
• organizacija, prisutna u svim savremenim SUBP, bez
izuzetka

OD – Datoteke s B-stablima 73 / 75
Sadržaj
• Osnovno B-stablo
• Formiranje datoteke s B-stablom
• Traženje u datoteci s B-stablom
• Obrada datoteke s B-stablom
• Ažuriranje datoteke s B-stablom
• Ocena karakteristika datoteka s B-stablom
• B*-stablo, B#-stablo, B+-stablo
• Indeks-sekvencijalna datoteka s B-stablom

OD – Datoteke s B-stablima 74 / 75
Pitanja i komentari

?
OD – Datoteke s B-stablima 75 / 75
Organizacija datoteka

Indeksne datoteke
s B-stablima
B-stablo, formiranje, traženje,
ažuriranje i obrada indeksne
datoteke sa B-stablom

OD – Datoteke s B-stablima
Baze podataka

Sistemi za upravljanje
bazama podataka
Osnovne funkcije SUBP

Sistemi za upravljanje BP
Sadržaj
• Namena i koncepcija SUBP
• Funkcije i struktura SUBP
• Arhitektura RSUBP / ORSUBP
• Rečnik podataka SUBP
• Nezavisnost
• Fleksibilnost

Sistemi za upravljanje BP 2 / 110


Namena SUBP / DBMS
• SUBP
– Sistem za upravljanje bazama podataka
• DBMS
– Database Management System
• Programski proizvod koji omogućava efikasno i
pouzdano:
– formiranje,
– korišćenje i
– menjanje BP

Sistemi za upravljanje BP 3 / 110


Namena SUBP / DBMS

APLIKACIJA #1 APLIKACIJA #2

BP

APLIKACIJA #3

APLIKACIJA #n

Sistemi za upravljanje BP 4 / 110


Koncepcija SUBP
• Karakteristike SUBP
– mora biti zasnovan na nekom modelu podataka
• idealno, treba da podrži sve koncepte i sve karakteristike, tj.
prednosti izabranog modela podataka
– mora da poseduje jezik (ili jezike) za obezbeđenje
upravljanja BP, tj. komunikacije
• programer - SUBP
• administrator BP - SUBP
• krajnji korisnik - SUBP

Sistemi za upravljanje BP 5 / 110


Koncepcija SUBP
• Karakteristike SUBP
– funkcionalnost
• treba da je u mogućnosti da podrži sve predviđene funkcije,
za koje je namenjen
– adaptivnost
• mogućnost lakih izmena definisanih (implementiranih)
koncepata BP
• mogućnost lakog prilagođavanja SUBP konkretnim uslovima
– performantnost
• mogućnost podešavanja performansi upotrebe BP

Sistemi za upravljanje BP 6 / 110


Koncepcija SUBP
• Karakteristike SUBP
– pouzdanost
• visoka verovatnoća bezotkaznog rada u realnom vremenu
– pogodnost za korišćenje
• lakoća korišćenja SUBP, za realizaciju predviđenih zadataka
• automatizacija postupaka realizacije zadataka
– pogodnost za održavanje
• lakoća održavanja proizvoda u funkciji
• sledljivost verzija SUBP u vremenu

Sistemi za upravljanje BP 7 / 110


Koncepcija SUBP
• Karakteristike SUBP
– postojanje rečnika (kataloga) BP
• rečnik (katalog) BP - baza podataka samog SUBP
• SUBP treba da radi nad sopstvenom BP - rečnikom, na isti
način kako opslužuje i korisničku BP
– dugovečnost
• zadržavanje svih poželjnih karakteristika za duži niz godina

Sistemi za upravljanje BP 8 / 110


Koncepcija SUBP
• Zasnovanost na modelu podataka (MP)
– implementacioni MP - modeli podataka na kojima su
SUBP zasnovani
• hijerarhijski (II 1/2 1960-ih - I 1/2 1980-ih)
• mrežni (II 1/2 1960-ih - I 1/2 1980-ih)
• relacioni (I 1/2 1980-ih - II 1/2 1990-ih)
• objektno-orijentisani (II 1/2 1990-ih - danas)
• objektno-relacioni (II 1/2 1990-ih - danas)
• XML (I 1/2 2000-ih - danas)

Sistemi za upravljanje BP 9 / 110


Koncepcija SUBP
• Zasnovanost na modelu podataka (MP)
– poželjne karakteristike implementacionih MP
• logička i fizička nezavisnost podataka
• strukturalna jednostavnost koncepata MP
• visoka deklaritivnost jezika za definiciju i manipulisanje
podacima
• zasnovanost na teoretski "dobrim" modelima

Sistemi za upravljanje BP 10 / 110


Koncepcija SUBP
• Zasnovanost na modelu podataka (MP)
– nisu svi implementacioni MP pokazivali iste osobine
po pitanju poželjnih osobina
– danas, pretežno u komercijalnoj upotrebi
• relacioni SUBP (RSUBP) i
• objektno-relacioni SUBP (ORSUBP)
– kombinuju dobre osobine relacionih i objektno-orijentisanih
SUBP
• jezik za komunikaciju sa RSUBP i ORSUBP
SQL - Structured Query Language
– danas u razvoju
• XML SUBP i povezivanje sa ORSUBP
• jezici za komunikaciju sa XML SUBP
– XML, XML Schema, XPath, XQuery, veza sa SQL
Sistemi za upravljanje BP 11 / 110
Koncepcija SUBP
• SQL
– jezik za komunikaciju sa RSUBP i ORSUBP
– dominantno deklarativan
– visoko standardizovan
• SQL-86, SQL-89
• ANSI SQL-92 (SQL2)
• ANSI SQL:1999 (SQL3)
• ANSI SQL:2003
• ANSI SQL:2006 (ISO/IEC 9075-14:2006)
– proizvođači SUBP ne podržavaju ove standarde uvek u celosti,
ali podržavaju njihov veći deo
– SQL jezik većine komercijalnih SUBP je, u određenim
delovima,
» širi od standarda ili
» uži od standarda
Sistemi za upravljanje BP 12 / 110
Sadržaj
• Namena i koncepcija SUBP
• Funkcije i struktura SUBP
• Arhitektura RSUBP / ORSUBP
• Rečnik podataka SUBP
• Nezavisnost
• Fleksibilnost

Sistemi za upravljanje BP 13 / 110


Struktura SUBP
• Poseduje komponente i mehanizme za
– implementaciju šeme BP u izabranom modelu
podataka
• implementacione šeme BP i pravila poslovanja
• interne šeme BP (fizičke strukture BP)
• distribucione šeme BP
• replikacione šeme BP
– formiranje, korišćenje i ažuriranje BP
– upravljanje podacima
– oblikovanje naprednih arhitektura BP

Sistemi za upravljanje BP 14 / 110


Struktura SUBP
• Poseduje komponente i mehanizme za
– upravljanje transakcijama
– upravljanje višekorisničkim režimom rada
– zaštitu BP od neovlašćenog pristupa
– zaštitu BP od uništenja / oštećenja
– upravljanje distribuiranim BP
– upravljanje replikacijom u BP
– obezbeđenje performantnog koriščenja BP

Sistemi za upravljanje BP 15 / 110


Struktura SUBP
• Poseduje komponente i mehanizme za
– implementaciju šeme BP u izabranom modelu
podataka
• implementacione šeme BP i pravila poslovanja
• interne šeme BP (fizičke strukture BP)
• distribucione šeme BP
• replikacione šeme BP
– formiranje, korišćenje i ažuriranje BP
– upravljanje podacima
– oblikovanje naprednih arhitektura BP

Sistemi za upravljanje BP 16 / 110


Implementacija šeme BP
u RSUBP / ORSUBP
• Implementacija skupa šema relacija
– kreiranje i brisanje domena – osnovnog tipa podatka
• CREATE DOMAIN, DROP DOMAIN
– kreiranje i brisanje složenog tipa podatka
• CREATE TYPE, DROP TYPE
– kreiranje, modifikovanje i brisanje tabele (šeme
relacije)
• CREATE TABLE, ALTER TABLE, DROP TABLE
– dodavanje, modifikovanje i brisanje kolone tabele
(atributa šeme relacije)
• ALTER TABLE / ADD, MODIFY, DROP

Sistemi za upravljanje BP 17 / 110


Implementacija šeme BP
u RSUBP / ORSUBP
• Implementacija ograničenja šeme BP
– zadaju se parametri ograničenja
• definiše se ograničenje, datog tipa
• definišu se operacije (događaji) nad BP koje mogu dovesti do
narušavanja ograničenja
• za svaku operaciju, definiše se aktivnost (akcija) očuvanja
konzistentnosti BP, u slučaju pokušaja narušavanja
ograničenja
– SUBP obezbeđuje automatsku proveru važenja
ograničenja, saglasno definisanim parametrima

Sistemi za upravljanje BP 18 / 110


Implementacija šeme BP
u RSUBP / ORSUBP
• Parametri ograničenja
– svako ograničenje je vezano za određena obeležja i
određene šeme relacija šeme BP
– operacije (događaji) koji, načelno, mogu dovesti do
narušavanja ograničenja
• upis nove torke u relaciju,
• brisanje postojeće torke iz relacije i
• modifikacija vrednosti postojeće torke u relaciji
– nad čijom šemom relacije je ograničenje definisano

Sistemi za upravljanje BP 19 / 110


Implementacija šeme BP
u RSUBP / ORSUBP
• Parametri ograničenja
– akcije očuvanja konzistentnosti BP u slučaju pokušaja
narušavanja ograničenja
• vezuju se za svaku operaciju koja može narušiti ograničenje
• dele se na
– pasivne
– aktivne
– kombinovane
» pod određenim uslovima aktivne, a pod drugim uslovima
pasivne

Sistemi za upravljanje BP 20 / 110


Implementacija šeme BP
u RSUBP / ORSUBP
• Parametri ograničenja
– Pasivne akcije
• sprečavanje operacije koja bi narušila ograničenje
– NO ACTION
– Aktivne akcije
• obezbeđuju automatsko sprovođenje daljih operacija
ažuriranja nad BP
– koje će obezbediti očuvanje konzistentnosti BP
– očuvanjem propisanih odnosa između podataka

Sistemi za upravljanje BP 21 / 110


Implementacija šeme BP
u RSUBP / ORSUBP
• Kontrola ograničenja, implementiranih na nivou
SUBP je centralna
– ne može je zaobići ni jedan program ili korisnik
– korisnici nisu svesni postojanja ograničenja, dok ne
dođe do njegovog narušavanja
– u slučaju pokušaja narušavanja ograničenja nekom
operacijom ažuriranja, SUBP
• aktivnim mehanizmom dovodi stanje BP u konzistentno, ili
• izaziva grešku i prekida operaciju
– prosleđuje korisničkom programu poruku o grečci
– program obrađuje tu poruku i prosleđuje je korisniku

Sistemi za upravljanje BP 22 / 110


Implementacija šeme BP
u RSUBP / ORSUBP
• Implementacija ograničenja šeme BP
– ograničenja se implementiraju pomoću mehanizma
SUBP
– mehanizmu se, direktno ili posredno, pridružuju svi
parametri ograničenja
• definicija
• kritične operacije - koje mogu narušiti ograničenje
• za svaku kritičnu operaciju, akcija očuvanja konzistentnosti
BP

Sistemi za upravljanje BP 23 / 110


Implementacija šeme BP
u RSUBP / ORSUBP
• Kontrola ograničenja šeme BP
– SUBP pokreće mehanizam kontrole važenja
ograničenja
• automatski
• nakon izvođenja kritične operacije za ograničenje

Sistemi za upravljanje BP 24 / 110


Implementacija šeme BP
u RSUBP / ORSUBP
• Implementacija ograničenja šeme BP
– deklarativni mehanizmi
• aktivnosti provere važenja ograničenja i očuvanja
konzistentnosti se, većim delom, podrazumevaju
– SQL klauzula CONSTRAINT
– CREATE DOMAIN, CREATE ASSERTION
– proceduralni mehanizmi
• aktivnosti provere važenja ograničenja i očuvanja
konzistentnosti se, većim delom, programiraju
– CREATE TRIGGER
– CREATE PROCEDURE, CREATE FUNCTION

Sistemi za upravljanje BP 25 / 110


Implementacija šeme BP
u RSUBP / ORSUBP
• Implementacija ograničenja šeme BP i pravila
poslovanja
– proceduralni mehanizmi
• implementacija ograničenja koja se ne mogu u potpunosti
opisati putem deklarativnih mehanizama
• implementacija pravila poslovanja koja ne rezultuju u
ograničenjima podataka

Sistemi za upravljanje BP 26 / 110


Implementacija šeme BP
u RSUBP / ORSUBP
• Implementacija ograničenja šeme BP i pravila
poslovanja
– proceduralni mehanizmi
• implementacija pravila poslovanja
– koja ne rezultuju u ograničenjima šeme BP
– odnose se, obično, na
» unapred definisani redosled, obaveze i uslovljenosti
izvođenja operacija nad BP, ili
» obavezu izvođenja nekih operacija nad BP, pod određenim
uslovima, definisanim putem odnosa vrednosti obeležja u
BP

Sistemi za upravljanje BP 27 / 110


Struktura SUBP
• Poseduje komponente i mehanizme za
– implementaciju šeme BP u izabranom modelu
podataka
• implementacione šeme BP i pravila poslovanja
• interne šeme BP (fizičke strukture BP)
• distribucione šeme BP
• replikacione šeme BP
– formiranje, korišćenje i ažuriranje BP
– upravljanje podacima
– oblikovanje naprednih arhitektura BP

Sistemi za upravljanje BP 28 / 110


Implementacija šeme BP
u RSUBP / ORSUBP
• Realizacija interne šeme - fizičke strukture BP
– podrška različitih načina fizičke organizacije podataka
i metoda pristupa
• serijska organizacija podataka (PILE)
• indeksne organizacije podataka (B+ ili B stabla, različite
varijante)
• rasute organizacije podataka (HASH)
• indeks-sekvencijalna organizacija podataka
• klasterska organizacija podataka
(CREATE CLUSTER)

Sistemi za upravljanje BP 29 / 110


Implementacija šeme BP
u RSUBP / ORSUBP
• Realizacija interne šeme - fizičke strukture BP
– zadavanje parametara fizičke organizacije datoteka
operativnog sistema (OS), nad kojima SUBP
funkcioniše
– raspodela delova baze podataka po datotekama
operativnog sistema
• particioniranje sadržaja tabele podataka na više datoteka i
više disk jedinica
– zadavanje parametara upravljanja fizičkim prostorom,
dodeljenom bazi podataka

Sistemi za upravljanje BP 30 / 110


Struktura SUBP
• Poseduje komponente i mehanizme za
– implementaciju šeme BP u izabranom modelu
podataka
• implementacione šeme BP i pravila poslovanja
• interne šeme BP (fizičke strukture BP)
• distribucione šeme BP
• replikacione šeme BP
– formiranje, korišćenje i ažuriranje BP
– upravljanje podacima
– oblikovanje naprednih arhitektura BP

Sistemi za upravljanje BP 31 / 110


Implementacija šeme BP
u RSUBP / ORSUBP
• Realizacija distribucione šeme BP
– potreba da logički jedinstvena BP bude distribuirana
("fragmentirana") na više računara - servera BP
– svaki server BP poseduje instaliran SUBP, istog ili
različitog tipa i proizvođača
– serveri BP su povezani u jedinstven računarsko-
komunikacioni sistem
– program može, u opštem slučaju, pristupiti podacima
na bilo kojem serveru BP u sistemu

Sistemi za upravljanje BP 32 / 110


Struktura SUBP
• Poseduje komponente i mehanizme za
– implementaciju šeme BP u izabranom modelu
podataka
• implementacione šeme BP i pravila poslovanja
• interne šeme BP (fizičke strukture BP)
• distribucione šeme BP
• replikacione šeme BP
– formiranje, korišćenje i ažuriranje BP
– upravljanje podacima
– oblikovanje naprednih arhitektura BP

Sistemi za upravljanje BP 33 / 110


Implementacija šeme BP
u RSUBP / ORSUBP
• Realizacija replikacione šeme BP
– potreba da se u BP uvede kontrolisana redundansa
podataka
– u cilju obezbeđenja
• performantnog rada distribuirane BP
– povećanja stepena dostupnosti podataka korisniku na datoj
lokaciji
• izgradnje datawarehouse sistema
• obezbeđenja performantnog izveštavanja korisnika, odnosno
korišćenja podataka iz BP

Sistemi za upravljanje BP 34 / 110


Implementacija šeme BP
u RSUBP / ORSUBP
• Realizacija replikacione šeme BP
– mehanizmi za
• definisanje materijalizovanih pogleda - tabela s repliciranim
(redundantnim) podacima
– CREATE MATERIALIZED VIEW
• definisanje načina, postupaka i intervala ažuriranja, tj.
"osvežavanja" sadržaja materijalizovanih pogleda
• definisanje grupa tabela sa međusobno identičnim sadržajem
• definisanje grupa materijalizovanih pogleda sa identičnim
parametrima osvežavanja

Sistemi za upravljanje BP 35 / 110


Struktura SUBP
• Poseduje komponente i mehanizme za
– implementaciju šeme BP u izabranom modelu
podataka
• implementacione šeme BP i pravila poslovanja
• interne šeme BP (fizičke strukture BP)
• distribucione šeme BP
• replikacione šeme BP
– formiranje, korišćenje i ažuriranje BP
– upravljanje podacima
– oblikovanje naprednih arhitektura BP

Sistemi za upravljanje BP 36 / 110


Formiranje, korišćenje i ažuriranje BP
• Formiranje BP
– kreiranje datoteka i fizičkog prostora BP
• CREATE DATABASE
– inicijalno punjenje ili preuzimanje podataka iz drugih
BP ili datoteka
• Programi tipa Import, ili Loader

Sistemi za upravljanje BP 37 / 110


Formiranje, korišćenje i ažuriranje BP
• Korišćenje BP
– izvršavanje upita nad BP
• QL naredbe: SELECT, CREATE VIEW
– predaja podataka iz BP u okruženje
• Programi tipa Export
• Ažuriranje BP
– upis, modifikacija i brisanje podataka iz BP
• DML naredbe: INSERT, UPDATE, DELETE, MERGE

Sistemi za upravljanje BP 38 / 110


Struktura SUBP
• Poseduje komponente i mehanizme za
– implementaciju šeme BP u izabranom modelu
podataka
• implementacione šeme BP i pravila poslovanja
• interne šeme BP (fizičke strukture BP)
• distribucione šeme BP
• replikacione šeme BP
– formiranje, korišćenje i ažuriranje BP
– upravljanje podacima
– oblikovanje naprednih arhitektura BP

Sistemi za upravljanje BP 39 / 110


Upravljanje podacima
• Podrška različitih metoda pristupa podacima
– saglasno deklarisanoj fizičkoj organizaciji podataka
• Podrška različitih metoda uređivanja (sortiranja)
podataka
• Podrška fizičke nezavisnosti BP
– nezavisnosti BP od njene fizičke organizacije
• Podrška različitih načina adresiranja podataka
• Upravljanje prostorom i blokovima BP
• Upravljanje prostorom radne memorije SUBP
• Upravljanje datotekama OS, dodeljenih bazi
podataka
Sistemi za upravljanje BP 40 / 110
Struktura SUBP
• Poseduje komponente i mehanizme za
– implementaciju šeme BP u izabranom modelu
podataka
• implementacione šeme BP i pravila poslovanja
• interne šeme BP (fizičke strukture BP)
• distribucione šeme BP
• replikacione šeme BP
– formiranje, korišćenje i ažuriranje BP
– upravljanje podacima
– oblikovanje naprednih arhitektura BP

Sistemi za upravljanje BP 41 / 110


Oblikovanje naprednih arhitektura BP
• Upravljanje naprednim arhitekturama BP
– klasterske arhitekture SUBP
• klasterski sistemi diskova računara
• klasterski računarski sistemi
– grid arhitekture SUBP
• više nezavisnih računarskih jedinica
• mogućnost dinamičkih izmena hardverske arhitekture

Sistemi za upravljanje BP 42 / 110


Struktura SUBP
• Poseduje komponente i mehanizme za
– upravljanje transakcijama
– upravljanje višekorisničkim režimom rada
– zaštitu BP od neovlašćenog pristupa
– zaštitu BP od uništenja / oštećenja
– upravljanje distribuiranim BP
– upravljanje replikacijom u BP
– obezbeđenje performantnog koriščenja BP

Sistemi za upravljanje BP 43 / 110


Upravljanje transakcijama
• Transakcija
– najmanja jedinica obrade podataka
• koja prevodi BP iz jednog u drugo, ne nužno različito,
konzistentno stanje
– jedno izvršenje nekog transakcionog programa nad
BP
• sačinjenog od operacija upita i/ili ažuriranja BP
• koje u celosti uspeva, ili
• čiji se efekti u celosti poništavaju (odbacuju)
– obrada podataka u BP se odvija isključivo putem
transakcija

Sistemi za upravljanje BP 44 / 110


Upravljanje transakcijama
• Transakcija
– ima svoj početak
– ima svoj kraj
• označen zahtevom
– za potvrđivanje transakcije
» COMMIT
– ili za poništavanje transakcije
» ROLLBACK
• ili implicitno podrazumevan
– dolaskom do greške u obradi podataka
» koja izaziva automatsko poništavanje transakcije
– implicitni ROLLBACK

Sistemi za upravljanje BP 45 / 110


Upravljanje transakcijama
• Transakcija
– poseduje mogućnost delimičnog poništavanja
• isključivo u toku njenog izvršavanja
• označen zahtevom za delimično poništavanje
– do označene tačke u vremenskom napredovanju transakcije
» SAVEPOINT
– ROLLBACK TO savepoint

Sistemi za upravljanje BP 46 / 110


Upravljanje transakcijama
• Transakcija
– biće uspešno izvršena - potvrđena, ako je
• to u transakcionom programu eksplicitno zahtevano
(zahtevom tipa COMMIT) i
• ako SUBP tu potvrdu može uspešno da realizuje
– BP, u tom slučaju, prelazi u novo konzistentno stanje
• koje se, u opštem slučaju, razlikuje od stanja na početku
izvođenja transakcije, a
• moguće je i da bude identično prethodnom stanju

Sistemi za upravljanje BP 47 / 110


Upravljanje transakcijama
• Transakcija
– biće u celosti poništena, u svim ostalim slučajevima
• kada SUBP ne može da je potvrdi, iako je potvrda zahtevana
• kada je eksplicitno zahtevano poništenje
(zahtevom tipa ROLLBACK)
• kada se pojavi greška koja izaziva automatsko poništenje
transakcije
– BP, u tom slučaju, ostaje u konzistentnom stanju koje
je važilo na početku transakcije

Sistemi za upravljanje BP 48 / 110


Upravljanje transakcijama

Ti-1 Ti SAVEPOINT A ROLLBACK TO A COMMIT

INS1 UPD1 UPD2 DEL1 INS2 DEL2 DEL3

t
Ti-1 Ti COMMIT

INS1 INS2 DEL2 DEL3

Sistemi za upravljanje BP 49 / 110


Upravljanje transakcijama
• Vidljivost efekata izvođenja transakcije
– za korisnika koji je pokrenuo transakciju
• vidljiva je svaka promena podataka
– od trenutka njenog nastajanja
– u toku samog izvođenja transakcije
– za ostale korisnike sistema
• vidljivo je stanje BP koje je važilo neposredno pre početka
izvođenja transakcije
– u toku izvođenja transakcije,
– trajno, u slučaju njenog poništenja
• vidljivo je novo stanje BP
– neposredno nakon obavljenog potvrđivanja transakcije

Sistemi za upravljanje BP 50 / 110


Upravljanje transakcijama

Ti-1 Ti SAVEPOINT A ROLLBACK TO A COMMIT

INS1 UPD1 UPD2 DEL1 INS2 DEL2 DEL3

BP

Sistemi za upravljanje BP 51 / 110


Struktura SUBP
• Poseduje komponente i mehanizme za
– upravljanje transakcijama
– upravljanje višekorisničkim režimom rada
– zaštitu BP od neovlašćenog pristupa
– zaštitu BP od uništenja / oštećenja
– upravljanje distribuiranim BP
– upravljanje replikacijom u BP
– obezbeđenje performantnog koriščenja BP

Sistemi za upravljanje BP 52 / 110


Višekorisnički režim rada
• BP predstavlja deljeni resurs u vremenu
– BP konkurentno koristi više programa za selekciju ili
menjanje dela sadržaja BP
• Svaki program pravi svoje "privatne" kopije
podataka, nad kojima operativno radi
• Konkurentno pravljenje više od jedne kopije istih
podataka iz BP dovodi do problema
narušavanja konzistentnosti BP, kao
deljenog resursa, u realnom vremenu

Sistemi za upravljanje BP 53 / 110


Višekorisnički režim rada
• Jedan od problema narušavanja konzistentnosti
u višekorisničkom režimu rada
– gubitak ažuriranja
• oštećenje dela sadržaja BP, usled višestrukog kopiranja i
ažuriranja istih podataka

Sistemi za upravljanje BP 54 / 110


Višekorisnički režim rada

Gubitak ažuriranja
A u BP 2 2 1 1

A u radnoj 2 1 1 1
zoni T1
A u radnoj 2 1 1
zoni T2
T1 Read(A) A A-1 Write(A)

T2 Read(A) A A-1 Write(A)

Sistemi za upravljanje BP 55 / 110


Višekorisnički režim rada
• Jedno od rešenja
– zaključavanje resursa - podataka
– dvofazni protokol zaključavanja resursa
• Zaključavanje resursa
– zabrana (blokada) pristupa resursu - podatku
– sprovodi se u toku izvođenja transakcije
• automatski, od strane SUBP, ili
• eksplicitno, od strane transakcionog programa
– snižava stepen mogućeg paralelizma u izvođenju
transakcija

Sistemi za upravljanje BP 56 / 110


Višekorisnički režim rada

Zaključavanje - očuvanje konzistentnosti BP


A u BP 2 2 1 1

A u radnoj 2 1 1 1
zoni T1
A u radnoj
zoni T2
T1 Lock (A) A A-1 Write(A) Commit
Read(A) Unlock (A)
T2 Lock (A)

Sistemi za upravljanje BP 57 / 110


Višekorisnički režim rada

Zaključavanje - očuvanje konzistentnosti BP


A u BP 1 1 0 0

A u radnoj
zoni T1
A u radnoj 1 0 0 0
zoni T2
T1

T2 Read(A) A A-1 Write(A) Commit


Unlock (A)

Sistemi za upravljanje BP 58 / 110


Višekorisnički režim rada
• Savremeni SUBP
– obezbeđuju automatsko sprovođenje dvofaznog
protokola zaključavanja
• čime se otklanjaju problemi gubitka ažuriranja, kao i drugih
problema do kojih može doći u višekorisničkom režimu rada
– uobičajeno obezbeđuju minimalno restriktivan stepen
zaključavanja
• koji garantuje očuvanje konzistentnosti BP u višekorisničkom
režimu rada
• "optimističko zaključavanje"

Sistemi za upravljanje BP 59 / 110


Višekorisnički režim rada
• Korisnik SUBP može sprovoditi eksplicitno
zaključavanje resursa i pri tome
– samo može pooštriti restriktivnost zaključavanja, koju
nameće SUBP
• LOCK TABLE
• "pesimističko zaključavanje"
– ne može ublažiti restriktivnost zaključavanja koju
nameće SUBP
• time bi nastao rizik mogućnosti narušavanja konzistentnosti
BP u višekorisničkom režimu upotrebe BP

Sistemi za upravljanje BP 60 / 110


Višekorisnički režim rada
• Problemi koncepta zaključavanja
– izgladnjavanje transakcije ("starving")
• transakcija nedozvoljeno dugo čeka da dobije pravo
zaključavanja resursa
• ne može da dođe na red, usled stalnog postojanja transakcija
višeg prioriteta
– rešenje problema izgladnjavanja
• transakcije se opslužuju po redosledu zahtevanja
zaključavanja resursa (FIFO princip)

Sistemi za upravljanje BP 61 / 110


Višekorisnički režim rada
• Problemi koncepta zaključavanja
– međusobna blokada transakcija ("deadlock")
• uzajamno zaključavanje podataka u barem dve transakcije
• transakcije čekaju na događaj otključavanja traženog
resursa, koji se nikada sam od sebe neće dogoditi
– moguća rešenja problema blokade transakcija
• preventivna
– sprečavaju pojavu blokade
• korektivna
– otkrivaju i razrešavaju blokadu

Sistemi za upravljanje BP 62 / 110


Višekorisnički režim rada

Međusobna blokada transakcija


Ti-1 Ti

Lock(X) UPD(X) Lock(Y)

Ti-1 Ti+1

Lock(Y) UPD(Y) Lock(X)

Sistemi za upravljanje BP 63 / 110


Višekorisnički režim rada

Međusobna blokada transakcija

Ti

Ti+1

Sistemi za upravljanje BP 64 / 110


Višekorisnički režim rada
• Preventivna rešenja
– zahtev da se svi kritični resursi zaključaju odjednom
– zahtev da se kritični resursi uvek zaključavaju po
unapred definisanom redosledu
• bez obzira na redosled pristupanja resursu u toku transakcije
• svi mogući resursi zaključavanja dobijaju poziciju (redni broj)
u redosledu zaključavanja

Sistemi za upravljanje BP 65 / 110


Višekorisnički režim rada
• Korektivna rešenja
– SUBP, u određenim vremenskim intervalima,
proverava da li je došlo do međusobne blokade
• dinamičkim formiranjem grafa zavisnosti transakcija po
zaključavanju i podacima
• proverom da li u takvom grafu postoje ciklusi
– ako se međusobna blokada detektuje, jedna od
transakcija u ciklusu blokiranih transakcija se
automatski poništava

Sistemi za upravljanje BP 66 / 110


Struktura SUBP
• Poseduje komponente i mehanizme za
– upravljanje transakcijama
– upravljanje višekorisničkim režimom rada
– zaštitu BP od neovlašćenog pristupa
– zaštitu BP od uništenja / oštećenja
– upravljanje distribuiranim BP
– upravljanje replikacijom u BP
– obezbeđenje performantnog koriščenja BP

Sistemi za upravljanje BP 67 / 110


Zaštita od neovlašćenog pristupa
• Bezbednost (Security)
– Mehanizmi zaštite
• preventivni
– sprečavaju neovlašćene načine upotrebe BP
» sprečavaju pokušaj krađe
» sprečavaju pokušaj namernog ili slučajnog oštećenja ili
uništenja delova BP
• korektivni
– omogućavaju evidentiranje i ispitivanje načina upotrebe BP od
strane ovlašćenih i neovlačćenih lica
» u cilju otkrivanja i otklanjanja destrukcija i utvrđivanja
odgovornosti
– Ciljevi i politika zaštite
– Upravljanje bezbedonosnim rizicima
– Organizacione mere zaštite
Sistemi za upravljanje BP 68 / 110
Zaštita od neovlašćenog pristupa
• Preventivni mehanizmi zaštite
– fizičko-tehnička zaštita
• sprečavanje fizičkog kontakta neovlašćenih lica sa
informacionim sistemom
– zaštita na nivou računarsko-komunikacione opreme
• Password na nivou hardverskog uređaja
• hardverski firewall
• hardverski zaštitni uređaji (npr. čitači smart kartica)
– zaštita na nivou OS
• OS Username/Password
• softverske barijere (firewall-ovi), antivirus programi
• zaštita u komunikacionim protokolima
– sprečavanje neovlašćenih lica da softverski pristupe
računarsko-komunikacionoj infrastrukturi

Sistemi za upravljanje BP 69 / 110


Zaštita od neovlašćenog pristupa
• Preventivni mehanizmi zaštite
– zaštita na nivou SUBP
• SUBP Username/Password
– sprečavanje neovlašćenih lica da pristupe bazi podataka
• privilegije korisnika SQL / GRANT, REVOKE
– sprečavanje neovlašćenog korišćenja tabela u BP, bilo direktno
ili posredno, putem poziva procedura BP
– sprečavanje neovlašćenih načina korišćenja tabela u BP
(operacija nad tabelama u BP)
– sprečavanje neovlašćenog korišćenja sistemskih resursa,
kojima SUBP upravlja
– sprečavanje neovlašćene primene SQL naredbi nad BP

Sistemi za upravljanje BP 70 / 110


Zaštita od neovlašćenog pristupa
• Preventivni mehanizmi zaštite
– zaštita na nivou SUBP
• obezbeđenje selektivnog pristupa podacima u BP
– SQL / CREATE VIEW, CREATE TRIGGER,
CREATE PROCEDURE
– sprečavanje neovlašćenog korišćenja konkretnih podataka u
BP, bilo direktno ili posredno, putem poziva procedura BP
– sprečavanje neovlašćenih načina korišćenja konkretnih
podataka u BP (operacija nad delovima BP)
• kriptovanje perzistentnih podataka BP ili rečnika SUBP

Sistemi za upravljanje BP 71 / 110


Zaštita od neovlašćenog pristupa
• Preventivni mehanizmi zaštite
– zaštita na nivou aplikativnog softvera
• obezbeđenje selektivnog pristupa transakcionim programima
– uvode se prava korisnika
» da pokrenu cele aplikacije nad BP
» da pokrenu pojedinačne transakcione programe nad BP
• često se realizuje u višeslojnim arhitekturama na tzv.
"srednjem" sloju
– aplikativni serveri, kao sistemski softver, poseduju mehanizme
zaštite od neovlašćenog pristupa

Sistemi za upravljanje BP 72 / 110


Zaštita od neovlašćenog pristupa
• Korektivni mehanizmi zaštite
– praćenje rada korisnika (Auditing)
– zaštita na nivou SUBP
• mogućnost evidentiranja načina upotrebe BP od strane
ovlašćenih i neovlašćenih lica
• evidentiranje sprovedenih operacija nad podacima u BP
– ko je i kada je sproveo datu operaciju
• evidentiranje pokušaja sprovođenja operacija nad podacima
u BP
– ko je i kada je napravio pokušaj
• mehanizmi SUBP
– AUDIT TABLE
– CREATE TRIGGER, CREATE PROCEDURE
– izgradnja tzv. "Journal" tabela

Sistemi za upravljanje BP 73 / 110


Struktura SUBP
• Poseduje komponente i mehanizme za
– upravljanje transakcijama
– upravljanje višekorisničkim režimom rada
– zaštitu BP od neovlašćenog pristupa
– zaštitu BP od uništenja / oštećenja
– upravljanje distribuiranim BP
– upravljanje replikacijom u BP
– obezbeđenje performantnog koriščenja BP

Sistemi za upravljanje BP 74 / 110


Zaštita od uništenja i oštećenja
• Sigurnost (Safety)
– Mehanizmi zaštite
• preventivni
– obezbeđuju zadovoljavajući stepen pouzdanosti i gotovosti
(raspoloživosti) sistema za upotrebu
– sprečavaju pokušaje uništenja ili oštećenja delova BP
• korektivni
– omogućavaju efikasan
» oporavak od greške i/ili
» vraćanje oštećenih ili uništenih delova BP u stanje
gotovosti za upotrebu (operativno stanje)
– Ciljevi i politika zaštite
– Upravljanje sigurnosnim rizicima
– Organizacione mere zaštite

Sistemi za upravljanje BP 75 / 110


Zaštita od uništenja i oštećenja
• Preventivni mehanizmi zaštite
– fizičko-tehnička zaštita
• svi mehanizmi bezbedonosne zaštite
– sprečavanje fizičkog kontakta neovlašćenih lica sa
informacionim sistemom
• obezbeđenje zadovoljavajućih infrastrukturnih uslova
– napajanje električnom energijom, odgovarajući klimatski uslovi
okoline, odgovarajući telekomunikacioni servisi
– zaštita na nivou hardversko-komunikacione
infrastrukture
• svi mehanizmi bezbedonosne zaštite
– sprečavanje fizičkog ili softverskog kontakta neovlašćenih lica
sa informacionim sistemom
• obezbeđenje osnova za formiranje arhitekture sistema
povišenog stepena pouzdanosti
Sistemi za upravljanje BP 76 / 110
Zaštita od uništenja i oštećenja
• Preventivni mehanizmi zaštite
– zaštita na nivou OS
• svi mehanizmi bezbedonosne zaštite
– OS Username / Password
– softverske barijere (firewall-ovi), antivirus programi
– zaštita u komunikacionim protokolima
» sprečavanje neovlašćenih lica da softverski pristupe
računarsko-komunikacionoj infrastrukturi
• arhiviranje podataka (backup) na nivou OS
– stvaranje mogućnosti za kompletnu ili delimičnu restauraciju
sadržaja diskova, pa i BP, na nivou OS

Sistemi za upravljanje BP 77 / 110


Zaštita od uništenja i oštećenja
• Preventivni mehanizmi zaštite
– zaštita na nivou SUBP
• svi mehanizmi bezbedonosne zaštite
– SUBP Username/Password, GRANT, REVOKE, itd.
• arhiviranje BP putem mehanizama SUBP
– arhiviranje celokupne BP, ili delova BP
» BACKUP DATABASE / DATAFILE / LOGFILE
– "hladno" arhiviranje (offline backup)
» arhiviranje u odloženom (otkaznom) režimu rada SUBP
– "vruće" arhiviranje (online backup)
» arhiviranje u režimu operativnog rada SUBP
– stvaranje mogućnosti za kompletnu ili delimičnu restauraciju
sadržaja BP, kada je to potrebno

Sistemi za upravljanje BP 78 / 110


Zaštita od uništenja i oštećenja
• Preventivni mehanizmi zaštite
– zaštita na nivou SUBP
• konfigurisanje arhitekture sistema povišenog stepena
pouzdanosti
– raspoređivanje datoteka kojima upravlja SUBP na više fizički
posebnih disk jedinica
– udvajanje ("kloniranje") servera BP
– formiranje klasterske konfiguracije servera BP
– formiranje grid konfiguracije servera BP
» stvaranje mogućnosti za praktično obezbeđenje
bezotkaznog načina rada sistema u celini

Sistemi za upravljanje BP 79 / 110


Zaštita od uništenja i oštećenja
• Preventivni mehanizmi zaštite
– zaštita na nivou SUBP
• vođenje transakcionog dnevnika
– Transaction Log (Journal) datoteka
– sekvencijalno organizovana datoteka
– dnevnik (istorija) svih promena BP u vremenu, iniciranih
operacijama ažuriranja BP
– čuva zapise o prethodnim i o novim (izmenjenim) podacima
» before image
» slika "starog" (prethodnog) stanja - stanja pre izvedene
operacije nad BP
» after image
» slika "novog" (izmenjenog) stanja - stanja nakon izvedene
operacije nad BP

Sistemi za upravljanje BP 80 / 110


Zaštita od uništenja i oštećenja
• Preventivni mehanizmi zaštite
– zaštita na nivou SUBP
• vođenje transakcionog dnevnika
– osnova za sprovođenje postupka oporavka BP, u slučaju
pojave sistemskih grešaka ili oštećenja delova BP
– mehanizam za obračun vremena pri "napredovanju" BP
– osnova za osiguranje konzistentnosti BP na fizičkom nivou, do
što bliže tačke u vremenu, pri "napredovanju" BP u vremenu

Sistemi za upravljanje BP 81 / 110


Zaštita od uništenja i oštećenja
• Preventivni mehanizmi zaštite
– zaštita na nivou SUBP
• obezbeđenje postupka poništenja transakcije - ROLLBACK
– vođenje "before image" i "after image" podataka u toku
transakcije
– mehanizam za povratak BP u konzistentno stanje, koje je važilo
na početku transakcije
– mogućnost "bezbolnog" otklanjanja grešaka, povratkom na
"staro" stanje, ali samo u još uvek nezavršenoj transakciji
– "oporavak unazad", u okvirima nezavršene transakcije
• aktiviranje FLASH BACK mehanizma
– trajno vođenje "before image" i "after image" podataka u
posebnim strukturama podataka
– mogućnost "bezbolnog" otklanjanja grešaka, povratkom na
"staro" stanje
– "oporavak unazad", do zadate tačke u vremenu
Sistemi za upravljanje BP 82 / 110
Zaštita od uništenja i oštećenja
• Korektivni mehanizmi zaštite
– zaštita na nivou SUBP
• restauracija stanja BP
– mogućnost restauracije celokupnog sadržaja, ili dela sadržaja
BP
– sprovodi se na osnovu postojeće arhivske kopije
» RESTORE DATABASE / DATAFILE / LOGFILE
– moguća restauracija BP do tačke u vremenu koja odgovara
trenutku formiranja arhivske kopije

Sistemi za upravljanje BP 83 / 110


Zaštita od uništenja i oštećenja
• Korektivni mehanizmi zaštite
– zaštita na nivou SUBP
• "oporavak unazad", do zadate tačke u vremenu
– upotreba FLASH BACK mehanizma
• oporavak BP unapred, do zadate tačke u vremenu
– RECOVERY DATABASE (FORWARD RECOVERY)
– mogućnost oporavka sadržaja BP do zadate tačke u vremenu
– najkasnije do poslednje tačke u vremenu, zabeležene u
transakcionom dnevniku
– primenjuje se kada je potrebno
» "vratiti" BP u poslednje moguće konzistentno stanje, kao
čin oporavka od sistemske greške
» "vratiti" BP u željeno istorijsko stanje, kao čin oporavka od
korisničke greške

Sistemi za upravljanje BP 84 / 110


Zaštita od uništenja i oštećenja
• Korektivni mehanizmi zaštite
– zaštita na nivou SUBP
• oporavak BP do zadate tačke u vremenu
– sprovodi se na osnovu postojeće arhivske kopije i
» RESTORE DATABASE / DATAFILE / LOGFILE
– transakcionog dnevnika, koji mora da uključi
» tačku u vremenu, jednaku ili stariju od trenutka nastajanja
arhivske kopije i
» tačku u vremenu, jednaku ili noviju od tražene vremenske
tačke oporavka BP

Sistemi za upravljanje BP 85 / 110


Zaštita od uništenja i oštećenja
• Korektivni mehanizmi zaštite
– zaštita na nivou SUBP
• oporavak BP do zadate tačke u vremenu
– na restaurirano stanje BP primenjuju se sve promene nad BP
– u hronološkom redosledu nastanka, saglasno redosledu zapisa
u transakcionom dnevniku
– sve završene i potvrđene transakcije se, ponovo, potvrđuju
– sve nezavršene ili poništene transakcije se automatski
poništavaju

Sistemi za upravljanje BP 86 / 110


Struktura SUBP
• Poseduje komponente i mehanizme za
– upravljanje transakcijama
– upravljanje višekorisničkim režimom rada
– zaštitu BP od neovlašćenog pristupa
– zaštitu BP od uništenja / oštećenja
– upravljanje distribuiranim BP
– upravljanje replikacijom u BP
– obezbeđenje performantnog koriščenja BP

Sistemi za upravljanje BP 87 / 110


Upravljanje distribuiranim BP
• Mehanizmi SUBP za izgradnju i upravljanje
distribuiranim BP
– globalno upravljanje nazivima objekata i obezbeđenje
lokacijske transparentnosti
– obezbeđenje komunikacije (prosleđivanje poruka)
između servera BP
– upravljanje distribucijom rečnika SUBP-a

Sistemi za upravljanje BP 88 / 110


Upravljanje distribuiranim BP
• Podrška SUBP svim ostalim funkcionalnostima,
ali u distribuiranom okruženju
– sa stanovišta krajnjeg korisnika
• jednaka funkcionalnost kao u nedistribuiranom okruženju
– sa stanovišta SUBP
• potreba postojanja posebnih mehanizama za obezbeđenje
date funkcionalnosti

Sistemi za upravljanje BP 89 / 110


Struktura SUBP
• Poseduje komponente i mehanizme za
– upravljanje transakcijama
– upravljanje višekorisničkim režimom rada
– zaštitu BP od neovlašćenog pristupa
– zaštitu BP od uništenja / oštećenja
– upravljanje distribuiranim BP
– upravljanje replikacijom u BP
– obezbeđenje performantnog koriščenja BP

Sistemi za upravljanje BP 90 / 110


Upravljanje replikacijom BP
• Mehanizmi SUBP
– podržavaju različite vrste replikacije
– obezbeđuju očuvanje konzistentnosti BP do na
zadate intervale vremena osvežavanja repliciranih
delova BP
• provera važenja implementiranih ograničenja u repliciranim
delovima BP
• podrška postupaka za razrešavanje konflikata ažuriranja
– nastaju, kada se isti podaci simetrično ažuriraju u toku jednog
intervala osvežavanja repliciranih delova BP

Sistemi za upravljanje BP 91 / 110


Struktura SUBP
• Poseduje komponente i mehanizme za
– upravljanje transakcijama
– upravljanje višekorisničkim režimom rada
– zaštitu BP od neovlašćenog pristupa
– zaštitu BP od uništenja / oštećenja
– upravljanje distribuiranim BP
– upravljanje replikacijom u BP
– obezbeđenje performantnog koriščenja BP

Sistemi za upravljanje BP 92 / 110


Obezbeđenje performansi
• Obezbeđenje performantnog rada SUBP
– obezbeđenje zadovoljavajućeg vremena odziva
sistema na unapred predviđene funkcionalne zahteve
– uslovljeno je
• karakteristikama instalirane računarsko-komunikacione
infrastrukture
• karakteristikama i performansama instaliranih operativnih
sistema
• karakteristikama (mogućnostima) samog SUBP
• prilagođenošću SUBP konkretnoj računarskoj arhitekturi i
potrebama aplikacija IS

Sistemi za upravljanje BP 93 / 110


Obezbeđenje performansi
• Parametri performantnog rada SUBP
– efikasnost korišćenja memorijskog prostora,
dodeljenog BP
– prilagođenost fizičke strukture BP potrebama
transakcionih programa
– prilagođenost distribucije i replikacije BP potrebama
transakcionih programa
– složenost logičke strukture BP i samih transakcionih
programa

Sistemi za upravljanje BP 94 / 110


Obezbeđenje performansi
• Parametri performantnog rada SUBP
– efikasnost realizacije upita nad BP
– efikasnost ažuriranja BP
– stepen zahtevane pouzdanosti rada SUBP i
raspoloživosti za upotrebu BP
– stepen zahtevane zaštite BP od neovlačćenog
pristupa i uništenja ili oštećenja

Sistemi za upravljanje BP 95 / 110


Sadržaj
• Namena i koncepcija SUBP
• Funkcije i struktura SUBP
• Arhitektura RSUBP / ORSUBP
• Rečnik podataka SUBP
• Nezavisnost
• Fleksibilnost

Sistemi za upravljanje BP 96 / 110


Arhitektura RSUBP / ORSUBP

Aplikacije
- web orijentisane SQL orijentisani programi
- GUI orijentisane SQL naredbe - interaktivne SQL naredbe
- karakter orijentisane - SQL script programi
- u višeslojnim arhitekturama

Odgovori
SUBP Odgovori

BP

Korisnički Rečnik
podaci podataka

Sistemi za upravljanje BP 97 / 110


Arhitektura RSUBP / ORSUBP

Aplikacije
- web orijentisane SQL orijentisani programi
- GUI orijentisane
SUBP SQL
Upravljač višeko- naredbeSQL procesor
- interaktivne SQL naredbe
- karakter orijentisane
risničkim režimom - SQL script programi
- u višeslojnim arhitekturama Generator plana
rada izvršenja upita SQL parser
Upravljač arhivira-
njem iUpravljač
oporavkom Izvršilac SQL
transakcijama SQL optimizator operatora

Odgovori
Upravljač distribuci-
Upravljač
jom
transak-
i replikacijom
cionim dnevnikom
Upravljač
SUBP Odgovori
zaključavanjem Upravljač BP
Upravljač
Upravljačimenima
arhivira- Upravljač prostorom BP i
i distribucijom
njem i restauracijom metode pristupa podacima
BP
Upravljač Upravljač baferima u OM
Upravljač
oporavkom BP
Korisnički
replikacijom Rečnik
Upravljač datotekama i
podaci podataka
prostorom na disku

Sistemi za upravljanje BP 98 / 110


Arhitektura RSUBP/ORSUBP
• Podrazumeva obezbeđenje karakteristika
– obavezna upotreba rečnika podataka SUBP
– nezavisnost programa od podataka
– fleksibilnost SUBP u primeni

Sistemi za upravljanje BP 99 / 110


Sadržaj
• Namena i koncepcija SUBP
• Funkcije i struktura SUBP
• Arhitektura RSUBP / ORSUBP
• Rečnik podataka SUBP
• Nezavisnost
• Fleksibilnost

Sistemi za upravljanje BP 100 / 110


Rečnik podataka
• Rečnik podataka, katalog, Data Dictionary
– baza podataka samog SUBP
• sadrži tzv. metapodatke

Sistemi za upravljanje BP 101 / 110


Rečnik podataka
• Rečnik podataka, katalog, Data Dictionary
– služi za memorisanje podataka o
• šemi BP
– implementacionoj, internoj, distribucionoj i replikacionoj
• fizičkoj strukturi alociranog prostora na memorijskim
uređajima, vezanim za BP
• načinu organizacije transakcionog dnevnika
• izvršenim arhiviranjima i restauriranjima BP
• obavljenim transakcijama i transakcijama koje su toku
• korisnicima i pravima pristupa
• ostvarenim konekcijama korisnika na BP
• statistikama, neophodnim za optimizaciju upita i upravljanje
fizičkim prostorom BP
• vezama između raznih objekata u BP

Sistemi za upravljanje BP 102 / 110


Sadržaj
• Namena i koncepcija SUBP
• Funkcije i struktura SUBP
• Arhitektura RSUBP / ORSUBP
• Rečnik podataka SUBP
• Nezavisnost
• Fleksibilnost

Sistemi za upravljanje BP 103 / 110


Nezavisnost
• Obezbeđenje određenog nivoa nezavisnosti
programa od podataka
– veliki doprinos RSUBP / ORSUBP
– primarno, posledica teoretske separacije fizičkih od
logičkih aspekata izgradnje BP u relacionom modelu
podataka
– tri aspekta nezavisnosti programa od podataka
• logička nezavisnost
• fizička nezavisnost
• lokacijska nezavisnost

Sistemi za upravljanje BP 104 / 110


Nezavisnost
• Logička nezavisnost
– nezavisnost programa od izmena u šemi BP
• Fizička nezavisnost
– nezavisnost izmena fizičke organizacije BP od njene
logičke šeme i programa
• Lokacijska nezavisnost
– nezavisnost logičke šeme od distribucione šeme BP

Sistemi za upravljanje BP 105 / 110


Sadržaj
• Namena i koncepcija SUBP
• Funkcije i struktura SUBP
• Arhitektura RSUBP / ORSUBP
• Rečnik podataka SUBP
• Nezavisnost
• Fleksibilnost

Sistemi za upravljanje BP 106 / 110


Fleksibilnost
• Fleksibilnost
– prilagodljivost različitim okruženjima, u kojima SUBP
treba da budu upotrebljeni
• sistemi visokog stepena pouzdanosti
• sistemi visokog stepena zaštite od neovlašćenog pristupa i
oštećenja
• real time sistemi - sistemi tipa 24  7
• ekstremno veliki sistemi - sistemi s velikim BP (reda više
terabajta) i heterogenim podacima
– pogodnost za upotrebu i održavanje

Sistemi za upravljanje BP 107 / 110


Fleksibilnost
• Pogodnost za upotrebu i održavanje
– za krajnjeg korisnika
• alati za upotrebu BP
– za programera
• alati za upotrebu BP, razvoj softvera i šeme BP
– za administratora BP (DBA)
• alati za održavanje BP i SUBP
– organizacija BP i memorijskog prostora
– obezbeđenje performansi
– obezbeđenje procedura za zaštitu BP
– poželjno da budu
• vizuelno orijentisani
• ekspertski orijentisani, sa elementima ugrađene inteligencije
• snabdeveni kvalitetnim on-line uputstvima i "wizard-ima"
Sistemi za upravljanje BP 108 / 110
Pitanja i komentari

?
Sistemi za upravljanje BP 109 / 110
Sadržaj
• Namena i koncepcija SUBP
• Funkcije i struktura SUBP
• Arhitektura RSUBP / ORSUBP
• Rečnik podataka SUBP
• Nezavisnost
• Fleksibilnost

Sistemi za upravljanje BP 110 / 110


Baze podataka

Sistemi za upravljanje
bazama podataka
Osnovne funkcije SUBP

Sistemi za upravljanje BP

You might also like