Tuesday, January 14, 2014

Oracle DB – Arhitektura – Drugi dio


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.

Grafički, tablespace bi moglo da se predstavi ovako:




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). 

Logička struktura Oracle RDBMS baze podataka grafički se može predstaviti na sledeći način: