SlideShare a Scribd company logo
1 of 50
Download to read offline
Algoritmi i
strukture podataka
Organizacija i struktura baza podataka
Leonardo Miljko
www.ckm.ba - Leonardo Miljko
Prezentacija nastala na osnovu knjige:
Brano Markić i Dražena Tomić,
Uvod u algoritme i strukture, Ekonomski fakultet , Mostar,2008.
Organizacija i struktura baza podataka
Razumjeti organizaciju i strukturu baze podataka je moguće samo
poznajući njezinu arhitekturu. Arhitektura baza podataka mora
ispuniti zahtjeve za učinkovitim pohranjivanjem podataka te
njihovo ažuriranje, dodavanje, brisanje i pretraživanje. Ti zahtjevi
rezultirali su stvaranjem posebnog softverskog paketa koji se zove
sustav za upravljanje bazama podataka.
ANSI/SPARC arhitektura baze podataka objavljena 1975. i danas služi
za prikaz arhitekture baze podataka.
DBMS-ovi (Data Base Management System) u potpunosti bazirani na
toj arhitekturi. Međutim, ona očito i jasno, na konceptualnoj
razini, pojašnjava suštinu arhitekture baze podataka.
ANSI – engl. American National Standards Institute (Američki nacionalni institut za standardizaciju),
SPARC – engl. Standards Planning and Requirements Committee (Komitet za planiranje i zahtjeve za
standarde)
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Prikaz ANSI/SPARC arhitekture baze podataka.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
ANSI/SPARC pristup dijeli arhitekturu baze podataka na tri razine:
 Konceptualna razina predstavlja logički pogled na čitavu bazu
podataka
 Vanjska razina je korisnički pogled na bazu podataka, a formira se
sukladno potrebama i ograničenjima korisnika u uporabi baze
podataka
 Unutarnja ili fizička razina opisuje fizičko implementiranje baze
podataka na konkretnom hardveru.
Unutarnja ili fizička razina (engl. storage level - razina pohranjivanja)
je dio arhitekture baze podataka bitan za organizaciju i strukturu
podataka unutar baze.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Sustav za upravljanje bazom podataka (DBMS) mora osigurati
formiranje i održavanje sve tri sheme (razine) baze podataka, kao i
preslikavanje među njima koje omogućuje:
• reorganiziranje unutarnje ili fizičke razine bez mijenjanja logičke tj.
konceptualne sheme
• promjenu konceptualne sheme bez mijenjanja postojeće vanjske
sheme.
Osnovni cilj koji se želi postići tom arhitekturom je fizička i logička
neovisnost podataka.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Fizička neovisnost podataka znači da promjena unutarnje (fizičke)
sheme ne zahtijeva promjenu aplikacijskih programa.
Logička neovisnost podataka znači da promjena konceptualne sheme
ne zahtijeva mijenjanje aplikacijskih programa.
Da bi se na fizičkoj razini baze podataka locirao (pronašao) određeni
podatak koji zahtijeva vanjska razina (aplikativni program), koristi
se nekoliko slojeva softver-a, a oni se razlikuju za svaki konkretni
DBMS. Svi oni na konceptualnoj razini imaju slična načela.
Jedan od osnovnih ciljeva razvoja baza podataka jest razdvajanje
podataka od aplikacija koje ih koriste, odnosno omogućavanje
neovisnog održavanja podataka, bez mijenjanja aplikacija
(programa) koji te podatke koriste.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
DBMS, upravljanje datotekom i upravljanje
diskom na konceptualnoj razini
www.ckm.ba - Leonardo Miljko
kako više softverskih slojeva može pronaći
određeni podatak pohranjen u bazi
podataka. Tipični koraci su:
DBMS određuje koji se slog traži, a
potom prenosi zahtjev softveru za
upravljanje datotekom (engl. file manager)
da taj slog pronađe .
Softver za upravljanje datotekom zatim
pronalazi blok s traženim slogom i zahtijeva
od softvera za upravljanje diskom (engl.
disk manager) da dohvati taj blok.
Softver za upravljanje diskom utvrđuje
fizičku lokaciju traženog bloka na disku i
upućuje neophodni zahtjev za I/O disk
operacijom
Organizacija i struktura baza podataka
• Na konceptualnoj razini, može se zaključiti da DBMS promatra
bazu podataka kao kolekciju slogova i taj pogled podržava
softverski sloj za upravljanje datotekom.
• Softver za upravljanje datotekom pak promatra bazu podataka
kao kolekciju blokova i taj pogled podržava softver za upravljanje
diskom koji promatra disk onakvim kakav on stvarno i jest.
• Softver za upravljanje diskom je dio operacijskog sustava računala.
Taj sloj softvera je odgovoran za sve ulazno/izlazne operacije i kao
takav on mora znati fizičke adrese. Na primjer, kada softver za
upravljanje datotekom traži dohvaćanje nekoga određenog bloka B,
softver za upravljanje diskom treba znati točno gdje je blok B na disku.
Preslikavanje između broja bloka i fizičkih adresa diska obavlja
softver za upravljanje diskom.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
• Jedna od osnovnih prednosti ovakve organizacije, ali ne i jedina,
jest da se sav programski kod koji je ovisan o vrsti uređaja (diska)
može izolirati unutar jedne komponente sustava (softvera za
upravljanje diskom) tako da sve komponente više razine, posebno
softver za upravljanje datotekom, mogu biti neovisne od
pojedinačnog uređaja (diska).
• Softver za upravljanje datotekom koristi mogućnosti softvera za
upravljanje diskom kako bi omogućio DBMS-u da „promatra“ disk
kao kolekciju datoteka. Svaki skup blokova u tom slučaju može
sadržavati nijednu ili više datoteka. Ovdje je bitno pripomenuti da
DBMS možda treba znati o postojanju skupova blokova, iako nije
odgovoran za upravljanje njima, a posebno DBMS treba znati
kada dvije datoteke dijele isti skup blokova ili kada dva sloga
dijele isti blok.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Računalni sustav ima nekoliko
različitih komponenti
(memorija) koje osiguravaju
pohranu podataka, a koje se
značajno razlikuju kako po
količini podataka koju mogu
pohraniti, tako i po brzini
pristupa pohranjenim
podacima.
Grafički prikaz hijerarhije
memorija,
na konceptualnoj razini.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Uočljivo da se na najnižoj razini hijerarhije memorija nalazi pričuvna
(cache) memorija. Podaci koji se nalaze u cache memoriji su kopije
određenih lokacija glavne memorije. Jedinica transfera između cach i
glavne memorije je obično mali broj bajtova. Kada računalo izvodi
zadane instrukcije prvo traži oboje i instrukcije i podatke koje instrukcije
koriste u cache memoriji, pa ako ih tu ne pronađe traži ih u glavnoj
memoriji.
Sljedeća razina u hijerarhiji memorije je glavna memorija, koja je središte
svih aktivnosti računala, kao što su izvršavanje instrukcija, manipuliranje
podacima i slično. Glavna memorija ima random pristup (slučajan
pristup) što znači da se bilo koji bajt može dobiti za istu količinu
utrošenog vremena.
Sljedeću razinu u hijerarhiji memorija je tzv. sekundarna memorija. Ona je
mnogo sporija ali bitno većeg kapaciteta za pohranu podataka od glavne
memorije. Današnja računala uglavnom koriste diskove kao sekundarnu
memoriju. www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Disk podržava i virtualnu memoriju i datotečni sustav.
Virtualna memorija omogućava pohranjivanje varijabli i podataka iz
datoteka koje koriste programi (aplikacije). Kako je virtualni
memorijski prostor na disku značajno veći nego uobičajena glavna
memorija, to se najveći dio sadržaja virtualne memorije
pohranjuje na disku. Sadržaj virtualne memorija se u blokovima
„prebacuje“ između diska i glavne memorije. Obično se blokovi
podataka u glavnoj memoriji nazivaju stranice.
Postoji i tzv. glavna memorija DBMS-a, odnosno namjera da DBMS
upravlja podacima putem glavne memorije. To ima značajne
prednosti ukoliko su to „manje“ količine podataka i mogu ostati u
glavnoj memoriji tj. ne mora se koristiti diskovni prostor za
virtualnu memoriju.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
 Međutim, velike baze podataka moraju osigurati upravljanje svojim
podacima izravno na disku. Datoteke se premještaju između diska i glavne
memorije u blokovima, a pod kontrolom su operacijskog sustava ili DBMS-a.
Premještanje bloka s diska u glavnu memoriju se naziva čitanje s diska (eng.
disk read), dok se premještanje bloka iz glavne memorije na disk naziva
zapis na disk (engl. disk write).
 DBMS „radije“ upravlja blokovima podataka samostalno umjesto da taj
zadatak prepusti dijelu operacijskog sustava – sustavnom upravljanju
datotekama.
 Tercijarna memorija omogućava pohranjivanje ogromnih količina
podataka a karakterizira je značajno veća brzina I/O operacija nego kod
sekundarne memorije.
 Glavna memorija nudi jednako vrijeme pristupa bilo kojem podatku, a ni
disk nema većih odstupanja u brzini pristupa bilo kom podatku s diska, ali
kod tercijarne memorije vrijeme pristupa značajno varira, ovisno o blizini
I/O točke traženom podatku.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Osnovni pokretač razvoja struktura za pohranjivanje
i tehnologije pristupa podacima pohranjenim u bazama podataka
to što je vrijeme pristupa disku značajno sporije
nego vrijeme pristupa glavnoj memoriji.
Zato je osnovni cilj povećanja performansi baza podataka
minimizirati broj pristupa disku tj. diskovnih I/O operacija.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Prikaz podataka u bazi je prijelaz ili preslikavanje logičkog
(konceptualnog) pogleda na bazu podataka na fizičku razinu baze
podataka.
Na konceptualnoj razini bazu podataka čine (relacijske baze
podataka) relacija i atributi relacije, odnosno, kod objektno
orijentiranih baza podataka, klasa i njezini atributi.
Na primjer, ako na konceptualnoj razini treba prikazati podatke o djelatniku,
onda ukoliko je riječ o relacijskoj bazi, formira se relacija Djelatnik s
potrebnim atributima. Podaci koje je potrebno znati o svakom djelatniku
su: JMB, ime, prezime, datum rođenja i spol. Ali, ta relacija nam ništa ne
govori o konkretnim, stvarnim vrijednostima tih atributa za svakoga
pojedinog djelatnika. Stvarne vrijednosti pohranjuju se (pomoću
aplikativnih programa – tj. vanjske razine baze podataka) u n-torke
relacije koje u biti čine slogove na fizičkoj razini baze podataka.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Preslikavanje s konceptualne na fizičku razinu baze podataka
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Uočljivo je da se relacija (na konceptualnoj razini) preslikava u n-torke tj.
slogove s zaglavljem na fizičkoj razini baze podataka. Slogovi se
sastoje od polja (atributa relacije), s tim da na fizičkoj razini svako
polje ima određenu duljinu u bajtovima i lokaciju koja je definirana
relativnom adresom unutar sloga.
Svakom zaglavlju pridružuju se n-torke tj. slogovi koji sadrže stvarne
vrijednosti atributa relacije.
Ovisno o tome spominju li se u kontekstu datotečnih sustava i
programskih jezika kao što su C, C++ ili Java, relacijskim ili objektno
orijentiranim bazama, često se za gotovo iste koncepte koriste
različiti izrazi.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Usporedni pregled izraza. Ipak, određene razlike postoje, npr. relacija
nema metode dok klasa obično ima metode.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
ELEMENTI PODATAKA I POLJA
Osnovni podatkovni elementi su vrijednosti atributa u relacijskim ili
objektno orijentiranim bazama podataka. Oni se prikazuju
«poljima».
Polja se objedinjuju i formiraju «veće» elemente za pohranu
podataka: slogove, blokove i datoteke. Pošto je relacija skup n-
torki (redaka), a one su slične strukturi sloga, može se pretpostaviti
da se svaka n-torka pohranjuje na disk kao slog.
Jedan slog može zauzeti čitav ili dio bloka na disku, a unutar sloga
postoji po jedno polje za svaki atribut relacije (objekta).
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
SLOGOVI Atributi se polja koja se grupiraju zajedno u slogove. Zato je
svaka n-torka (redak) relacije slog. Također, govoreći općenito, svaki tip
sloga u sustavu za upravljanje bazom podataka mora imati shemu koja je
pohranjena u bazi podataka. Shema sadrži nazive i tipove podataka polja
unutar sloga, kao i njihovu relativnu poziciju (engl. «offset») unutar
sloga. Sustav za upravljanje bazom podataka konzultira shemu uvijek
kada treba pristupiti dijelovima sloga (poljima).
• Ako su sva polja unutar sloga fiksne duljine, onda je to najjednostavnija
situacija.
• Npr. relacija DJELATNIK ima šest polja:
jmb, 13-bajtni znakovni niz; ime, tip CHAR(20), 20-bajtni znakovni niz ; prezime,
također tip CHAR(20), 20-bajtni znakovni niz; datum_rodenja, tip DATE,
predstavljen s 10 bajtova; spol, 8-bajtni znakovni niz; napomena, tip
VARCHAR(255) što predstavljamo s 256-totnim bajtom
Jednostavno je izračunati da slog relacije DJELATNIK zauzima: 13+20+20+10+8+256
= 327 bajtova
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Prikaz tog sloga dan je na slici. Naznačena je relativna pozicija svakog
polja, a ona je u biti broj bajtova. Tako npr. jmb počinje na 0-tom,
ime na 13-tom, prezime na 33-ćem, datum rođenja na 53-ćem,
spol na 63-ćem i napomena na 71-vom bajtu.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
PRIKAZ BLOKOVA I ADRESA SLOGOVA
Slog se može prepoznati po svom bloku i relativnoj poziciji svoga
prvog bajta unutar bloka. Današnje se baze podataka obično
sastoje od serverskog procesa koji osigurava podatke pohranjene
na sekundarnoj memoriji (disku) za jedan ili više klijent procesa
koji su u biti aplikacije koje koriste podatke.
Klijent aplikacije koriste konvencionalni «virtualni» adresni prostor, a
on je danas obično 64 bita tj. oko 264 različitih adresa. Operacijski
sustav ili DBMS odlučuju koji dijelovi adresnog prostora se
trenutno alociraju u glavnoj memoriji, a hardver preslikava
(mapira) virtualni adresni prostor u fizičke lokacije u glavnoj
memoriji. U cilju pojednostavljenja, može se zanemariti
preslikavanje virtualno-u-fizičko, tako da se adresni prostor klijenta
može promatrati kao da je riječ o glavnoj memoriji.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Podaci na serveru se nalaze u adresnom prostoru baze podataka. Adresa tog
prostora ukazuje na blokove i vjerojatno relativne pozicije unutar bloka.
Razlikuje se nekoliko načina prikaza adresa ovog adresnog prostora:
1. Fizičke adrese. Postoje nizovi bajtova koji određuju mjesto bloka ili sloga unutar
sekundarne memorije (diska):
 centralnog računala (engl. host) - na njemu je sekundarna memorija (ako je
baza podataka na više računala)
 oznake diska ili drugog uređaja na kojem se nalazi blok
 broja cilindara diska
 broja tragova unutar cilindra
 broja blokova unutar traga
 relativne pozicije početka sloga unutar bloka.
2. Logičke adrese. Svaki blok ili slog ima «logičku adresu». Ona je proizvoljan niz
bajtova fiksne duljine. Posebna tablica (map table) služi za povezivanje logičkih s
fizičkim adresama, a pohranjena je na disku na poznatoj lokaciji.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Uvođenje tablice za preslikavanje («map» tablice) na prvi pogled se
može učiniti kao kompliciranje. Međutim, ona daje značajnu
fleksibilnost sustava. Naime, ukoliko se koristi ta tablica, onda svi
pokazivači na slog pokazuju na nju, i jedino što se mora napraviti
prigodom premještanja ili brisanja sloga jest promijeniti ulaz za taj
slog u tablici.
• Jedna od vrlo korisnih kombinacija fizičkih i logičkih adresa jest
držanje u svakom bloku tzv. offset tablice koja sadrži sve relativne
pozicije slogova unutar bloka.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Uočljivo da tablica raste od početka prema kraju bloka, dok se slogovi smještaju
počevši od kraja bloka. Ovakva strategija je korisna posebno kada su slogovi
različite duljine, jer se tada unaprijed ne zna koliko slogova će stati u blok, i ne
mora se inicijalno dodijeliti fiksna veličina zaglavlja bloka u tablici. Adresa sloga
je tada fizička adresa bloka plus relativna pozicija ulaza u «offset» tablicu bloka
za taj slog. Ovakva razina preusmjeravanja unutar bloka nudi mnoge prednosti
logičke adrese, bez potrebe za postojanjem globalne «map» tablice :
• može se premjestiti slog unutar bloka i sve što treba uraditi jest promijeniti ulaz
sloga u «offset» tablici, pokazivači na slog će ga još uvijek moći naći
• može se dopustiti premještanje sloga u drugi blok ako su ulazi «offset» tablice
dovoljno veliki da drže «preusmjerenu adresu» za taj slog.
• ako se slog obriše, može se u «offset» tablici postaviti graničnik (engl.
tombstone), specijalna vrijednost koja označava da je slog obrisan. Nakon što se
slog obriše, pokazivači na taj slog vode do graničnika, nakon čega se ili pokazivač
zamjenjuje null pokazivačem ili se podatkovna struktura modificira na drugi
način, kako bi odrazila brisanje sloga. Ako se ne bi postavi graničnik, pokazivač bi
mogao voditi do nekoga novog sloga i prouzrokovati iznenađujući i pogrešan
rezultat.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Svaki blok, slog, objekt ili drugi referentni podatak ima dva oblika
adrese:
• adresa u serverskom adresnom prostoru baze podataka, koja je
obično niz od osam ili više bajtova koji lociraju stavku (item) u
sekundarnoj memoriji računala (disku). Ta se adresa najčešće
naziva i adresa baze podataka.
• adresa u virtualnoj memoriji (pod uvjetom da se stavka trenutno
nalazi u virtualnoj memoriji). Ta adresa je obično duljine četiri
bajta i najčešće se naziva memorijska adresa.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
PODACI I SLOGOVI VARIJABILNE DULJINE
U dosadašnjim razmatranjima jedna od osnovnih pretpostavki je bila
da je svaki podatak fiksne duljine. Međutim, često je potrebno
prikazati i sljedeće:
• podatak promjenjive veličine – (polja varijabilne duljine). To znači
da se koristi samo onoliko prostora kolika je stvarna duljina polja
• ponavljajuća polja se odnose na prikaz tipa veze između slogova
više prema više. Tada treba pohraniti onoliko referenci koliko je
povezanih objekata s danim objektom
• slogove varijabilnog formata kada unaprijed nisu poznata polja
koja čine slog, odnosno broj pojavljivanja svakoga pojedinog polja
• polja koja zauzimaju veliki memorijski prostor (npr. slike (GIF
formati, filmovi (MPEG formati) i slično
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
SLOGOVI S POLJIMA VARIJABILNE DULJINE
Ukoliko je jedno ili više polja unutar sloga varijabilne duljine, slog
mora sadržavati dovoljno informacija, kako bi se moglo pronaći
bilo koje polje unutar sloga. Jednostavna, ali učinkovita shema je
postaviti sva polja fiksne duljine ispred polja varijabilne duljine.
Tada zaglavlje sloga sadrži:
 duljinu sloga
 pokazivače (tj. relativne pozicije) na početke svih polja varijabilne
duljine. Međutim, ukoliko se polja varijabilne duljine uvijek
pojavljuju u istom redoslijedu, onda pokazivač ne treba jer je
poznato da slijedi odmah nakon polja fiksne duljine.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
SLOGOVI S PONAVLJAJUĆIM POLJIMA
Ako slog sadrži varijabilan broj polja i ako je svako polje – F fiksne
duljine, onda je dovoljno grupirati sva polja F i pokazivač postaviti
u zaglavlje sloga. Naime, neka je L broj bajtova za neko polje F
označen. Slijedi da se relativnoj poziciji za polje F dodaju svi
cjelobrojni umnošci od L tj. 0L, 1L, 2L, 3L i tako dalje do kraja,
odnosno do pozicije koja označava relativnu poziciju za polje iza F.
Na osnovu duljine sloga zna se koliko ima pokazivača na članove
obitelji.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
SLOGOVI VARIJABILNOG FORMATA
Složenija situacija od prethodno opisane (varijabilna duljina polja i
ponavljajuća polja) je promjenjiva shema sloga. Jednostavan
primjer slogova varijabilnog formata jest niz označenih polja (engl.
tagged fields), od kojih se svako sastoji od:
• informacije o ulozi tog polja, kao što je:
– naziv atributa ili polja
– tip polja, ako to nije očigledno iz imena polja ili neke već
raspoložive sheme informacija
– duljina polja, ako to nije očigledno iz tipa polja.
• vrijednosti polja.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
POLJA VELIKOG KAPACITETA – BLOBS
Skraćenica BLOBS stoji za binarni veliki objekti (engl. Binary Large
ObjectS), a svrha im je omogućiti pohranu u polje baze podataka
slike, filma, audio zapisa, radarskih signala i sl. Kada se govori o
BLOB polju, moraju se razumjeti dvije stvari: način pohrane BLOBs-
ova i način pristupa BLOBS poljima.
• Zbog svoje veličine BLOBS polja se pohranjuju na više blokova u
slijedu. Uobičajeno je da se ti blokovi alociraju na poseban način,
vrlo često na cilindar ili na cilindre diska kako bi se s BLOBS-ovima
moglo efikasno manipulirati. Moguće je, također, pohraniti BLOBS i
na vezanu listu blokova. Vrlo često se radi osiguranja brzine
pristupa BLOBS-u on se dijeli (engl. stripe) i pohranjuje na nekoliko
diskova.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
PROSTOR ZA SLOG VEĆI OD BLOKA
Primjer slogova koji se ne mogu smjestiti na jedan blok su bili BLOBS-ovi.
Slogovi koji zauzimaju više blokova se nazivaju razapinjući „spanned“.
Razapinjući slogovi se mogu pojaviti kada se cijeli slogovi pohranjuju u
blok, što dovodi do velikog gubitka prostora. Zato je poželjno jedan slog
podijeliti na dva ili više blokova. Dio sloga koji ostaje u jednom bloku
naziva se fragment sloga.
• Ako slog može biti razapinjući, onda taj slog i njegov fragment mora imati
neke dodatne informacije u zaglavlju :
• zaglavlje sloga ili fragmenta ima poseban bit koji označava fragment
• potreban je još jedan bit koji daje informaciju da li je to prvi ili zadnji
fragment za pripadajući slog
• ako postoji sljedeći i/ili prethodni fragment za isti slog, onda fragmentu
trebaju pokazivači na te druge fragmente.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
UMETANJE, BRISANJE I AŽURIRANJE SLOGOVA (INSERT, DELETE, UPDATE)
Rad s podacima pohranjenim u bazi podataka podrazumijeva stalno
dodavanje novih podataka, izmjenu i brisanje postojećih. Operacije
mogu na fizičkoj razini baze podataka prouzročiti određene probleme. Te
operacije su složene za slogove fiksne i promjenjive duljine.
Kod umetanja novih podataka u već postojeću relaciju (ili u klasu), moguće
su sljedeće osnovne situacije:
 slogovi relacije se ne pohranjuju u određenom redoslijedu
 slogovi relacije (n-torke) se pohranjuju u nekom fiksnom redoslijedu (npr.
sortirani prema primarnom ključu).
Ukoliko se slogovi (n-torke) relacije ne pohranjuju u određenom redoslijedu,
onda je za umetanje (engl. insert) novog sloga potrebno ili pronaći blok s
nešto praznog prostora ili uzeti novi blok.
Međutim, situacija se usložnjava ako se slogovi relacije (n-torke) pohranjuju
u nekom redoslijedu.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Indeksne strukture
Da bi se u potpunosti razumjela fizička razina pohrane podataka unutar
baza podataka, neophodno je proanalizirati kako se mogu prikazati čitave
relacije, odnosno ekstenti klasa. Naime, nije dovoljno samo razasuti na
različitim blokovima slogove (n-torke relacije) ili objekte klase jer je tada
teško odgovoriti i na najjednostavnije upite tipa SELECT * FROM
DJELATNIK (tj. prikazati sadržaj svih n-torki relacije DJELATNIK).
Najjednostavnije rješenje je sekvencijalno (jedan za drugim) posjetiti
svaki slog relacije DJELATNIK tj. sve blokove na kojima su slogovi relacije
DJELATNIK. Pretpostavka je da postoji dovoljno informacija u zaglavlju
svakog bloka: gdje u bloku podataka počinje slog i kojoj relaciji pripada.
Rezerviranjem blokova ili možda cilindara diska samo za danu relaciju mogu
se postići mala poboljšanja. Pretpostavka je da određeni blokovi na
cilindrima diska sadrže slogove relacije DJELATNIK. Nije potrebno
pregledati cijeli disk kako bi se prikazali svi slogovi relacije.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Ako je potrebno pronaći sve slogove relacije DJELATNIK za koje je
vrijednost atributa spol jednak žena: SELECT * FROM DJELATNIK
WHERE spol='žena' onda je potrebno izgraditi indeksnu strukturu.
Indeks je vrijednost atributa (jednog ili više polja) u relaciji pomoću
koga se može pronaći cijeli slog. Indeksi se pohranjuju u posebnu
datoteku. Nju čine slogovi s dvije vrijednosti: vrijednost podatka i
pokazivač. Vrijednost podatka je vrijednost polja u slogu, a
pokazivač je fizička adresa sloga.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Cilj kreiranja indeksne datoteke je ubrzati pretraživanje.
Međutim, indeksi imaju i određene nedostatke. Prvi je usporavanje
operacija umetanja, brisanja i ažuriranja slogova. Na primjer, svaki
put kada se doda slog u datoteku podataka, treba dodati novi
indeks u datoteku indeksa.
Nažalost, ne postoje opća pravila kako kreirati indekse u bazi
podataka. Administrator baze podataka treba odgovoriti na pitanje
je li važnija operacija pretraživanja ili ažuriranja. Odgovor na to
pitanje je presudan za postavljanje ili nepostavljanje indeksa.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
B-STABLO
Indeksna datoteka može biti velika datoteka kod baza podataka koje
zauzimaju veliki memorijski prostor. Takvu indeksnu datoteku je
teško pretražiti. Zato je nužno poboljšati organizaciju samog
indeksa. B-stablo je jedno takvo rješenje. To je organizacija indeksa
(struktura indeksa) koju podržava većina relacijskih baza podataka.
Jedan primjer B-stabla, na slici su vrijednosti 6, 8, 12, …, 97, 99 su
vrijednosti polja indeksa.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Stabla B* i B+
B stabla su efikasna u pretraživanju podataka. Efikasnost operacije
umetanja se može povećati. U opisanom algoritmu umetanja
ključa u čvor B-stabla bilo je potrebno dijeliti čvor. Promatra se
uvijek čvor roditelj i razlikuju dva slučaja:
a) u čvoru ima još mjesta za umetanje ključa i vrijednost ključa se
može pridružiti čvoru. Operacija umetanja je dovršena.
b) čvor je popunjen s maksimalnim brojem ključeva (maksimalni broj
ključeva je za jedan manji od reda B-stabla i jednak je (m-1), m je
red B-stabla. Novi ključ k se dodaje tom čvoru i dobiva čvor s m
ključeva
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
HASH INDEKS (hash adresiranje) je rezultat transformacije vrijednosti
atributa pomoću hash funkcije. Hash adresiranje ili jednostavno samo
hashing je tehnika koja osigurava izravan i brz pristup određenom slogu
pomoću poznate vrijednosti određenog polja. Polje je obično, ali ne i
neophodno, primarni ključ.
Algoritam hashiranja:
 u bazi podataka slog se smješta na lokaciji čija je adresa (RID), ili možda
samo broj bloka, izračunata primjenom hash funkcije na vrijednost nekog
polja tog sloga. Izračunata adresa se naziva hash adresa.
 tijekom pohranjivanja sloga, DBMS mu izračunava hash adresu i daje
instrukciju softveru za upravljanje datotekom da smjesti slog točno na tu
poziciju (adresu).
 da bi se pronašao slog pohranjen na hash adresi, DBMS na temelju
vrijednosti polja transformira tu vrijednost u fizičku adresu i daje
instrukciju softveru za upravljanje datotekom da dohvati slog na
izračunatoj poziciji (adresi).
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
HASH INDEKS
 Jedan od nedostataka hashinga. „Fizički slijed» slogova unutar
datoteke sigurno neće biti i redoslijed primarnog ključa, niti bilo
koji drugi redoslijed koji bi imao razumnu logičku interpretaciju. U
biti, za fizički slijed slogova unutar datoteke s hash strukturom
obično se kaže da ne predstavlja nikakav poseban logički slijed.
 Druga slabost hashinga je kolizija. Ona nastupa kada dva ili više
različitih slogova imaju istu hash adresu.
Rastezljivi hashing
• Rastezljivi hashing (engl. extendable hashing) je varijacija osnovne
ideje hashinga koja ublažava prethodno opisane slabosti. U biti,
rastezljivi hashing jamči da broj potrebnih pristupa disk da bi se
locirao određeni slog, neće biti veći od dva. Najčešće je to samo
jedan, ma kako datoteka bila velika.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Multidimenzijski indeksi
Prikazane indeksne strukture su tzv. jednodimenzijski indeksi. Ti indeksi
služe za ubrzanje operacije pretraživanja. Ključ pretraživanja je jedan
atribut (polje), odnosno može biti i kombinacija dva ili više atributa,
ali i dalje su to jednodimenzijski indeksi jer se i u tom slučaju
promatra kao jedinstveni ključ za pretraživanje.
Naime, B-stablo polazi od toga da su svi ključevi sortirani, dok hash
indeks se može izračunati samo za unaprijed poznatu vrijednost
ključa.
Međutim, postoje aplikacije u kojima je pogled na podatke
dvodimenzijski ili multidimenzijsi. Dvije su osnovne kategorije tih
aplikacija:
• geografski informacijski sustavi (GIS)
• podatkovne kocke (engl. data cubes)
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Multidimenzijski indeksi
 Geografski informacijski sustavi (GIS) pohranjuju objekte obično u
dvodimanzijskom prostoru, a objekti mogu biti točke ili različiti
oblici (ceste, kuće, mostovi, vodovodne cijevi, električni kablovi i
sl.). Većina upita vezanih za GIS nisu uobičajeni SQL upiti, iako se,
uz određene napore, mogu izraziti i pomoću SQL-a.
 Podatkovne kocke (data cubes), odnosno analiza podataka pomoću
više dimenzija (multidimenzijski pristup), danas se uglavnom
spominju vezano za sustave za potporu odlučivanju i skladišta
podataka.
Indeksne strukture koje podržavaju upite nad više dimenzija, spadaju
u jednu od sljedeće dvije kategorije :
– pristupi slični hash-tablicama
– pristupi slični stablima.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Strukture slične hash strukturama za višedimenzijske podatke
Dvije podatkovne strukture poopćavaju hash tablice koje se kreiraju
samo pomoću vrijednosti jednog atributa. Pokazivač na pretinac je
funkcija više atributa ili dimenzija. Jedna takva struktura je
«rešetkasta (grid) datoteka», a druga «podijeljena hash funkcija».
• Rešetkaste datoteke
Ideja rešetkaste (grid) datoteke je grupirati podatke tako da se mogu
smjestiti u rešetku koja se formira na temelju vrijednosti
dimenzija.
• Podijeljena hash funkcija
Hash funkcija može uzeti vrijednosti više atributa kao argument, iako
se obično služe vrijednostima jednog atributa.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Strukture slične stablima za višedimenziske podatke
Drugi tip struktura koji se, osim struktura sličnih hash datotekama,
koristi za više-dimenzijske podatke su strukture slične stablima.
Ove strukture su posebno korisne za upite bazirane na opsegu
vrijednosti, odnosno za upite bazirane na najbližim vrijednostima
kod višedimenziskih podataka.
Četiri osnovne strukture slične stablima:
 Indeksi višestrukih ključeva
 Kd-stabla
 Quad stabla
 R-stabla
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Indeksi višestrukih ključeva (Multiple-key indexes)
Ukoliko, na primjer, postoji nekoliko atributa koji predstavljaju
dimenzije za točke podataka, te ukoliko se želi osigurati potpora za
upite bazirane na opsegu ili upite bazirane na najbližoj vrijednosti,
onda jednostavna shema u obliku stabla za pristup tim točkama je
indeks od indeksa. Općenito promatrano, radi se o stablu u kojem
su čvorovi na svakoj razini indeksi nekog atributa.
www.ckm.ba - Leonardo Miljko
Korijen stabla je indeks prvog od
dva atributa. Taj indeks može biti
bilo koji tip standardnog indeksa,
kao što je B-stablo ili hash
tablica. Indeks je povezan s
vrijednosti ključa za
pretraživanje tj. vrijednostima
prvog atributa, i on je pokazivač
na drugi indeks.
Organizacija i struktura baza podataka
Kd-stabla (k-dimenzijsko stablo pretraživanja) je podatkovna struktura
koja poopćava binarno stablo pretraživanja na višedimenzijske
podatke. Ideja kd-stabla se može prilagoditi i za pohrane podataka na
diskovima u blokovima.
Kd-stablo je binarno stablo u kojem lijevo dijete čvora roditelj je manje,
a desno veće od roditelja. Isti atribut se zadržava na jednoj razini (npr.
atribut plaća je na razini 1, 3, a atribut dob na razinama 2 i 4). Drugim
riječima, atributi na različitim razinama stabla su različiti pri čemu se
atributi (dimenzije) smjenjuju (rotiraju) na pojedinim razinama.
Ideja kd-stabla je primjenjiva i na sekundarnu memoriju (disk), ali je
potrebno učiniti dvije promijene:
• unutarnji čvorovi imaju jednu vrijednost atributa i pokazivače na
lijevo i desno dijete
• listovi stabla su blokovi podataka. Oni sadrže određen broj slogova
ovisno o kapacitetu bloka.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
Quad stabla
Kod quad stabla, svaki unutarnji čvor odgovara četverokutnom
području s dvije dimenzije, ili k-dimenzijskoj kocki s k dimenzija.
Ako broj točaka u četverokutnom području nije veći od prostora u
bloku, onda se to četverokutno područje može promatrati kao list
stabla, i prikazati blokom koji sadrži njegove točke. Ako ima previše
točaka i ne mogu stati u blok, onda se četverokutno područje
promatra kao unutarnji čvor čija djeca korespondiraju s njegova
četiri kvadranta.
www.ckm.ba - Leonardo Miljko
Organizacija i struktura baza podataka
R-stabla (stablo regije) je podatkovna struktura koja primjenjuje principe
B-stabla na višedimenziske podatke, s tim da R-stablo predstavlja
podatke koji se sastoje od dvodimenziskih ili višedimenziskih
područja, a ona se nazivaju podatkovna područja. Unutarnji čvor R-
stabla odgovara nekom unutarnjem području, ili samo području koje
nije podatkovno područje. U suštini, područje može biti različitog
oblika, iako je ono u praksi najčešće pravokutnik. R-stablo umjesto
ključeva ima potpodručja koja predstavljaju sadržaj njegove «djece».
www.ckm.ba - Leonardo Miljko
Točkasti pravokutnici su podpodručja povezana
s četvero njihove «djece». Može se primijetiti
da podpodručja ne pokrivaju cijelo područje,
što je prihvatljivo sve dok su svi podaci
područja, koja leže unutar većeg područja,
unutar jednog od manjih područja. Ukoliko
to nije slučaj, dozvoljeno je da podpodručja
imaju prekoračenja, ali je poželjno da ona
budu što manja.
Organizacija i struktura baza podataka
Bitmap indeksi
Bitmap indeks za polje F je skup bit-vektora duljine n. Jedan vektor se
pridružuje jednoj mogućoj vrijednosti polja F., po jednog za svaku
moguću vrijednost koja se može pojaviti u polju F. Vektor za
vrijednost «v» ima 1 na poziciji «i» ako i-ti slog ima «v» u polju F,
odnosno ima 0 ako nema te vrijednosti.
Upravljanje bitmap indeksima postavlja najmanje tri bitna pitanja na koja
treba odgovoriti :
 pronaći bit-vektor za zadanu vrijednost, ili bit-vektore koji odgovaraju
vrijednostima na zadanom opsegu. kako to efikasno uraditi?
 kako efikasno pristupiti slogovima ako je rezultat upita skup slogova?
 kako uskladiti bitmap indeks s promjenama koje nastaju dodavanjem
ili brisanjem slogova?
www.ckm.ba - Leonardo Miljko
Hvala !
Leonardo Miljko
diplomirani inženjer
elektrotehnike,
računarstva i
informatike
Pitanja?
www.ckm.ba - Leonardo Miljko

More Related Content

Viewers also liked

Interbarometro diciembre2016
Interbarometro diciembre2016Interbarometro diciembre2016
Interbarometro diciembre2016Christian Monzón
 
Local projects update,
Local projects update,Local projects update,
Local projects update,City of Corona
 
Local projects update, 03 16-2016
Local projects update, 03 16-2016Local projects update, 03 16-2016
Local projects update, 03 16-2016City of Corona
 
Rodne i-nerodne-grane-jabuke-i-kruc5a1ke
Rodne i-nerodne-grane-jabuke-i-kruc5a1keRodne i-nerodne-grane-jabuke-i-kruc5a1ke
Rodne i-nerodne-grane-jabuke-i-kruc5a1kedominator1979
 
Backend, MVC, languages and frameworks for Backend
Backend, MVC, languages and frameworks for BackendBackend, MVC, languages and frameworks for Backend
Backend, MVC, languages and frameworks for BackendDragos Strugar
 
Algoritmi i strukture_podataka_2016-02_v01
Algoritmi i strukture_podataka_2016-02_v01Algoritmi i strukture_podataka_2016-02_v01
Algoritmi i strukture_podataka_2016-02_v01Leonardo Miljko
 
Lepe pregrade u stanu i klizna vrata
Lepe pregrade u stanu i klizna vrataLepe pregrade u stanu i klizna vrata
Lepe pregrade u stanu i klizna vrataAmbijent Dizajn
 
Algoritmi i strukture_podataka_2016-03_v01
Algoritmi i strukture_podataka_2016-03_v01Algoritmi i strukture_podataka_2016-03_v01
Algoritmi i strukture_podataka_2016-03_v01Leonardo Miljko
 
Algoritmi i strukture_podataka_2016-04_v01
Algoritmi i strukture_podataka_2016-04_v01Algoritmi i strukture_podataka_2016-04_v01
Algoritmi i strukture_podataka_2016-04_v01Leonardo Miljko
 
Guidelines for radio programme production
Guidelines for radio programme productionGuidelines for radio programme production
Guidelines for radio programme productionAlex Taremwa
 
Zavarivanje
ZavarivanjeZavarivanje
Zavarivanjeigoriv
 

Viewers also liked (20)

Interbarometro diciembre2016
Interbarometro diciembre2016Interbarometro diciembre2016
Interbarometro diciembre2016
 
Local projects update,
Local projects update,Local projects update,
Local projects update,
 
Local projects update, 03 16-2016
Local projects update, 03 16-2016Local projects update, 03 16-2016
Local projects update, 03 16-2016
 
La ciencia en la cocina
La ciencia en la cocinaLa ciencia en la cocina
La ciencia en la cocina
 
17
1717
17
 
La ofimatica
La ofimatica La ofimatica
La ofimatica
 
Rodne i-nerodne-grane-jabuke-i-kruc5a1ke
Rodne i-nerodne-grane-jabuke-i-kruc5a1keRodne i-nerodne-grane-jabuke-i-kruc5a1ke
Rodne i-nerodne-grane-jabuke-i-kruc5a1ke
 
Backend, MVC, languages and frameworks for Backend
Backend, MVC, languages and frameworks for BackendBackend, MVC, languages and frameworks for Backend
Backend, MVC, languages and frameworks for Backend
 
Algoritmi i strukture_podataka_2016-02_v01
Algoritmi i strukture_podataka_2016-02_v01Algoritmi i strukture_podataka_2016-02_v01
Algoritmi i strukture_podataka_2016-02_v01
 
Lepe pregrade u stanu i klizna vrata
Lepe pregrade u stanu i klizna vrataLepe pregrade u stanu i klizna vrata
Lepe pregrade u stanu i klizna vrata
 
Ecluse ecossaise
Ecluse ecossaiseEcluse ecossaise
Ecluse ecossaise
 
Algoritmi i strukture_podataka_2016-03_v01
Algoritmi i strukture_podataka_2016-03_v01Algoritmi i strukture_podataka_2016-03_v01
Algoritmi i strukture_podataka_2016-03_v01
 
Teks Kejohanan Sukan SK Bukit Rahmat
Teks Kejohanan Sukan SK Bukit RahmatTeks Kejohanan Sukan SK Bukit Rahmat
Teks Kejohanan Sukan SK Bukit Rahmat
 
Algoritmi i strukture_podataka_2016-04_v01
Algoritmi i strukture_podataka_2016-04_v01Algoritmi i strukture_podataka_2016-04_v01
Algoritmi i strukture_podataka_2016-04_v01
 
Guidelines for radio programme production
Guidelines for radio programme productionGuidelines for radio programme production
Guidelines for radio programme production
 
Zavarivanje
ZavarivanjeZavarivanje
Zavarivanje
 
Proizvodi od drveta
Proizvodi od drvetaProizvodi od drveta
Proizvodi od drveta
 
Memoria centro cultural
Memoria centro culturalMemoria centro cultural
Memoria centro cultural
 
Izrada makete 1
Izrada makete 1Izrada makete 1
Izrada makete 1
 
Final Exam
Final ExamFinal Exam
Final Exam
 

Similar to Algoritmi i strukture_podataka_2016-05_v01

Data WareHose
Data WareHoseData WareHose
Data WareHoseKruno Ris
 
Kratka priča o nas i san sustavima (i malo više)
Kratka priča o nas i san sustavima (i malo više)Kratka priča o nas i san sustavima (i malo više)
Kratka priča o nas i san sustavima (i malo više)Hrvoje Horvat
 
Microsoft Community sastanak - Vođenje softverske imovine
Microsoft Community sastanak - Vođenje softverske imovineMicrosoft Community sastanak - Vođenje softverske imovine
Microsoft Community sastanak - Vođenje softverske imovineTomislav Lulic
 
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5. [TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5. Stipe Predanic
 
White paper - Cloud Server, Cloud Data centar i njhova primjena
White paper - Cloud Server, Cloud Data centar i njhova primjenaWhite paper - Cloud Server, Cloud Data centar i njhova primjena
White paper - Cloud Server, Cloud Data centar i njhova primjenaHrvatski Telekom
 
R11 Vadas One Click Clone
R11 Vadas One Click CloneR11 Vadas One Click Clone
R11 Vadas One Click Cloneguest9c64c8c
 
Windows7 - Računalo u školi XIII
Windows7 - Računalo u školi XIIIWindows7 - Računalo u školi XIII
Windows7 - Računalo u školi XIIILidija Kralj
 
Auditing of user activity through NoSQL database
Auditing of user activity through NoSQL databaseAuditing of user activity through NoSQL database
Auditing of user activity through NoSQL databaseKristijan Duvnjak
 
Windows 7
Windows 7Windows 7
Windows 7denismo
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9. Stipe Predanic
 
Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4
Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4
Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4Mihovil Rister
 
Zlatko Papeš - Upotreba Panels modula - 13.3.2011 @mama & drupal.hr
Zlatko Papeš - Upotreba Panels modula - 13.3.2011 @mama & drupal.hrZlatko Papeš - Upotreba Panels modula - 13.3.2011 @mama & drupal.hr
Zlatko Papeš - Upotreba Panels modula - 13.3.2011 @mama & drupal.hrZlatko Papeš
 
Gordan Orlić: Optimizacija frontenda
Gordan Orlić: Optimizacija frontendaGordan Orlić: Optimizacija frontenda
Gordan Orlić: Optimizacija frontendaInitium
 
Moguće tehnike pristupa forenzckim podacima 09.2013
Moguće tehnike pristupa forenzckim podacima 09.2013 Moguće tehnike pristupa forenzckim podacima 09.2013
Moguće tehnike pristupa forenzckim podacima 09.2013 Damir Delija
 
NTFS - seminarski rad (2018)
NTFS - seminarski rad (2018)NTFS - seminarski rad (2018)
NTFS - seminarski rad (2018)Tomislav Kaučić
 

Similar to Algoritmi i strukture_podataka_2016-05_v01 (20)

Data WareHose
Data WareHoseData WareHose
Data WareHose
 
Kratka priča o nas i san sustavima (i malo više)
Kratka priča o nas i san sustavima (i malo više)Kratka priča o nas i san sustavima (i malo više)
Kratka priča o nas i san sustavima (i malo više)
 
Memorije
MemorijeMemorije
Memorije
 
Microsoft Community sastanak - Vođenje softverske imovine
Microsoft Community sastanak - Vođenje softverske imovineMicrosoft Community sastanak - Vođenje softverske imovine
Microsoft Community sastanak - Vođenje softverske imovine
 
JavaCro'14 - Is there a single “correct” web architecture for business apps –...
JavaCro'14 - Is there a single “correct” web architecture for business apps –...JavaCro'14 - Is there a single “correct” web architecture for business apps –...
JavaCro'14 - Is there a single “correct” web architecture for business apps –...
 
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5. [TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5.
[TVZ Računarstvo] Dinamičke web aplikacije, predavanje 5.
 
White paper - Cloud Server, Cloud Data centar i njhova primjena
White paper - Cloud Server, Cloud Data centar i njhova primjenaWhite paper - Cloud Server, Cloud Data centar i njhova primjena
White paper - Cloud Server, Cloud Data centar i njhova primjena
 
JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...
JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...
JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...
 
R11 Vadas One Click Clone
R11 Vadas One Click CloneR11 Vadas One Click Clone
R11 Vadas One Click Clone
 
Windows7 - Računalo u školi XIII
Windows7 - Računalo u školi XIIIWindows7 - Računalo u školi XIII
Windows7 - Računalo u školi XIII
 
Auditing of user activity through NoSQL database
Auditing of user activity through NoSQL databaseAuditing of user activity through NoSQL database
Auditing of user activity through NoSQL database
 
Windows 7
Windows 7Windows 7
Windows 7
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 9.
 
Informacijski sustavi - Maja Petras i Antonia Oršolić
Informacijski sustavi - Maja Petras i Antonia OršolićInformacijski sustavi - Maja Petras i Antonia Oršolić
Informacijski sustavi - Maja Petras i Antonia Oršolić
 
Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4
Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4Mihovil Rister  nerelacijaka sadašnjost, budućnost i primjene rev 1.4
Mihovil Rister nerelacijaka sadašnjost, budućnost i primjene rev 1.4
 
Zlatko Papeš - Upotreba Panels modula - 13.3.2011 @mama & drupal.hr
Zlatko Papeš - Upotreba Panels modula - 13.3.2011 @mama & drupal.hrZlatko Papeš - Upotreba Panels modula - 13.3.2011 @mama & drupal.hr
Zlatko Papeš - Upotreba Panels modula - 13.3.2011 @mama & drupal.hr
 
Gordan Orlić: Optimizacija frontenda
Gordan Orlić: Optimizacija frontendaGordan Orlić: Optimizacija frontenda
Gordan Orlić: Optimizacija frontenda
 
Javantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir Murat
Javantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir MuratJavantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir Murat
Javantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir Murat
 
Moguće tehnike pristupa forenzckim podacima 09.2013
Moguće tehnike pristupa forenzckim podacima 09.2013 Moguće tehnike pristupa forenzckim podacima 09.2013
Moguće tehnike pristupa forenzckim podacima 09.2013
 
NTFS - seminarski rad (2018)
NTFS - seminarski rad (2018)NTFS - seminarski rad (2018)
NTFS - seminarski rad (2018)
 

Algoritmi i strukture_podataka_2016-05_v01

  • 1. Algoritmi i strukture podataka Organizacija i struktura baza podataka Leonardo Miljko www.ckm.ba - Leonardo Miljko Prezentacija nastala na osnovu knjige: Brano Markić i Dražena Tomić, Uvod u algoritme i strukture, Ekonomski fakultet , Mostar,2008.
  • 2. Organizacija i struktura baza podataka Razumjeti organizaciju i strukturu baze podataka je moguće samo poznajući njezinu arhitekturu. Arhitektura baza podataka mora ispuniti zahtjeve za učinkovitim pohranjivanjem podataka te njihovo ažuriranje, dodavanje, brisanje i pretraživanje. Ti zahtjevi rezultirali su stvaranjem posebnog softverskog paketa koji se zove sustav za upravljanje bazama podataka. ANSI/SPARC arhitektura baze podataka objavljena 1975. i danas služi za prikaz arhitekture baze podataka. DBMS-ovi (Data Base Management System) u potpunosti bazirani na toj arhitekturi. Međutim, ona očito i jasno, na konceptualnoj razini, pojašnjava suštinu arhitekture baze podataka. ANSI – engl. American National Standards Institute (Američki nacionalni institut za standardizaciju), SPARC – engl. Standards Planning and Requirements Committee (Komitet za planiranje i zahtjeve za standarde) www.ckm.ba - Leonardo Miljko
  • 3. Organizacija i struktura baza podataka Prikaz ANSI/SPARC arhitekture baze podataka. www.ckm.ba - Leonardo Miljko
  • 4. Organizacija i struktura baza podataka ANSI/SPARC pristup dijeli arhitekturu baze podataka na tri razine:  Konceptualna razina predstavlja logički pogled na čitavu bazu podataka  Vanjska razina je korisnički pogled na bazu podataka, a formira se sukladno potrebama i ograničenjima korisnika u uporabi baze podataka  Unutarnja ili fizička razina opisuje fizičko implementiranje baze podataka na konkretnom hardveru. Unutarnja ili fizička razina (engl. storage level - razina pohranjivanja) je dio arhitekture baze podataka bitan za organizaciju i strukturu podataka unutar baze. www.ckm.ba - Leonardo Miljko
  • 5. Organizacija i struktura baza podataka Sustav za upravljanje bazom podataka (DBMS) mora osigurati formiranje i održavanje sve tri sheme (razine) baze podataka, kao i preslikavanje među njima koje omogućuje: • reorganiziranje unutarnje ili fizičke razine bez mijenjanja logičke tj. konceptualne sheme • promjenu konceptualne sheme bez mijenjanja postojeće vanjske sheme. Osnovni cilj koji se želi postići tom arhitekturom je fizička i logička neovisnost podataka. www.ckm.ba - Leonardo Miljko
  • 6. Organizacija i struktura baza podataka Fizička neovisnost podataka znači da promjena unutarnje (fizičke) sheme ne zahtijeva promjenu aplikacijskih programa. Logička neovisnost podataka znači da promjena konceptualne sheme ne zahtijeva mijenjanje aplikacijskih programa. Da bi se na fizičkoj razini baze podataka locirao (pronašao) određeni podatak koji zahtijeva vanjska razina (aplikativni program), koristi se nekoliko slojeva softver-a, a oni se razlikuju za svaki konkretni DBMS. Svi oni na konceptualnoj razini imaju slična načela. Jedan od osnovnih ciljeva razvoja baza podataka jest razdvajanje podataka od aplikacija koje ih koriste, odnosno omogućavanje neovisnog održavanja podataka, bez mijenjanja aplikacija (programa) koji te podatke koriste. www.ckm.ba - Leonardo Miljko
  • 7. Organizacija i struktura baza podataka DBMS, upravljanje datotekom i upravljanje diskom na konceptualnoj razini www.ckm.ba - Leonardo Miljko kako više softverskih slojeva može pronaći određeni podatak pohranjen u bazi podataka. Tipični koraci su: DBMS određuje koji se slog traži, a potom prenosi zahtjev softveru za upravljanje datotekom (engl. file manager) da taj slog pronađe . Softver za upravljanje datotekom zatim pronalazi blok s traženim slogom i zahtijeva od softvera za upravljanje diskom (engl. disk manager) da dohvati taj blok. Softver za upravljanje diskom utvrđuje fizičku lokaciju traženog bloka na disku i upućuje neophodni zahtjev za I/O disk operacijom
  • 8. Organizacija i struktura baza podataka • Na konceptualnoj razini, može se zaključiti da DBMS promatra bazu podataka kao kolekciju slogova i taj pogled podržava softverski sloj za upravljanje datotekom. • Softver za upravljanje datotekom pak promatra bazu podataka kao kolekciju blokova i taj pogled podržava softver za upravljanje diskom koji promatra disk onakvim kakav on stvarno i jest. • Softver za upravljanje diskom je dio operacijskog sustava računala. Taj sloj softvera je odgovoran za sve ulazno/izlazne operacije i kao takav on mora znati fizičke adrese. Na primjer, kada softver za upravljanje datotekom traži dohvaćanje nekoga određenog bloka B, softver za upravljanje diskom treba znati točno gdje je blok B na disku. Preslikavanje između broja bloka i fizičkih adresa diska obavlja softver za upravljanje diskom. www.ckm.ba - Leonardo Miljko
  • 9. Organizacija i struktura baza podataka • Jedna od osnovnih prednosti ovakve organizacije, ali ne i jedina, jest da se sav programski kod koji je ovisan o vrsti uređaja (diska) može izolirati unutar jedne komponente sustava (softvera za upravljanje diskom) tako da sve komponente više razine, posebno softver za upravljanje datotekom, mogu biti neovisne od pojedinačnog uređaja (diska). • Softver za upravljanje datotekom koristi mogućnosti softvera za upravljanje diskom kako bi omogućio DBMS-u da „promatra“ disk kao kolekciju datoteka. Svaki skup blokova u tom slučaju može sadržavati nijednu ili više datoteka. Ovdje je bitno pripomenuti da DBMS možda treba znati o postojanju skupova blokova, iako nije odgovoran za upravljanje njima, a posebno DBMS treba znati kada dvije datoteke dijele isti skup blokova ili kada dva sloga dijele isti blok. www.ckm.ba - Leonardo Miljko
  • 10. Organizacija i struktura baza podataka Računalni sustav ima nekoliko različitih komponenti (memorija) koje osiguravaju pohranu podataka, a koje se značajno razlikuju kako po količini podataka koju mogu pohraniti, tako i po brzini pristupa pohranjenim podacima. Grafički prikaz hijerarhije memorija, na konceptualnoj razini. www.ckm.ba - Leonardo Miljko
  • 11. Organizacija i struktura baza podataka Uočljivo da se na najnižoj razini hijerarhije memorija nalazi pričuvna (cache) memorija. Podaci koji se nalaze u cache memoriji su kopije određenih lokacija glavne memorije. Jedinica transfera između cach i glavne memorije je obično mali broj bajtova. Kada računalo izvodi zadane instrukcije prvo traži oboje i instrukcije i podatke koje instrukcije koriste u cache memoriji, pa ako ih tu ne pronađe traži ih u glavnoj memoriji. Sljedeća razina u hijerarhiji memorije je glavna memorija, koja je središte svih aktivnosti računala, kao što su izvršavanje instrukcija, manipuliranje podacima i slično. Glavna memorija ima random pristup (slučajan pristup) što znači da se bilo koji bajt može dobiti za istu količinu utrošenog vremena. Sljedeću razinu u hijerarhiji memorija je tzv. sekundarna memorija. Ona je mnogo sporija ali bitno većeg kapaciteta za pohranu podataka od glavne memorije. Današnja računala uglavnom koriste diskove kao sekundarnu memoriju. www.ckm.ba - Leonardo Miljko
  • 12. Organizacija i struktura baza podataka Disk podržava i virtualnu memoriju i datotečni sustav. Virtualna memorija omogućava pohranjivanje varijabli i podataka iz datoteka koje koriste programi (aplikacije). Kako je virtualni memorijski prostor na disku značajno veći nego uobičajena glavna memorija, to se najveći dio sadržaja virtualne memorije pohranjuje na disku. Sadržaj virtualne memorija se u blokovima „prebacuje“ između diska i glavne memorije. Obično se blokovi podataka u glavnoj memoriji nazivaju stranice. Postoji i tzv. glavna memorija DBMS-a, odnosno namjera da DBMS upravlja podacima putem glavne memorije. To ima značajne prednosti ukoliko su to „manje“ količine podataka i mogu ostati u glavnoj memoriji tj. ne mora se koristiti diskovni prostor za virtualnu memoriju. www.ckm.ba - Leonardo Miljko
  • 13. Organizacija i struktura baza podataka  Međutim, velike baze podataka moraju osigurati upravljanje svojim podacima izravno na disku. Datoteke se premještaju između diska i glavne memorije u blokovima, a pod kontrolom su operacijskog sustava ili DBMS-a. Premještanje bloka s diska u glavnu memoriju se naziva čitanje s diska (eng. disk read), dok se premještanje bloka iz glavne memorije na disk naziva zapis na disk (engl. disk write).  DBMS „radije“ upravlja blokovima podataka samostalno umjesto da taj zadatak prepusti dijelu operacijskog sustava – sustavnom upravljanju datotekama.  Tercijarna memorija omogućava pohranjivanje ogromnih količina podataka a karakterizira je značajno veća brzina I/O operacija nego kod sekundarne memorije.  Glavna memorija nudi jednako vrijeme pristupa bilo kojem podatku, a ni disk nema većih odstupanja u brzini pristupa bilo kom podatku s diska, ali kod tercijarne memorije vrijeme pristupa značajno varira, ovisno o blizini I/O točke traženom podatku. www.ckm.ba - Leonardo Miljko
  • 14. Organizacija i struktura baza podataka Osnovni pokretač razvoja struktura za pohranjivanje i tehnologije pristupa podacima pohranjenim u bazama podataka to što je vrijeme pristupa disku značajno sporije nego vrijeme pristupa glavnoj memoriji. Zato je osnovni cilj povećanja performansi baza podataka minimizirati broj pristupa disku tj. diskovnih I/O operacija. www.ckm.ba - Leonardo Miljko
  • 15. Organizacija i struktura baza podataka Prikaz podataka u bazi je prijelaz ili preslikavanje logičkog (konceptualnog) pogleda na bazu podataka na fizičku razinu baze podataka. Na konceptualnoj razini bazu podataka čine (relacijske baze podataka) relacija i atributi relacije, odnosno, kod objektno orijentiranih baza podataka, klasa i njezini atributi. Na primjer, ako na konceptualnoj razini treba prikazati podatke o djelatniku, onda ukoliko je riječ o relacijskoj bazi, formira se relacija Djelatnik s potrebnim atributima. Podaci koje je potrebno znati o svakom djelatniku su: JMB, ime, prezime, datum rođenja i spol. Ali, ta relacija nam ništa ne govori o konkretnim, stvarnim vrijednostima tih atributa za svakoga pojedinog djelatnika. Stvarne vrijednosti pohranjuju se (pomoću aplikativnih programa – tj. vanjske razine baze podataka) u n-torke relacije koje u biti čine slogove na fizičkoj razini baze podataka. www.ckm.ba - Leonardo Miljko
  • 16. Organizacija i struktura baza podataka Preslikavanje s konceptualne na fizičku razinu baze podataka www.ckm.ba - Leonardo Miljko
  • 17. Organizacija i struktura baza podataka Uočljivo je da se relacija (na konceptualnoj razini) preslikava u n-torke tj. slogove s zaglavljem na fizičkoj razini baze podataka. Slogovi se sastoje od polja (atributa relacije), s tim da na fizičkoj razini svako polje ima određenu duljinu u bajtovima i lokaciju koja je definirana relativnom adresom unutar sloga. Svakom zaglavlju pridružuju se n-torke tj. slogovi koji sadrže stvarne vrijednosti atributa relacije. Ovisno o tome spominju li se u kontekstu datotečnih sustava i programskih jezika kao što su C, C++ ili Java, relacijskim ili objektno orijentiranim bazama, često se za gotovo iste koncepte koriste različiti izrazi. www.ckm.ba - Leonardo Miljko
  • 18. Organizacija i struktura baza podataka Usporedni pregled izraza. Ipak, određene razlike postoje, npr. relacija nema metode dok klasa obično ima metode. www.ckm.ba - Leonardo Miljko
  • 19. Organizacija i struktura baza podataka ELEMENTI PODATAKA I POLJA Osnovni podatkovni elementi su vrijednosti atributa u relacijskim ili objektno orijentiranim bazama podataka. Oni se prikazuju «poljima». Polja se objedinjuju i formiraju «veće» elemente za pohranu podataka: slogove, blokove i datoteke. Pošto je relacija skup n- torki (redaka), a one su slične strukturi sloga, može se pretpostaviti da se svaka n-torka pohranjuje na disk kao slog. Jedan slog može zauzeti čitav ili dio bloka na disku, a unutar sloga postoji po jedno polje za svaki atribut relacije (objekta). www.ckm.ba - Leonardo Miljko
  • 20. Organizacija i struktura baza podataka SLOGOVI Atributi se polja koja se grupiraju zajedno u slogove. Zato je svaka n-torka (redak) relacije slog. Također, govoreći općenito, svaki tip sloga u sustavu za upravljanje bazom podataka mora imati shemu koja je pohranjena u bazi podataka. Shema sadrži nazive i tipove podataka polja unutar sloga, kao i njihovu relativnu poziciju (engl. «offset») unutar sloga. Sustav za upravljanje bazom podataka konzultira shemu uvijek kada treba pristupiti dijelovima sloga (poljima). • Ako su sva polja unutar sloga fiksne duljine, onda je to najjednostavnija situacija. • Npr. relacija DJELATNIK ima šest polja: jmb, 13-bajtni znakovni niz; ime, tip CHAR(20), 20-bajtni znakovni niz ; prezime, također tip CHAR(20), 20-bajtni znakovni niz; datum_rodenja, tip DATE, predstavljen s 10 bajtova; spol, 8-bajtni znakovni niz; napomena, tip VARCHAR(255) što predstavljamo s 256-totnim bajtom Jednostavno je izračunati da slog relacije DJELATNIK zauzima: 13+20+20+10+8+256 = 327 bajtova www.ckm.ba - Leonardo Miljko
  • 21. Organizacija i struktura baza podataka Prikaz tog sloga dan je na slici. Naznačena je relativna pozicija svakog polja, a ona je u biti broj bajtova. Tako npr. jmb počinje na 0-tom, ime na 13-tom, prezime na 33-ćem, datum rođenja na 53-ćem, spol na 63-ćem i napomena na 71-vom bajtu. www.ckm.ba - Leonardo Miljko
  • 22. Organizacija i struktura baza podataka PRIKAZ BLOKOVA I ADRESA SLOGOVA Slog se može prepoznati po svom bloku i relativnoj poziciji svoga prvog bajta unutar bloka. Današnje se baze podataka obično sastoje od serverskog procesa koji osigurava podatke pohranjene na sekundarnoj memoriji (disku) za jedan ili više klijent procesa koji su u biti aplikacije koje koriste podatke. Klijent aplikacije koriste konvencionalni «virtualni» adresni prostor, a on je danas obično 64 bita tj. oko 264 različitih adresa. Operacijski sustav ili DBMS odlučuju koji dijelovi adresnog prostora se trenutno alociraju u glavnoj memoriji, a hardver preslikava (mapira) virtualni adresni prostor u fizičke lokacije u glavnoj memoriji. U cilju pojednostavljenja, može se zanemariti preslikavanje virtualno-u-fizičko, tako da se adresni prostor klijenta može promatrati kao da je riječ o glavnoj memoriji. www.ckm.ba - Leonardo Miljko
  • 23. Organizacija i struktura baza podataka Podaci na serveru se nalaze u adresnom prostoru baze podataka. Adresa tog prostora ukazuje na blokove i vjerojatno relativne pozicije unutar bloka. Razlikuje se nekoliko načina prikaza adresa ovog adresnog prostora: 1. Fizičke adrese. Postoje nizovi bajtova koji određuju mjesto bloka ili sloga unutar sekundarne memorije (diska):  centralnog računala (engl. host) - na njemu je sekundarna memorija (ako je baza podataka na više računala)  oznake diska ili drugog uređaja na kojem se nalazi blok  broja cilindara diska  broja tragova unutar cilindra  broja blokova unutar traga  relativne pozicije početka sloga unutar bloka. 2. Logičke adrese. Svaki blok ili slog ima «logičku adresu». Ona je proizvoljan niz bajtova fiksne duljine. Posebna tablica (map table) služi za povezivanje logičkih s fizičkim adresama, a pohranjena je na disku na poznatoj lokaciji. www.ckm.ba - Leonardo Miljko
  • 24. Organizacija i struktura baza podataka Uvođenje tablice za preslikavanje («map» tablice) na prvi pogled se može učiniti kao kompliciranje. Međutim, ona daje značajnu fleksibilnost sustava. Naime, ukoliko se koristi ta tablica, onda svi pokazivači na slog pokazuju na nju, i jedino što se mora napraviti prigodom premještanja ili brisanja sloga jest promijeniti ulaz za taj slog u tablici. • Jedna od vrlo korisnih kombinacija fizičkih i logičkih adresa jest držanje u svakom bloku tzv. offset tablice koja sadrži sve relativne pozicije slogova unutar bloka. www.ckm.ba - Leonardo Miljko
  • 25. Organizacija i struktura baza podataka Uočljivo da tablica raste od početka prema kraju bloka, dok se slogovi smještaju počevši od kraja bloka. Ovakva strategija je korisna posebno kada su slogovi različite duljine, jer se tada unaprijed ne zna koliko slogova će stati u blok, i ne mora se inicijalno dodijeliti fiksna veličina zaglavlja bloka u tablici. Adresa sloga je tada fizička adresa bloka plus relativna pozicija ulaza u «offset» tablicu bloka za taj slog. Ovakva razina preusmjeravanja unutar bloka nudi mnoge prednosti logičke adrese, bez potrebe za postojanjem globalne «map» tablice : • može se premjestiti slog unutar bloka i sve što treba uraditi jest promijeniti ulaz sloga u «offset» tablici, pokazivači na slog će ga još uvijek moći naći • može se dopustiti premještanje sloga u drugi blok ako su ulazi «offset» tablice dovoljno veliki da drže «preusmjerenu adresu» za taj slog. • ako se slog obriše, može se u «offset» tablici postaviti graničnik (engl. tombstone), specijalna vrijednost koja označava da je slog obrisan. Nakon što se slog obriše, pokazivači na taj slog vode do graničnika, nakon čega se ili pokazivač zamjenjuje null pokazivačem ili se podatkovna struktura modificira na drugi način, kako bi odrazila brisanje sloga. Ako se ne bi postavi graničnik, pokazivač bi mogao voditi do nekoga novog sloga i prouzrokovati iznenađujući i pogrešan rezultat. www.ckm.ba - Leonardo Miljko
  • 26. Organizacija i struktura baza podataka Svaki blok, slog, objekt ili drugi referentni podatak ima dva oblika adrese: • adresa u serverskom adresnom prostoru baze podataka, koja je obično niz od osam ili više bajtova koji lociraju stavku (item) u sekundarnoj memoriji računala (disku). Ta se adresa najčešće naziva i adresa baze podataka. • adresa u virtualnoj memoriji (pod uvjetom da se stavka trenutno nalazi u virtualnoj memoriji). Ta adresa je obično duljine četiri bajta i najčešće se naziva memorijska adresa. www.ckm.ba - Leonardo Miljko
  • 27. Organizacija i struktura baza podataka PODACI I SLOGOVI VARIJABILNE DULJINE U dosadašnjim razmatranjima jedna od osnovnih pretpostavki je bila da je svaki podatak fiksne duljine. Međutim, često je potrebno prikazati i sljedeće: • podatak promjenjive veličine – (polja varijabilne duljine). To znači da se koristi samo onoliko prostora kolika je stvarna duljina polja • ponavljajuća polja se odnose na prikaz tipa veze između slogova više prema više. Tada treba pohraniti onoliko referenci koliko je povezanih objekata s danim objektom • slogove varijabilnog formata kada unaprijed nisu poznata polja koja čine slog, odnosno broj pojavljivanja svakoga pojedinog polja • polja koja zauzimaju veliki memorijski prostor (npr. slike (GIF formati, filmovi (MPEG formati) i slično www.ckm.ba - Leonardo Miljko
  • 28. Organizacija i struktura baza podataka SLOGOVI S POLJIMA VARIJABILNE DULJINE Ukoliko je jedno ili više polja unutar sloga varijabilne duljine, slog mora sadržavati dovoljno informacija, kako bi se moglo pronaći bilo koje polje unutar sloga. Jednostavna, ali učinkovita shema je postaviti sva polja fiksne duljine ispred polja varijabilne duljine. Tada zaglavlje sloga sadrži:  duljinu sloga  pokazivače (tj. relativne pozicije) na početke svih polja varijabilne duljine. Međutim, ukoliko se polja varijabilne duljine uvijek pojavljuju u istom redoslijedu, onda pokazivač ne treba jer je poznato da slijedi odmah nakon polja fiksne duljine. www.ckm.ba - Leonardo Miljko
  • 29. Organizacija i struktura baza podataka SLOGOVI S PONAVLJAJUĆIM POLJIMA Ako slog sadrži varijabilan broj polja i ako je svako polje – F fiksne duljine, onda je dovoljno grupirati sva polja F i pokazivač postaviti u zaglavlje sloga. Naime, neka je L broj bajtova za neko polje F označen. Slijedi da se relativnoj poziciji za polje F dodaju svi cjelobrojni umnošci od L tj. 0L, 1L, 2L, 3L i tako dalje do kraja, odnosno do pozicije koja označava relativnu poziciju za polje iza F. Na osnovu duljine sloga zna se koliko ima pokazivača na članove obitelji. www.ckm.ba - Leonardo Miljko
  • 30. Organizacija i struktura baza podataka SLOGOVI VARIJABILNOG FORMATA Složenija situacija od prethodno opisane (varijabilna duljina polja i ponavljajuća polja) je promjenjiva shema sloga. Jednostavan primjer slogova varijabilnog formata jest niz označenih polja (engl. tagged fields), od kojih se svako sastoji od: • informacije o ulozi tog polja, kao što je: – naziv atributa ili polja – tip polja, ako to nije očigledno iz imena polja ili neke već raspoložive sheme informacija – duljina polja, ako to nije očigledno iz tipa polja. • vrijednosti polja. www.ckm.ba - Leonardo Miljko
  • 31. Organizacija i struktura baza podataka POLJA VELIKOG KAPACITETA – BLOBS Skraćenica BLOBS stoji za binarni veliki objekti (engl. Binary Large ObjectS), a svrha im je omogućiti pohranu u polje baze podataka slike, filma, audio zapisa, radarskih signala i sl. Kada se govori o BLOB polju, moraju se razumjeti dvije stvari: način pohrane BLOBs- ova i način pristupa BLOBS poljima. • Zbog svoje veličine BLOBS polja se pohranjuju na više blokova u slijedu. Uobičajeno je da se ti blokovi alociraju na poseban način, vrlo često na cilindar ili na cilindre diska kako bi se s BLOBS-ovima moglo efikasno manipulirati. Moguće je, također, pohraniti BLOBS i na vezanu listu blokova. Vrlo često se radi osiguranja brzine pristupa BLOBS-u on se dijeli (engl. stripe) i pohranjuje na nekoliko diskova. www.ckm.ba - Leonardo Miljko
  • 32. Organizacija i struktura baza podataka PROSTOR ZA SLOG VEĆI OD BLOKA Primjer slogova koji se ne mogu smjestiti na jedan blok su bili BLOBS-ovi. Slogovi koji zauzimaju više blokova se nazivaju razapinjući „spanned“. Razapinjući slogovi se mogu pojaviti kada se cijeli slogovi pohranjuju u blok, što dovodi do velikog gubitka prostora. Zato je poželjno jedan slog podijeliti na dva ili više blokova. Dio sloga koji ostaje u jednom bloku naziva se fragment sloga. • Ako slog može biti razapinjući, onda taj slog i njegov fragment mora imati neke dodatne informacije u zaglavlju : • zaglavlje sloga ili fragmenta ima poseban bit koji označava fragment • potreban je još jedan bit koji daje informaciju da li je to prvi ili zadnji fragment za pripadajući slog • ako postoji sljedeći i/ili prethodni fragment za isti slog, onda fragmentu trebaju pokazivači na te druge fragmente. www.ckm.ba - Leonardo Miljko
  • 33. Organizacija i struktura baza podataka UMETANJE, BRISANJE I AŽURIRANJE SLOGOVA (INSERT, DELETE, UPDATE) Rad s podacima pohranjenim u bazi podataka podrazumijeva stalno dodavanje novih podataka, izmjenu i brisanje postojećih. Operacije mogu na fizičkoj razini baze podataka prouzročiti određene probleme. Te operacije su složene za slogove fiksne i promjenjive duljine. Kod umetanja novih podataka u već postojeću relaciju (ili u klasu), moguće su sljedeće osnovne situacije:  slogovi relacije se ne pohranjuju u određenom redoslijedu  slogovi relacije (n-torke) se pohranjuju u nekom fiksnom redoslijedu (npr. sortirani prema primarnom ključu). Ukoliko se slogovi (n-torke) relacije ne pohranjuju u određenom redoslijedu, onda je za umetanje (engl. insert) novog sloga potrebno ili pronaći blok s nešto praznog prostora ili uzeti novi blok. Međutim, situacija se usložnjava ako se slogovi relacije (n-torke) pohranjuju u nekom redoslijedu. www.ckm.ba - Leonardo Miljko
  • 34. Organizacija i struktura baza podataka Indeksne strukture Da bi se u potpunosti razumjela fizička razina pohrane podataka unutar baza podataka, neophodno je proanalizirati kako se mogu prikazati čitave relacije, odnosno ekstenti klasa. Naime, nije dovoljno samo razasuti na različitim blokovima slogove (n-torke relacije) ili objekte klase jer je tada teško odgovoriti i na najjednostavnije upite tipa SELECT * FROM DJELATNIK (tj. prikazati sadržaj svih n-torki relacije DJELATNIK). Najjednostavnije rješenje je sekvencijalno (jedan za drugim) posjetiti svaki slog relacije DJELATNIK tj. sve blokove na kojima su slogovi relacije DJELATNIK. Pretpostavka je da postoji dovoljno informacija u zaglavlju svakog bloka: gdje u bloku podataka počinje slog i kojoj relaciji pripada. Rezerviranjem blokova ili možda cilindara diska samo za danu relaciju mogu se postići mala poboljšanja. Pretpostavka je da određeni blokovi na cilindrima diska sadrže slogove relacije DJELATNIK. Nije potrebno pregledati cijeli disk kako bi se prikazali svi slogovi relacije. www.ckm.ba - Leonardo Miljko
  • 35. Organizacija i struktura baza podataka Ako je potrebno pronaći sve slogove relacije DJELATNIK za koje je vrijednost atributa spol jednak žena: SELECT * FROM DJELATNIK WHERE spol='žena' onda je potrebno izgraditi indeksnu strukturu. Indeks je vrijednost atributa (jednog ili više polja) u relaciji pomoću koga se može pronaći cijeli slog. Indeksi se pohranjuju u posebnu datoteku. Nju čine slogovi s dvije vrijednosti: vrijednost podatka i pokazivač. Vrijednost podatka je vrijednost polja u slogu, a pokazivač je fizička adresa sloga. www.ckm.ba - Leonardo Miljko
  • 36. Organizacija i struktura baza podataka Cilj kreiranja indeksne datoteke je ubrzati pretraživanje. Međutim, indeksi imaju i određene nedostatke. Prvi je usporavanje operacija umetanja, brisanja i ažuriranja slogova. Na primjer, svaki put kada se doda slog u datoteku podataka, treba dodati novi indeks u datoteku indeksa. Nažalost, ne postoje opća pravila kako kreirati indekse u bazi podataka. Administrator baze podataka treba odgovoriti na pitanje je li važnija operacija pretraživanja ili ažuriranja. Odgovor na to pitanje je presudan za postavljanje ili nepostavljanje indeksa. www.ckm.ba - Leonardo Miljko
  • 37. Organizacija i struktura baza podataka B-STABLO Indeksna datoteka može biti velika datoteka kod baza podataka koje zauzimaju veliki memorijski prostor. Takvu indeksnu datoteku je teško pretražiti. Zato je nužno poboljšati organizaciju samog indeksa. B-stablo je jedno takvo rješenje. To je organizacija indeksa (struktura indeksa) koju podržava većina relacijskih baza podataka. Jedan primjer B-stabla, na slici su vrijednosti 6, 8, 12, …, 97, 99 su vrijednosti polja indeksa. www.ckm.ba - Leonardo Miljko
  • 38. Organizacija i struktura baza podataka Stabla B* i B+ B stabla su efikasna u pretraživanju podataka. Efikasnost operacije umetanja se može povećati. U opisanom algoritmu umetanja ključa u čvor B-stabla bilo je potrebno dijeliti čvor. Promatra se uvijek čvor roditelj i razlikuju dva slučaja: a) u čvoru ima još mjesta za umetanje ključa i vrijednost ključa se može pridružiti čvoru. Operacija umetanja je dovršena. b) čvor je popunjen s maksimalnim brojem ključeva (maksimalni broj ključeva je za jedan manji od reda B-stabla i jednak je (m-1), m je red B-stabla. Novi ključ k se dodaje tom čvoru i dobiva čvor s m ključeva www.ckm.ba - Leonardo Miljko
  • 39. Organizacija i struktura baza podataka HASH INDEKS (hash adresiranje) je rezultat transformacije vrijednosti atributa pomoću hash funkcije. Hash adresiranje ili jednostavno samo hashing je tehnika koja osigurava izravan i brz pristup određenom slogu pomoću poznate vrijednosti određenog polja. Polje je obično, ali ne i neophodno, primarni ključ. Algoritam hashiranja:  u bazi podataka slog se smješta na lokaciji čija je adresa (RID), ili možda samo broj bloka, izračunata primjenom hash funkcije na vrijednost nekog polja tog sloga. Izračunata adresa se naziva hash adresa.  tijekom pohranjivanja sloga, DBMS mu izračunava hash adresu i daje instrukciju softveru za upravljanje datotekom da smjesti slog točno na tu poziciju (adresu).  da bi se pronašao slog pohranjen na hash adresi, DBMS na temelju vrijednosti polja transformira tu vrijednost u fizičku adresu i daje instrukciju softveru za upravljanje datotekom da dohvati slog na izračunatoj poziciji (adresi). www.ckm.ba - Leonardo Miljko
  • 40. Organizacija i struktura baza podataka HASH INDEKS  Jedan od nedostataka hashinga. „Fizički slijed» slogova unutar datoteke sigurno neće biti i redoslijed primarnog ključa, niti bilo koji drugi redoslijed koji bi imao razumnu logičku interpretaciju. U biti, za fizički slijed slogova unutar datoteke s hash strukturom obično se kaže da ne predstavlja nikakav poseban logički slijed.  Druga slabost hashinga je kolizija. Ona nastupa kada dva ili više različitih slogova imaju istu hash adresu. Rastezljivi hashing • Rastezljivi hashing (engl. extendable hashing) je varijacija osnovne ideje hashinga koja ublažava prethodno opisane slabosti. U biti, rastezljivi hashing jamči da broj potrebnih pristupa disk da bi se locirao određeni slog, neće biti veći od dva. Najčešće je to samo jedan, ma kako datoteka bila velika. www.ckm.ba - Leonardo Miljko
  • 41. Organizacija i struktura baza podataka Multidimenzijski indeksi Prikazane indeksne strukture su tzv. jednodimenzijski indeksi. Ti indeksi služe za ubrzanje operacije pretraživanja. Ključ pretraživanja je jedan atribut (polje), odnosno može biti i kombinacija dva ili više atributa, ali i dalje su to jednodimenzijski indeksi jer se i u tom slučaju promatra kao jedinstveni ključ za pretraživanje. Naime, B-stablo polazi od toga da su svi ključevi sortirani, dok hash indeks se može izračunati samo za unaprijed poznatu vrijednost ključa. Međutim, postoje aplikacije u kojima je pogled na podatke dvodimenzijski ili multidimenzijsi. Dvije su osnovne kategorije tih aplikacija: • geografski informacijski sustavi (GIS) • podatkovne kocke (engl. data cubes) www.ckm.ba - Leonardo Miljko
  • 42. Organizacija i struktura baza podataka Multidimenzijski indeksi  Geografski informacijski sustavi (GIS) pohranjuju objekte obično u dvodimanzijskom prostoru, a objekti mogu biti točke ili različiti oblici (ceste, kuće, mostovi, vodovodne cijevi, električni kablovi i sl.). Većina upita vezanih za GIS nisu uobičajeni SQL upiti, iako se, uz određene napore, mogu izraziti i pomoću SQL-a.  Podatkovne kocke (data cubes), odnosno analiza podataka pomoću više dimenzija (multidimenzijski pristup), danas se uglavnom spominju vezano za sustave za potporu odlučivanju i skladišta podataka. Indeksne strukture koje podržavaju upite nad više dimenzija, spadaju u jednu od sljedeće dvije kategorije : – pristupi slični hash-tablicama – pristupi slični stablima. www.ckm.ba - Leonardo Miljko
  • 43. Organizacija i struktura baza podataka Strukture slične hash strukturama za višedimenzijske podatke Dvije podatkovne strukture poopćavaju hash tablice koje se kreiraju samo pomoću vrijednosti jednog atributa. Pokazivač na pretinac je funkcija više atributa ili dimenzija. Jedna takva struktura je «rešetkasta (grid) datoteka», a druga «podijeljena hash funkcija». • Rešetkaste datoteke Ideja rešetkaste (grid) datoteke je grupirati podatke tako da se mogu smjestiti u rešetku koja se formira na temelju vrijednosti dimenzija. • Podijeljena hash funkcija Hash funkcija može uzeti vrijednosti više atributa kao argument, iako se obično služe vrijednostima jednog atributa. www.ckm.ba - Leonardo Miljko
  • 44. Organizacija i struktura baza podataka Strukture slične stablima za višedimenziske podatke Drugi tip struktura koji se, osim struktura sličnih hash datotekama, koristi za više-dimenzijske podatke su strukture slične stablima. Ove strukture su posebno korisne za upite bazirane na opsegu vrijednosti, odnosno za upite bazirane na najbližim vrijednostima kod višedimenziskih podataka. Četiri osnovne strukture slične stablima:  Indeksi višestrukih ključeva  Kd-stabla  Quad stabla  R-stabla www.ckm.ba - Leonardo Miljko
  • 45. Organizacija i struktura baza podataka Indeksi višestrukih ključeva (Multiple-key indexes) Ukoliko, na primjer, postoji nekoliko atributa koji predstavljaju dimenzije za točke podataka, te ukoliko se želi osigurati potpora za upite bazirane na opsegu ili upite bazirane na najbližoj vrijednosti, onda jednostavna shema u obliku stabla za pristup tim točkama je indeks od indeksa. Općenito promatrano, radi se o stablu u kojem su čvorovi na svakoj razini indeksi nekog atributa. www.ckm.ba - Leonardo Miljko Korijen stabla je indeks prvog od dva atributa. Taj indeks može biti bilo koji tip standardnog indeksa, kao što je B-stablo ili hash tablica. Indeks je povezan s vrijednosti ključa za pretraživanje tj. vrijednostima prvog atributa, i on je pokazivač na drugi indeks.
  • 46. Organizacija i struktura baza podataka Kd-stabla (k-dimenzijsko stablo pretraživanja) je podatkovna struktura koja poopćava binarno stablo pretraživanja na višedimenzijske podatke. Ideja kd-stabla se može prilagoditi i za pohrane podataka na diskovima u blokovima. Kd-stablo je binarno stablo u kojem lijevo dijete čvora roditelj je manje, a desno veće od roditelja. Isti atribut se zadržava na jednoj razini (npr. atribut plaća je na razini 1, 3, a atribut dob na razinama 2 i 4). Drugim riječima, atributi na različitim razinama stabla su različiti pri čemu se atributi (dimenzije) smjenjuju (rotiraju) na pojedinim razinama. Ideja kd-stabla je primjenjiva i na sekundarnu memoriju (disk), ali je potrebno učiniti dvije promijene: • unutarnji čvorovi imaju jednu vrijednost atributa i pokazivače na lijevo i desno dijete • listovi stabla su blokovi podataka. Oni sadrže određen broj slogova ovisno o kapacitetu bloka. www.ckm.ba - Leonardo Miljko
  • 47. Organizacija i struktura baza podataka Quad stabla Kod quad stabla, svaki unutarnji čvor odgovara četverokutnom području s dvije dimenzije, ili k-dimenzijskoj kocki s k dimenzija. Ako broj točaka u četverokutnom području nije veći od prostora u bloku, onda se to četverokutno područje može promatrati kao list stabla, i prikazati blokom koji sadrži njegove točke. Ako ima previše točaka i ne mogu stati u blok, onda se četverokutno područje promatra kao unutarnji čvor čija djeca korespondiraju s njegova četiri kvadranta. www.ckm.ba - Leonardo Miljko
  • 48. Organizacija i struktura baza podataka R-stabla (stablo regije) je podatkovna struktura koja primjenjuje principe B-stabla na višedimenziske podatke, s tim da R-stablo predstavlja podatke koji se sastoje od dvodimenziskih ili višedimenziskih područja, a ona se nazivaju podatkovna područja. Unutarnji čvor R- stabla odgovara nekom unutarnjem području, ili samo području koje nije podatkovno područje. U suštini, područje može biti različitog oblika, iako je ono u praksi najčešće pravokutnik. R-stablo umjesto ključeva ima potpodručja koja predstavljaju sadržaj njegove «djece». www.ckm.ba - Leonardo Miljko Točkasti pravokutnici su podpodručja povezana s četvero njihove «djece». Može se primijetiti da podpodručja ne pokrivaju cijelo područje, što je prihvatljivo sve dok su svi podaci područja, koja leže unutar većeg područja, unutar jednog od manjih područja. Ukoliko to nije slučaj, dozvoljeno je da podpodručja imaju prekoračenja, ali je poželjno da ona budu što manja.
  • 49. Organizacija i struktura baza podataka Bitmap indeksi Bitmap indeks za polje F je skup bit-vektora duljine n. Jedan vektor se pridružuje jednoj mogućoj vrijednosti polja F., po jednog za svaku moguću vrijednost koja se može pojaviti u polju F. Vektor za vrijednost «v» ima 1 na poziciji «i» ako i-ti slog ima «v» u polju F, odnosno ima 0 ako nema te vrijednosti. Upravljanje bitmap indeksima postavlja najmanje tri bitna pitanja na koja treba odgovoriti :  pronaći bit-vektor za zadanu vrijednost, ili bit-vektore koji odgovaraju vrijednostima na zadanom opsegu. kako to efikasno uraditi?  kako efikasno pristupiti slogovima ako je rezultat upita skup slogova?  kako uskladiti bitmap indeks s promjenama koje nastaju dodavanjem ili brisanjem slogova? www.ckm.ba - Leonardo Miljko
  • 50. Hvala ! Leonardo Miljko diplomirani inženjer elektrotehnike, računarstva i informatike Pitanja? www.ckm.ba - Leonardo Miljko