Logička struktura Oracle RDBMS baze podataka
Logički Oracle RDBMS baza podataka podijeljena je na
logičke jedinice koje se zovu TABLESPACE-ovi. Tablespace predstavlja logičku
grupaciju podataka, odnosno svih objekata koji pripadaju nekoj aplikaciji.
Svaki tablespace može obuhvatati jedan ili više Baznih Data fajlova. Svaka
Oracle RDBMS baza podataka podijeljena je na više tablespace-ova, osnovni tablespace-ovi
su: SYSTEM, SYSAUX, UNDO, USERS i TEMP.
U SYSTEM tablespace Oracle baza podataka smiješta podatke
koji su važni za rad same baze, a to su podaci o kreiranju novih data fajlova,
povećanju njihove veličine, podaci o kreitanju tablespace-ova, itd.
SYSAUX
tablespace je predstavljen u Oracle RDBMS verziji 10gR1 i namijenjen je za
smiještanje podataka o performansama rada baze podataka.
UNDO
tablespace, takođe predstavljen u Oracle RDBMS verziji 10gR1, namijenjen je za smještanje undo podataka. Undo podaci su originalni podaci iz tabele koji se
privremeno smještaju u UNDO tablespace kada korisnik izvršava delete ili update operacije nad podacima u tabeli. Undo podaci su neophodni zbog
održavanja konzistentnosti podataka u slučaju da korisnik ne želi snimiti promjene
nad podacima koje je napravio pomoću operacija delete i update, ili se desio neki problem na sistemu a korisnik nije snimio svoje izmjene.
USERS
tablespace namijenjen je za smiještanje podataka koje unosi korisnik ili za
podatke koje koristi neka aplikacija. Obično, za svaku aplikaciju kreira se poseban
tablespace.
TEMP
tablespace koristi se za privremeno smiještanje podataka prilikom sortiranja pri izvršenju SQL koda.
Najsitnija
logička podjela je podjela tablespace-a na extent-e.
Extent-i predstavljaju specifične
skupove kontinualnih data blokova koji se nalaze na jednoj lokaciji u kojima se
smiještaju specifični tipovi informacija.
Pored
extent-a, tablespace se logički
dijeli i na segment-e. Segment-i su, prosto rečeno, grupe extent-a koji su predefinisani za neku
logičku strukturu. Postoji više tipova segment-a,
a to su:
Data segment - Svaka tabela je ustvari data segment. Svi podaci
koji se nalaze u tabelama nalaze se u extent-ima
data segment-a.
Index segment – Svaki index je ustvari index segment.
Temporary segment – Ovaj tip segmenta se kreira samo u trenutku kada je nekoj
SQL operaciji potreban privremeni (temporary) prostor u bazi kako bi se ona
izvršila. Nakon toga ovaj privremeni prostor na bazi se oslobađa.
Rollback segment – U ranijim verzijama (prije verzije 10gR1) Oracle
RDBMS baze podataka koristile su rollback segment-e za smiještanje undo
podataka. Informacije
koje su se nalazile u rollback segment-ima korišćene su u toku oporavka baze
kako bi se obezbijedila konzistentnost podataka. Međutim,
novije verzije Oracle baza podataka rade u automatic undo managment modu tako
da baza za undo podatke koristi poseban (UNDO) tablespace.
Bitno je napomenuti da postoje i različite vrste tablespace-ova zavisno od veličine baznog bloka. Default-na veličina baznog bloka je 8k. Bazni blok može imati vrijednost od 2k do 32k. Veličina bloka može se definisati na nivou cijelog sistema (baze) ili na nivou tablespace-a. Izbor veličine baznog bloka prevashodno zavisi od namjene Oracle RDBMS baze podataka (da li je to Warehouse ili Transakciona baza).
Postoji još jedna podjela tablespace-a na smalfile i bigfile tablespace. Smalfile tablespace je default-ni tablespace format koji je opisan u prethodnom tekstu. Bigfile tablespace je specijalni tip tablespace-a koji može imati samo jedan data fajl ali njegova veličina može biti dosta velika (zavisno od veličine baznog bloka tablespace-a).