Professional Documents
Culture Documents
Baze Podataka PDF
Baze Podataka PDF
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
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
• 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:
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
BP - Osnovni pojmovi 22 / 66
Pojava tipa entiteta
• Pojava tipa entiteta
– model jednog realnog entiteta u IS
• Tip entiteta
– formalno, reprezentuje skup pojava:
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:
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)
BP - Osnovni pojmovi 25 / 66
Pojava tipa entiteta
• Primer:
Radnik
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 ≠ )
• 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})
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
BP - Osnovni pojmovi 35 / 66
Tip poveznika
• Tip poveznika (TP)
– formalno, struktura
BP - Osnovni pojmovi 36 / 66
Tip poveznika
• Tip poveznika (TP)
– reprezentuje skup pojava poveznika
BP - Osnovni pojmovi 37 / 66
Tip poveznika
• Primer:
– tip poveznika nad TE Student i Predmet:
Pohađa(Student, Predmet, {Semestar}, C1)
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
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)
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
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)
BP - Osnovni pojmovi 48 / 66
Logička struktura obeležja
• Mogući pristupi organizaciji LSO
(STE, RTE)
– 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
BP - Osnovni pojmovi 51 / 66
Logička struktura obeležja
• Primer
– nivo detaljnosti TE i TP
– pristup (A) – i TE i TP su čvorovi
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
Povera Ispit
Nastavnik
BP - Osnovni pojmovi 53 / 66
Logička struktura obeležja
• Primer
– nivo detaljnosti obeležja
Radnik
BP - Osnovni pojmovi 54 / 66
Logička struktura obeležja
• Primer
– nivo detaljnosti obeležja
Semestar
PrSif StSif
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
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
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
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
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
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.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SupplierFile ASSIGN TO "RELSUPP.DAT"
ORGANIZATION IS RELATIVE
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).
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.
BP – Koncepcija BP 10 / 45
Klasična organizacija datoteka
IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SupplierFile ASSIGN TO "RELSUPP.DAT"
ORGANIZATION IS RELATIVE
DATA DIVISION.
FD SupplierFile.
01 SupplierRecord.
PROCEDURE DIVISION.
PIC 99.
Begin.
OPEN OUTPUT SupplierFile.
OPEN INPUT SupplierFileSeq.
READ SupplierFileSeq
BP – Koncepcija BP 11 / 45
Klasična organizacija datoteka
IDENTIFICATION DIVISION.
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.
FD SupplierFile.
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
01 SupplierRecord. FD SupplierFile.
01 SupplierRecord.
02 SupplierCode PIC 99.
WORKING-STORAGE SECTION.
01 SupplierStatus PIC X(2).
FD SupplierFileSeq. 01 SupplierKey
PROCEDURE DIVISION.
PIC 99.
Begin.
READ SupplierFileSeq
BP – Koncepcija BP 12 / 45
Klasična organizacija datoteka
IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SupplierFile ASSIGN TO "RELSUPP.DAT"
DATA DIVISION.
FILE SECTION.
FD SupplierFile.
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).
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.
BP – Koncepcija BP 13 / 45
Klasična organizacija datoteka
IDENTIFICATION DIVISION.
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).
BP – Koncepcija BP 14 / 45
Klasična organizacija datoteka
• Čvrsta povezanost – primer COBOL
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 #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
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
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
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
BP – Koncepcija BP 37 / 45
Pogled
Program #n
PODŠEMA #1
Student_Fakultet
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
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
BP – Koncepcija BP
Baze podataka
Modeli 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
RADNIK
MBR IME PRZ ZAN
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
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)
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)
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']
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
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
BP – Modeli podataka
Baze 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
• Obeležje: Naziv_Ob
Naziv_Obeležja
Naziv_Obeležja
Radi
Radnik Projekat
Rukovodi
Isporučilac
Proizvod
Komponenta
Radnik
• Primeri
– DPREZIME((String, 30, ), )
– DDATUM((Date, , d '01.01.1900'), )
– DOCENA((Number, 2, d 5 d 10), )
– DPOZOCENA((DOCENA, , d 6), 6)
MBR DMBR
PRZ DPRZ
IME DIME
ZAN DZAN
BPJZ DBPJZ T
DPRZ String 30
DIME String 15
DZAN String 3
(0, M) (0, N)
Radnik Radi Projekat
(1, M) (0, N)
Radnik Radi Projekat
(1, M) (1, N)
Radnik Radi Projekat
(0, 1) (0, N)
Radnik Raspoređen Radno mesto
(1, 1) (0, N)
Radnik Raspoređen Radno mesto
(0, 1) (1, N)
Radnik Raspoređen Radno mesto
(1, 1) (1, N)
Radnik Raspoređen Radno mesto
(0, 1) (0, 1)
Radnik Je Osiguranik
(1, 1) (0, 1)
Radnik Je Osiguranik
(1, 1) (1, 1)
Radnik Je Osiguranik
(0, 1)
Radnik Rukovodi
Ima nadređenog
(0, M)
Deo Sastoji se
Je komponenta za
Mbr Spr
(0, M) (0, N)
Radnik Radi Projekat
Mbr ORM
(0, 1) (0, N)
Radnik Raspoređen Radno mesto
MBR BrPol
(0, 1) (0, 1)
Radnik Je Osiguranik
(0, M)
Deo Sastoji se
Je komponenta za
(0, N) (0, N)
Izvođenje
Student nastave Nastavnik
(1, N)
OZP Naz
Predmet
Mat1
Mat2
BPod
Fiz
A AB B
C ABC
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
A ABC B
AC C
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
C ABC
A AB B
C ABC
(1, 1) (0, N)
Radnik Raspoređen Radno mesto
(a, b) (1, 1)
Mbr Ime
(0, N)
Radnik Ima Dete
• Ima - identifikacioni TP
• Dete - identifikaciono zavisni TE
• Radnik - nadređeni (regularni) TE
• 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
(1, 1)
– klasifikaciono obeležje
• Zan - zanimanje radnika
(0, 1)
Radnik
(0, 1)
Radi
Zan
IS-A
(1, 1)
Projektant Programer Daktilograf
(a1, b1)
(a2, 1)
(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
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
Mbr OzRm
Mbr OzRm
Mbr OzRm
1 N
Radnik Raspoređen Radno mesto
Mbr OzRM
Mbr OzRM
Radnik Projekat
Mbr OzPrj
Mbr OzPrj
Raspoređen
...
?
ER model podataka 129 / 129
Baze 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
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)
}
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
BP – Koncepcija RMP 15 / 27
Relacioni model podataka
• Primer
– SELECT IME, PRZ, BIP
FROM Fakultet, Projektant
WHERE BIP > 5 AND
Fakultet.SFK = Projektant.SFK
BP – Koncepcija RMP 16 / 27
Relacioni model podataka
• Primer
– SELECT IME, PRZ, BIP
FROM Fakultet NATURAL JOIN Projektant
WHERE BIP > 5
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.
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.
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).
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.
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.
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.
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
• 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
D D2
D1
Di
Dk
– Zadata je i torka t2
– Neka je X = MBR+IME
– t2[X] = {(MBR, 210), (IME, Aca)}
r(R) A B C
t1 a1 b1 c1
t2 a2 b2 c2
t3 a1 b1 c2
rs A B
r A B a1 b1
a1 b1 a2 b2
a2 b2 a3 b3
s A B rs A B
a1 b1 a1 b1
a3 b3
rs A B
a2 b2
MBR IME
110 Ivo
111 Olja
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
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
MBR IME
101 Ana
110 Ivo
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
• Projekat({SPR, NAP},
{“Ne postoje dva projekta sa istom vrednošću za SPR. Svaki
projekat poseduje vrednost za SPR.”})
relaciona BP
dinamička (stalno pro-
menljiva kategorija)
sistema BP
{r1(R1),..., rn(Rn)}
Nivo ekstenzije
• 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
MBR MBRD
PRZ PRZD
IME IMED
ZAN ZAND
BPJZ BPJZD T
– oblast definisanosti
• niz od dve šeme relacije
– oblast interpretacije
• relacije nad šemama Ni i Nj
r A B s B C
a1 b1 b1 c1
a2 b2 b2 c1
b3 c2
r A B s C D
a1 b1 a1 b1
a2 a2 b2
a3 b2
– skup FZ se označava sa F
• F = {MBRIME, MBR+MES+GODBRC,...}
• Trivijalna FZ
– svaka FZ koja je zadovoljena u bilo kojoj relaciji
– svaka FZ XY, za koju važi Y X
– Primer
• MBRMBR, MBR, ABA,...
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
• 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
{r1(R1),..., rn(Rn)}
?
BP – Osnove RMP 109 / 109
Baze podataka
Osnove relacionog
modela podataka
Strukturalna, operacijska i
integritetna komponenta
relacionog modela podataka
BP – Osnove RMP
Organizacija datoteka
Translatorno meha-
ničko kretanje
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
Kb 512 B 1 KB 2 KB 4 KB 8 KB
?
OD – FSP i jedinice diskova 53 / 53
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
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
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)
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
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
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
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
*
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
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
*
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
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
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
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
Opština Adresa
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
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
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
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))
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
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
v Q N
p
v n1 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
dom(K)
0 vp - 1
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
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 n1 i q n1 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
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 slobodnih
lokacija u baketu
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
B ( B 1)
1 T n 1
Rn Ri ili Rn i R n
T i 1 B( B 1) i 1
Binarno
stablo 1 0
1 0 1 0
Pokazivači
ka baketima
d=3 b=4
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
N
B
b ln 2
– N – broj slogova
– b – faktor blokiranja
?
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 *
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
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, e1,...,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, e2,...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, e1,...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
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
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
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
BZ
• 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
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
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
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 h2
( 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) h1 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 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
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 E1h 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)
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
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) h1
2r
N N
hkp 1 log 2 r 1 , hmin 1 log 2 r 1
2r 2r
– visina polupraznog B+-stabla
h2 N
C 2(r 1) , N rC
h
pp
h
pp
(r 1) h2
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+
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 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
APLIKACIJA #1 APLIKACIJA #2
BP
APLIKACIJA #3
APLIKACIJA #n
t
Ti-1 Ti COMMIT
BP
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)
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)
A u radnoj
zoni T1
A u radnoj 1 0 0 0
zoni T2
T1
Ti-1 Ti+1
Ti
Ti+1
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
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 109 / 110
Sadržaj
• Namena i koncepcija SUBP
• Funkcije i struktura SUBP
• Arhitektura RSUBP / ORSUBP
• Rečnik podataka SUBP
• Nezavisnost
• Fleksibilnost
Sistemi za upravljanje
bazama podataka
Osnovne funkcije SUBP
Sistemi za upravljanje BP