You are on page 1of 50

Algoritmi i

strukture podataka
Organizacija i struktura baza podataka

Leonardo Miljko
Prezentacija nastala na osnovu knjige:
Brano Marki i Draena Tomi,
Uvod u algoritme i strukture, Ekonomski fakultet , Mostar,2008.

www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


Razumjeti organizaciju i strukturu baze podataka je mogue samo
poznajui njezinu arhitekturu. Arhitektura baza podataka mora
ispuniti zahtjeve za uinkovitim pohranjivanjem podataka te
njihovo auriranje, dodavanje, brisanje i pretraivanje. 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 slui
za prikaz arhitekture baze podataka.
DBMS-ovi (Data Base Management System) u potpunosti bazirani na
toj arhitekturi. Meutim, ona oito i jasno, na konceptualnoj
razini, pojanjava sutinu arhitekture baze podataka.
ANSI engl. American National Standards Institute (Ameriki 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 logiki pogled na itavu bazu
podataka
Vanjska razina je korisniki pogled na bazu podataka, a formira se
sukladno potrebama i ogranienjima korisnika u uporabi baze
podataka
Unutarnja ili fizika razina opisuje fiziko implementiranje baze
podataka na konkretnom hardveru.
Unutarnja ili fizika 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 odravanje sve tri sheme (razine) baze podataka, kao i
preslikavanje meu njima koje omoguuje:
reorganiziranje unutarnje ili fizike razine bez mijenjanja logike tj.
konceptualne sheme
promjenu konceptualne sheme bez mijenjanja postojee vanjske
sheme.
Osnovni cilj koji se eli postii tom arhitekturom je fizika i logika
neovisnost podataka.

www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


Fizika neovisnost podataka znai da promjena unutarnje (fizike)
sheme ne zahtijeva promjenu aplikacijskih programa.
Logika neovisnost podataka znai da promjena konceptualne sheme
ne zahtijeva mijenjanje aplikacijskih programa.
Da bi se na fizikoj razini baze podataka locirao (pronaao) odreeni
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 slina naela.
Jedan od osnovnih ciljeva razvoja baza podataka jest razdvajanje
podataka od aplikacija koje ih koriste, odnosno omoguavanje
neovisnog odravanja 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
kako vie softverskih slojeva moe pronai
odreeni podatak pohranjen u bazi
podataka. Tipini koraci su:
DBMS odreuje koji se slog trai, a
potom prenosi zahtjev softveru za
upravljanje datotekom (engl. file manager)
da taj slog pronae .
Softver za upravljanje datotekom zatim
pronalazi blok s traenim slogom i zahtijeva
od softvera za upravljanje diskom (engl.
disk manager) da dohvati taj blok.
Softver za upravljanje diskom utvruje
fiziku lokaciju traenog bloka na disku i
upuuje neophodni zahtjev za I/O disk
operacijom
www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


Na konceptualnoj razini, moe se zakljuiti da DBMS promatra
bazu podataka kao kolekciju slogova i taj pogled podrava
softverski sloj za upravljanje datotekom.
Softver za upravljanje datotekom pak promatra bazu podataka
kao kolekciju blokova i taj pogled podrava softver za upravljanje
diskom koji promatra disk onakvim kakav on stvarno i jest.
Softver za upravljanje diskom je dio operacijskog sustava raunala.
Taj sloj softvera je odgovoran za sve ulazno/izlazne operacije i kao
takav on mora znati fizike adrese. Na primjer, kada softver za
upravljanje datotekom trai dohvaanje nekoga odreenog bloka B,
softver za upravljanje diskom treba znati tono gdje je blok B na disku.

Preslikavanje izmeu broja bloka i fizikih 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 ureaja (diska)
moe izolirati unutar jedne komponente sustava (softvera za
upravljanje diskom) tako da sve komponente vie razine, posebno
softver za upravljanje datotekom, mogu biti neovisne od
pojedinanog ureaja (diska).
Softver za upravljanje datotekom koristi mogunosti softvera za
upravljanje diskom kako bi omoguio DBMS-u da promatra disk
kao kolekciju datoteka. Svaki skup blokova u tom sluaju moe
sadravati nijednu ili vie datoteka. Ovdje je bitno pripomenuti da
DBMS moda 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


Raunalni sustav ima nekoliko
razliitih komponenti
(memorija) koje osiguravaju
pohranu podataka, a koje se
znaajno razlikuju kako po
koliini podataka koju mogu
pohraniti, tako i po brzini
pristupa pohranjenim
podacima.
Grafiki prikaz hijerarhije
memorija,
na konceptualnoj razini.
www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


Uoljivo da se na najnioj razini hijerarhije memorija nalazi priuvna
(cache) memorija. Podaci koji se nalaze u cache memoriji su kopije
odreenih lokacija glavne memorije. Jedinica transfera izmeu cach i
glavne memorije je obino mali broj bajtova. Kada raunalo izvodi
zadane instrukcije prvo trai oboje i instrukcije i podatke koje instrukcije
koriste u cache memoriji, pa ako ih tu ne pronae trai ih u glavnoj
memoriji.
Sljedea razina u hijerarhiji memorije je glavna memorija, koja je sredite
svih aktivnosti raunala, kao to su izvravanje instrukcija, manipuliranje
podacima i slino. Glavna memorija ima random pristup (sluajan
pristup) to znai da se bilo koji bajt moe dobiti za istu koliinu
utroenog vremena.
Sljedeu razinu u hijerarhiji memorija je tzv. sekundarna memorija. Ona je
mnogo sporija ali bitno veeg kapaciteta za pohranu podataka od glavne
memorije. Dananja raunala uglavnom koriste diskove kao sekundarnu
memoriju.
www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


Disk podrava i virtualnu memoriju i datoteni sustav.
Virtualna memorija omoguava pohranjivanje varijabli i podataka iz
datoteka koje koriste programi (aplikacije). Kako je virtualni
memorijski prostor na disku znaajno vei nego uobiajena glavna
memorija, to se najvei dio sadraja virtualne memorije
pohranjuje na disku. Sadraj virtualne memorija se u blokovima
prebacuje izmeu diska i glavne memorije. Obino 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 znaajne
prednosti ukoliko su to manje koliine 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


Meutim, velike baze podataka moraju osigurati upravljanje svojim
podacima izravno na disku. Datoteke se premjetaju izmeu diska i glavne
memorije u blokovima, a pod kontrolom su operacijskog sustava ili DBMS-a.
Premjetanje bloka s diska u glavnu memoriju se naziva itanje s diska (eng.
disk read), dok se premjetanje 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 omoguava pohranjivanje ogromnih koliina
podataka a karakterizira je znaajno vea brzina I/O operacija nego kod
sekundarne memorije.
Glavna memorija nudi jednako vrijeme pristupa bilo kojem podatku, a ni
disk nema veih odstupanja u brzini pristupa bilo kom podatku s diska, ali
kod tercijarne memorije vrijeme pristupa znaajno varira, ovisno o blizini
I/O toke traenom 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 znaajno sporije
nego vrijeme pristupa glavnoj memoriji.

Zato je osnovni cilj poveanja 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 logikog
(konceptualnog) pogleda na bazu podataka na fiziku 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 roenja i spol. Ali, ta relacija nam nita ne
govori o konkretnim, stvarnim vrijednostima tih atributa za svakoga
pojedinog djelatnika. Stvarne vrijednosti pohranjuju se (pomou
aplikativnih programa tj. vanjske razine baze podataka) u n-torke
relacije koje u biti ine slogove na fizikoj razini baze podataka.
www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


Preslikavanje s konceptualne na fiziku razinu baze podataka

www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


Uoljivo je da se relacija (na konceptualnoj razini) preslikava u n-torke tj.
slogove s zaglavljem na fizikoj razini baze podataka. Slogovi se
sastoje od polja (atributa relacije), s tim da na fizikoj razini svako
polje ima odreenu duljinu u bajtovima i lokaciju koja je definirana
relativnom adresom unutar sloga.
Svakom zaglavlju pridruuju se n-torke tj. slogovi koji sadre stvarne
vrijednosti atributa relacije.
Ovisno o tome spominju li se u kontekstu datotenih sustava i
programskih jezika kao to su C, C++ ili Java, relacijskim ili objektno
orijentiranim bazama, esto se za gotovo iste koncepte koriste
razliiti izrazi.

www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


Usporedni pregled izraza. Ipak, odreene razlike postoje, npr. relacija
nema metode dok klasa obino 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 vee elemente za pohranu
podataka: slogove, blokove i datoteke. Poto je relacija skup ntorki (redaka), a one su sline strukturi sloga, moe se pretpostaviti
da se svaka n-torka pohranjuje na disk kao slog.
Jedan slog moe 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. Takoer, govorei openito, svaki tip
sloga u sustavu za upravljanje bazom podataka mora imati shemu koja je
pohranjena u bazi podataka. Shema sadri 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,
takoer 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 izraunati 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. Naznaena je relativna pozicija svakog
polja, a ona je u biti broj bajtova. Tako npr. jmb poinje na 0-tom,
ime na 13-tom, prezime na 33-em, datum roenja 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 moe prepoznati po svom bloku i relativnoj poziciji svoga
prvog bajta unutar bloka. Dananje se baze podataka obino
sastoje od serverskog procesa koji osigurava podatke pohranjene
na sekundarnoj memoriji (disku) za jedan ili vie klijent procesa
koji su u biti aplikacije koje koriste podatke.
Klijent aplikacije koriste konvencionalni virtualni adresni prostor, a
on je danas obino 64 bita tj. oko 264 razliitih adresa. Operacijski
sustav ili DBMS odluuju koji dijelovi adresnog prostora se
trenutno alociraju u glavnoj memoriji, a hardver preslikava
(mapira) virtualni adresni prostor u fizike lokacije u glavnoj
memoriji. U cilju pojednostavljenja, moe se zanemariti
preslikavanje virtualno-u-fiziko, tako da se adresni prostor klijenta
moe 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 naina prikaza adresa ovog adresnog prostora:
1. Fizike adrese. Postoje nizovi bajtova koji odreuju mjesto bloka ili sloga unutar
sekundarne memorije (diska):
centralnog raunala (engl. host) - na njemu je sekundarna memorija (ako je
baza podataka na vie raunala)
oznake diska ili drugog ureaja na kojem se nalazi blok
broja cilindara diska
broja tragova unutar cilindra
broja blokova unutar traga
relativne pozicije poetka sloga unutar bloka.
2. Logike adrese. Svaki blok ili slog ima logiku adresu. Ona je proizvoljan niz
bajtova fiksne duljine. Posebna tablica (map table) slui za povezivanje logikih s
fizikim adresama, a pohranjena je na disku na poznatoj lokaciji.
www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


Uvoenje tablice za preslikavanje (map tablice) na prvi pogled se
moe uiniti kao kompliciranje. Meutim, ona daje znaajnu
fleksibilnost sustava. Naime, ukoliko se koristi ta tablica, onda svi
pokazivai na slog pokazuju na nju, i jedino to se mora napraviti
prigodom premjetanja ili brisanja sloga jest promijeniti ulaz za taj
slog u tablici.
Jedna od vrlo korisnih kombinacija fizikih i logikih adresa jest
dranje u svakom bloku tzv. offset tablice koja sadri sve relativne
pozicije slogova unutar bloka.

www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka

Uoljivo da tablica raste od poetka prema kraju bloka, dok se slogovi smjetaju
poevi od kraja bloka. Ovakva strategija je korisna posebno kada su slogovi
razliite duljine, jer se tada unaprijed ne zna koliko slogova e stati u blok, i ne
mora se inicijalno dodijeliti fiksna veliina zaglavlja bloka u tablici. Adresa sloga
je tada fizika adresa bloka plus relativna pozicija ulaza u offset tablicu bloka
za taj slog. Ovakva razina preusmjeravanja unutar bloka nudi mnoge prednosti
logike adrese, bez potrebe za postojanjem globalne map tablice :
moe se premjestiti slog unutar bloka i sve to treba uraditi jest promijeniti ulaz
sloga u offset tablici, pokazivai na slog e ga jo uvijek moi nai
moe se dopustiti premjetanje sloga u drugi blok ako su ulazi offset tablice
dovoljno veliki da dre preusmjerenu adresu za taj slog.
ako se slog obrie, moe se u offset tablici postaviti graninik (engl.
tombstone), specijalna vrijednost koja oznaava da je slog obrisan. Nakon to se
slog obrie, pokazivai na taj slog vode do graninika, nakon ega se ili pokaziva
zamjenjuje null pokazivaem ili se podatkovna struktura modificira na drugi
nain, kako bi odrazila brisanje sloga. Ako se ne bi postavi graninik, pokaziva bi
mogao voditi do nekoga novog sloga i prouzrokovati iznenaujui i pogrean
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
obino niz od osam ili vie bajtova koji lociraju stavku (item) u
sekundarnoj memoriji raunala (disku). Ta se adresa najee
naziva i adresa baze podataka.
adresa u virtualnoj memoriji (pod uvjetom da se stavka trenutno
nalazi u virtualnoj memoriji). Ta adresa je obino duljine etiri
bajta i najee se naziva memorijska adresa.

www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


PODACI I SLOGOVI VARIJABILNE DULJINE
U dosadanjim razmatranjima jedna od osnovnih pretpostavki je bila
da je svaki podatak fiksne duljine. Meutim, esto je potrebno
prikazati i sljedee:
podatak promjenjive veliine (polja varijabilne duljine). To znai
da se koristi samo onoliko prostora kolika je stvarna duljina polja
ponavljajua polja se odnose na prikaz tipa veze izmeu slogova
vie prema vie. 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 slino
www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


SLOGOVI S POLJIMA VARIJABILNE DULJINE
Ukoliko je jedno ili vie polja unutar sloga varijabilne duljine, slog
mora sadravati dovoljno informacija, kako bi se moglo pronai
bilo koje polje unutar sloga. Jednostavna, ali uinkovita shema je
postaviti sva polja fiksne duljine ispred polja varijabilne duljine.
Tada zaglavlje sloga sadri:
duljinu sloga
pokazivae (tj. relativne pozicije) na poetke svih polja varijabilne
duljine. Meutim, 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 PONAVLJAJUIM POLJIMA
Ako slog sadri 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
oznaen. Slijedi da se relativnoj poziciji za polje F dodaju svi
cjelobrojni umnoci od L tj. 0L, 1L, 2L, 3L i tako dalje do kraja,
odnosno do pozicije koja oznaava relativnu poziciju za polje iza F.
Na osnovu duljine sloga zna se koliko ima pokazivaa na lanove
obitelji.

www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


SLOGOVI VARIJABILNOG FORMATA
Sloenija situacija od prethodno opisane (varijabilna duljina polja i
ponavljajua polja) je promjenjiva shema sloga. Jednostavan
primjer slogova varijabilnog formata jest niz oznaenih 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 oigledno iz imena polja ili neke ve
raspoloive sheme informacija
duljina polja, ako to nije oigledno iz tipa polja.
vrijednosti polja.

www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


POLJA VELIKOG KAPACITETA BLOBS
Skraenica BLOBS stoji za binarni veliki objekti (engl. Binary Large
ObjectS), a svrha im je omoguiti pohranu u polje baze podataka
slike, filma, audio zapisa, radarskih signala i sl. Kada se govori o
BLOB polju, moraju se razumjeti dvije stvari: nain pohrane BLOBsova i nain pristupa BLOBS poljima.
Zbog svoje veliine BLOBS polja se pohranjuju na vie blokova u
slijedu. Uobiajeno je da se ti blokovi alociraju na poseban nain,
vrlo esto na cilindar ili na cilindre diska kako bi se s BLOBS-ovima
moglo efikasno manipulirati. Mogue je, takoer, 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 VEI OD BLOKA
Primjer slogova koji se ne mogu smjestiti na jedan blok su bili BLOBS-ovi.
Slogovi koji zauzimaju vie blokova se nazivaju razapinjui spanned.
Razapinjui slogovi se mogu pojaviti kada se cijeli slogovi pohranjuju u
blok, to dovodi do velikog gubitka prostora. Zato je poeljno jedan slog
podijeliti na dva ili vie blokova. Dio sloga koji ostaje u jednom bloku
naziva se fragment sloga.
Ako slog moe biti razapinjui, onda taj slog i njegov fragment mora imati
neke dodatne informacije u zaglavlju :
zaglavlje sloga ili fragmenta ima poseban bit koji oznaava fragment
potreban je jo jedan bit koji daje informaciju da li je to prvi ili zadnji
fragment za pripadajui slog
ako postoji sljedei i/ili prethodni fragment za isti slog, onda fragmentu
trebaju pokazivai na te druge fragmente.
www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


UMETANJE, BRISANJE I AURIRANJE SLOGOVA (INSERT, DELETE, UPDATE)
Rad s podacima pohranjenim u bazi podataka podrazumijeva stalno
dodavanje novih podataka, izmjenu i brisanje postojeih. Operacije
mogu na fizikoj razini baze podataka prouzroiti odreene probleme. Te
operacije su sloene za slogove fiksne i promjenjive duljine.
Kod umetanja novih podataka u ve postojeu relaciju (ili u klasu), mogue
su sljedee osnovne situacije:
slogovi relacije se ne pohranjuju u odreenom redoslijedu
slogovi relacije (n-torke) se pohranjuju u nekom fiksnom redoslijedu (npr.
sortirani prema primarnom kljuu).
Ukoliko se slogovi (n-torke) relacije ne pohranjuju u odreenom redoslijedu,
onda je za umetanje (engl. insert) novog sloga potrebno ili pronai blok s
neto praznog prostora ili uzeti novi blok.
Meutim, situacija se uslonjava 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 fizika razina pohrane podataka unutar
baza podataka, neophodno je proanalizirati kako se mogu prikazati itave
relacije, odnosno ekstenti klasa. Naime, nije dovoljno samo razasuti na
razliitim blokovima slogove (n-torke relacije) ili objekte klase jer je tada
teko odgovoriti i na najjednostavnije upite tipa SELECT * FROM
DJELATNIK (tj. prikazati sadraj svih n-torki relacije DJELATNIK).
Najjednostavnije rjeenje 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 poinje slog i kojoj relaciji pripada.
Rezerviranjem blokova ili moda cilindara diska samo za danu relaciju mogu
se postii mala poboljanja. Pretpostavka je da odreeni blokovi na
cilindrima diska sadre 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 pronai 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 vie polja) u relaciji pomou
koga se moe pronai 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 fizika adresa sloga.

www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


Cilj kreiranja indeksne datoteke je ubrzati pretraivanje.
Meutim, indeksi imaju i odreene nedostatke. Prvi je usporavanje
operacija umetanja, brisanja i auriranja slogova. Na primjer, svaki
put kada se doda slog u datoteku podataka, treba dodati novi
indeks u datoteku indeksa.
Naalost, ne postoje opa pravila kako kreirati indekse u bazi
podataka. Administrator baze podataka treba odgovoriti na pitanje
je li vanija operacija pretraivanja ili auriranja. 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 moe biti velika datoteka kod baza podataka koje
zauzimaju veliki memorijski prostor. Takvu indeksnu datoteku je
teko pretraiti. Zato je nuno poboljati organizaciju samog
indeksa. B-stablo je jedno takvo rjeenje. To je organizacija indeksa
(struktura indeksa) koju podrava veina 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 pretraivanju podataka. Efikasnost operacije
umetanja se moe poveati. U opisanom algoritmu umetanja
kljua u vor B-stabla bilo je potrebno dijeliti vor. Promatra se
uvijek vor roditelj i razlikuju dva sluaja:
a) u voru ima jo mjesta za umetanje kljua i vrijednost kljua se
moe pridruiti voru. Operacija umetanja je dovrena.
b) vor je popunjen s maksimalnim brojem kljueva (maksimalni broj
kljueva 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
kljueva

www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


HASH INDEKS (hash adresiranje) je rezultat transformacije vrijednosti
atributa pomou hash funkcije. Hash adresiranje ili jednostavno samo
hashing je tehnika koja osigurava izravan i brz pristup odreenom slogu
pomou poznate vrijednosti odreenog polja. Polje je obino, ali ne i
neophodno, primarni klju.
Algoritam hashiranja:
u bazi podataka slog se smjeta na lokaciji ija je adresa (RID), ili moda
samo broj bloka, izraunata primjenom hash funkcije na vrijednost nekog
polja tog sloga. Izraunata adresa se naziva hash adresa.
tijekom pohranjivanja sloga, DBMS mu izraunava hash adresu i daje
instrukciju softveru za upravljanje datotekom da smjesti slog tono na tu
poziciju (adresu).
da bi se pronaao slog pohranjen na hash adresi, DBMS na temelju
vrijednosti polja transformira tu vrijednost u fiziku adresu i daje
instrukciju softveru za upravljanje datotekom da dohvati slog na
izraunatoj poziciji (adresi).
www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


HASH INDEKS
Jedan od nedostataka hashinga. Fiziki slijed slogova unutar
datoteke sigurno nee biti i redoslijed primarnog kljua, niti bilo
koji drugi redoslijed koji bi imao razumnu logiku interpretaciju. U
biti, za fiziki slijed slogova unutar datoteke s hash strukturom
obino se kae da ne predstavlja nikakav poseban logiki slijed.
Druga slabost hashinga je kolizija. Ona nastupa kada dva ili vie
razliitih slogova imaju istu hash adresu.
Rastezljivi hashing
Rastezljivi hashing (engl. extendable hashing) je varijacija osnovne
ideje hashinga koja ublaava prethodno opisane slabosti. U biti,
rastezljivi hashing jami da broj potrebnih pristupa disk da bi se
locirao odreeni slog, nee biti vei od dva. Najee 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
slue za ubrzanje operacije pretraivanja. Klju pretraivanja je jedan
atribut (polje), odnosno moe biti i kombinacija dva ili vie atributa,
ali i dalje su to jednodimenzijski indeksi jer se i u tom sluaju
promatra kao jedinstveni klju za pretraivanje.
Naime, B-stablo polazi od toga da su svi kljuevi sortirani, dok hash
indeks se moe izraunati samo za unaprijed poznatu vrijednost
kljua.
Meutim, 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 obino u
dvodimanzijskom prostoru, a objekti mogu biti toke ili razliiti
oblici (ceste, kue, mostovi, vodovodne cijevi, elektrini kablovi i
sl.). Veina upita vezanih za GIS nisu uobiajeni SQL upiti, iako se,
uz odreene napore, mogu izraziti i pomou SQL-a.
Podatkovne kocke (data cubes), odnosno analiza podataka pomou
vie dimenzija (multidimenzijski pristup), danas se uglavnom
spominju vezano za sustave za potporu odluivanju i skladita
podataka.
Indeksne strukture koje podravaju upite nad vie dimenzija, spadaju
u jednu od sljedee dvije kategorije :
pristupi slini hash-tablicama
pristupi slini stablima.
www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


Strukture sline hash strukturama za viedimenzijske podatke
Dvije podatkovne strukture poopavaju hash tablice koje se kreiraju
samo pomou vrijednosti jednog atributa. Pokaziva na pretinac je
funkcija vie atributa ili dimenzija. Jedna takva struktura je
reetkasta (grid) datoteka, a druga podijeljena hash funkcija.
Reetkaste datoteke
Ideja reetkaste (grid) datoteke je grupirati podatke tako da se mogu
smjestiti u reetku koja se formira na temelju vrijednosti
dimenzija.
Podijeljena hash funkcija
Hash funkcija moe uzeti vrijednosti vie atributa kao argument, iako
se obino slue vrijednostima jednog atributa.

www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


Strukture sline stablima za viedimenziske podatke
Drugi tip struktura koji se, osim struktura slinih hash datotekama,
koristi za vie-dimenzijske podatke su strukture sline stablima.
Ove strukture su posebno korisne za upite bazirane na opsegu
vrijednosti, odnosno za upite bazirane na najbliim vrijednostima
kod viedimenziskih podataka.
etiri osnovne strukture sline stablima:
Indeksi viestrukih kljueva
Kd-stabla
Quad stabla
R-stabla

www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


Indeksi viestrukih kljueva (Multiple-key indexes)
Ukoliko, na primjer, postoji nekoliko atributa koji predstavljaju
dimenzije za toke podataka, te ukoliko se eli osigurati potpora za
upite bazirane na opsegu ili upite bazirane na najblioj vrijednosti,
onda jednostavna shema u obliku stabla za pristup tim tokama je
indeks od indeksa. Openito promatrano, radi se o stablu u kojem
su vorovi na svakoj razini indeksi nekog atributa.
Korijen stabla je indeks prvog od
dva atributa. Taj indeks moe biti
bilo koji tip standardnog indeksa,
kao to je B-stablo ili hash
tablica. Indeks je povezan s
vrijednosti kljua za
pretraivanje tj. vrijednostima
prvog atributa, i on je pokaziva
na drugi indeks.
www.ckm.ba - Leonardo Miljko

Organizacija i struktura baza podataka


Kd-stabla (k-dimenzijsko stablo pretraivanja) je podatkovna struktura
koja poopava binarno stablo pretraivanja na viedimenzijske
podatke. Ideja kd-stabla se moe prilagoditi i za pohrane podataka na
diskovima u blokovima.
Kd-stablo je binarno stablo u kojem lijevo dijete vora roditelj je manje,
a desno vee od roditelja. Isti atribut se zadrava na jednoj razini (npr.
atribut plaa je na razini 1, 3, a atribut dob na razinama 2 i 4). Drugim
rijeima, atributi na razliitim razinama stabla su razliiti pri emu se
atributi (dimenzije) smjenjuju (rotiraju) na pojedinim razinama.
Ideja kd-stabla je primjenjiva i na sekundarnu memoriju (disk), ali je
potrebno uiniti dvije promijene:
unutarnji vorovi imaju jednu vrijednost atributa i pokazivae na
lijevo i desno dijete
listovi stabla su blokovi podataka. Oni sadre odreen 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
podruju s dvije dimenzije, ili k-dimenzijskoj kocki s k dimenzija.
Ako broj toaka u etverokutnom podruju nije vei od prostora u
bloku, onda se to etverokutno podruje moe promatrati kao list
stabla, i prikazati blokom koji sadri njegove toke. Ako ima previe
toaka i ne mogu stati u blok, onda se etverokutno podruje
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 viedimenziske podatke, s tim da R-stablo predstavlja
podatke koji se sastoje od dvodimenziskih ili viedimenziskih
podruja, a ona se nazivaju podatkovna podruja. Unutarnji vor Rstabla odgovara nekom unutarnjem podruju, ili samo podruju koje
nije podatkovno podruje. U sutini, podruje moe biti razliitog
oblika, iako je ono u praksi najee pravokutnik. R-stablo umjesto
kljueva ima potpodruja koja predstavljaju sadraj njegove djece.
Tokasti pravokutnici su podpodruja povezana
s etvero njihove djece. Moe se primijetiti
da podpodruja ne pokrivaju cijelo podruje,
to je prihvatljivo sve dok su svi podaci
podruja, koja lee unutar veeg podruja,
unutar jednog od manjih podruja. Ukoliko
to nije sluaj, dozvoljeno je da podpodruja
imaju prekoraenja, ali je poeljno da ona
www.ckm.ba - Leonardo Miljko
budu to manja.

Organizacija i struktura baza podataka


Bitmap indeksi
Bitmap indeks za polje F je skup bit-vektora duljine n. Jedan vektor se
pridruuje jednoj moguoj vrijednosti polja F., po jednog za svaku
moguu vrijednost koja se moe 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 :
pronai 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 inenjer
elektrotehnike,
raunarstva i
informatike

Pitanja?
www.ckm.ba - Leonardo Miljko

You might also like