20.1.2012.

Upravljanje podacima
Upravljanje transakcijama
Nastavnik: Prof.dr.sc. Dražena Gašpar

Datum: 17.01.2012.

Osnovne funkcije DBMS-a
          Pohranjivane podataka, pronalaţenje i aţuriranje Korisniku pristupačan katalog podataka Upravljanje transakcijama Višekorisnički rad (concurrency) Oporavak (recovery) Autorizacija Potpora za komunikacijske protokole Osiguranje integriteta Osiguranje neovisnosti podataka Utility services

1

20.1.2012.

Komponente DBMS-a
Programeri Aplikativni programi Korisnici DBA Shema baze podataka

Upiti

DBMS DML pretprocesor Procesor upita DDL kompilator

Objektni kod programa

Database manager

Dictionary manager

Metode pristupa

File manager

System buffers

Baza podataka i sistemski katalog

DB manager
Objektni kod programa Procesor upita Catalog manager

DB Manager

Kontrola autorizacije

Integrity checker

Procesor naredbi

Optimizator upita

Transakcijski manager

Scheduler

Data manager

Buffer manager

Recovery manager

Metode pristupa

File manager

System buffers

Baza podataka i sistemski katalog

2

20.1.2012.

ŠTO JE TRANSAKCIJA ?

Upravljanje transakcijama

 Pod transakcijom se podrazumijeva aktivnost ili niz aktivnosti koje izvršava jedan korisnik ili aplikacijski program, a koja čita ili aţurira sadrţaj baze podataka.  To je logička radna jedinica baze podataka

3

2012. Izoliranost (engl. ACID osobine: • • • • Atomiziranost (engl. isolation) – transakcije se izvršavaju neovisno jedna od druge Trajnost (engl. durability) – rezultat uspješno završenih (potvrĎenih) transakcija se trajno biljeţi u bazu podataka i ne smije se izgubiti zbog eventualnih naknadnih grešaka.1. Statusi transakcija COMMIT END TRANSACTION PARTIALLLY COM MITTED COM MITTED BEGIN TRANSACTION ACTIVE ABORT ABORT FAILED ABORTED Osobine transakcija Tzv.20. atomicity) – „sve ili ništa‟ Konzistentnost (engl. 4 . consistency) – transakcija mora transformirati bazu iz jednog konzistentnog stanja u drugo.

2012.20.1. Transakcijski podsustav Koordinira transakcije U ime aplikacija Implementira kontrolu konkurentosti Transakcijski manager Scheduler Buffer manager Recovery manager Metode pristupa File manager System buffers Baza podataka i sistemski katalog Kontrola višekorisničkog pristupa concurrency control Definicija: Proces upravljanja simultanim operacijama nad bazom podataka bez utjecaja jednih na druge. Potencijalni problemi: -lost update problem -uncommitted dependency problem -inconsistent analysis problem 5 .

Primjer: lost update Vrijeme t1 t2 t3 t4 t5 t6 Transakcija T1 Transakcija T2 begin transaction Salx 100 100 100 200 Upisuje 200 begin transaction read(Salx) Salx= Salx –10 Umanjuje 100 za 10 Učitava 100 read(Salx) Salx= Salx + 100 Uvećava za 100 write(Salx) commit write(Salx) commit Upisuje 90 90 90 Primjer: Uncommitted dependency (dirty read – kad je transakciji dozvoljeno da vidi meĎurezultat druge transakcije prije potvrde Vrijeme t1 t2 t3 t4 t5 t6 t7 t8 Transakcija T1 Transakcija T2 begin transaction read(Salx) Salx= Salx + 100 Salx 100 100 100 200 200 100 190 190 begin transaction read(Salx) Salx= Salx –10 write(Salx) commit write(Salx) Čita 200 Dirty data ….2012. rollback 6 .20.1.

20. Serial schedule: Redoslijed gdje se operacije svake transakcije izvršavaju kako dolaze bez ikakvog “miješanja” operacija iz drugih transakcija.1. serializability) Schedule: Redoslijed operacija sastavljen od skupa konkurentnih transakcija koji zadrţava redoslijed operacija u svakoj pojedinačnoj transakciji. t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 begin transaction read(Salx) Salx= Salx –10 write(Salx) read(Salz) Salz= Salz +10 write(Salz) commit read(Salz) zbroj=zbroj+Salz commit Transakcija T1 Transakcija T2 begin transaction zbroj=0 read(Salx) zbroj=zbroj+Salx read(Saly) Zbroj=zbroj+ Saly Salx 100 100 100 100 90 90 90 90 90 90 90 Saly 50 50 50 50 50 50 50 50 50 50 50 Salz 25 25 25 25 25 25 25 35 35 35 35 0 0 100 100 150 150 150 150 185 185 Zbroj Serijabilnost (engl. 7 . Nonserial schedule: Redoslijed gdje su operacije iz skupa konkurentnih transakcija izmiješane. Primjer: Inconsistent analysis problem Vr.2012.

Tehnike kontrole konkurentnosti (A) Konzervativne (pesimistične) uzrokuju odgaĎanje transakcija u slučaju da će biti u konfliktu s drugim transakcijama u budućnosti. . 8 . kada se transakcija potvrĎuje.Timestamp (B) Optimistične su bazirane na pretpostavci da su konflikti rijetki tako da dozvoljavaju transakcijama da nastave i nesinkronizirane i samo provjeravaju konflikt na kraju.2012.1. Serijabilnost CILJ: Pronaći ne-serijski redoslijed koji omogućava transakcijama da se izvršavaju konkurentno bez miješanja jedne s drugom.20. te na taj način za rezultat dobije stanje baze podataka koje bi se dobilo serijskim izvršavanjem transakcija.Zaključavanje (locking) .

Exclusive lock – transakcija moţe i čitati i aţurirati podatak. •Ako podatak nije već zaključan od strane druge transakcije. “lock” će se dodijeliti.1.2012. ali ga ne moţe aţurirati. transakcija MORA čekati dok se postojeći “lock” ne otpusti. Kada jedna transakcija pristupa bazi podataka. Metode zaključavanja Zaključavanje radi na slijedeći način: •Bilo koja transakcija koja treba pristup podatku mora prvo zaključati podatak tako što će zatraţiti “shared lock” za “read only” pristup ili “exclusive lock” za oba pristupa – i čitanje i pisanje.20. inače. Shared lock (djeljivo zaključavanje) – transakcija moţe čitati podatak. • Ako je podatak trenutno zaključan. zaključavanje moţe spriječiti pristup drugim transakcijama kako bi se izbjegli netočni rezultati. Tek nakon otpuštanja ekskluzivnog zaključavanja rezultati operacije pisanja postaju vidljivi i drugim transakcijama. Metode zaključavanja Zaključavanje: Procedura koja se koristi za kontrolu konkurentnog pristupa podacima. zahtjev će biti dodijeljen (granted). DBMS odreĎuje da li je zahtjev usklaĎen s postojećim zaključavanjem. 9 . •Transakcija nastavlja drţati “lock” sve dok se eksplicitno ne otpusti bilo tijekom izvršavanja ili kada završava (commit ili prekid). Ako je “shared lock” zatraţen nad podatkom koji već ima “shared lock”.

b) Jedanput kada transakcija otpusti zaključavanje. Zaključavanje moţe biti za čitanje ili pisanje. two-phase locking (2PL) Transakcija slijedi 2PL protokol ako sve operacije zaključavanja prethode prvoj operaciji otključavanja u transakciji.1. ne moţe više nikako traţiti postavljanje novih zaključavanja.20. 10 . Dvo-fazno zaključavanje Engl. Dvo-fazno zaključavanje Pravila: a) Transakcija mora zatraţiti zaključavanje prije rada s podatkom.2012. Podjela transakcija u 2 faze: -Growing (faza rasta) u kojoj se postavljaju sva potrebna zaključavanja ali se ne moţe otpustiti niti jedno -Shrinking (faza smanjivanja) u kojoj se otpuštaju sva zaključavanja ali se ne moţe postaviti niti jedno novo zaključavanje. ovisno o tipu potrebnog pristupa.

11 .1.2012. obje (sve) čekaju da se otpusti zaključavanje koje drţi druga transakcija.20. Primjer: izbjegavanje lost update problema pomoću 2PL Vrijeme t1 t2 t3 t4 begin transaction Write_lock(Salx) WAIT Transakcija T1 Transakcija T2 begin transaction Write_lock(Salx) read(Salx) Salx= Salx + 100 Salx 100 100 100 100 t5 t6 t7 t8 t6 t10 WAIT WAIT read(Salx) Salx= Salx –10 write(Salx) Commit/unlock(Salx) write(Salx) commit /unlock(Salx) 200 200 200 200 190 190 Deadlock Definicija: Mrtva točka koja nastaje kada dvije (ili više) transakcija.

Timestamping Kontrolni protokol konkurentnosti koji reda transakcije na takav način da starije transakcije.20. transakcije s manjim timestamp-om dobivaju prioritet u slučaju konflikta.2012. Primjer: deadlock Vrijeme t1 t2 t3 t4 Transakcija T1 begin transaction Write_lock(Salx) read(Salx) Salx= Salx –10 Transakcija T2 begin transaction Write_lock(SalY) read(SalY) t5 t6 t7 t8 t6 t10 write(Salx) Write_lock(Saly) WAIT WAIT WAIT … SalY= SalY + 100 write(SalY) Write_lock(Salx) WAIT WAIT … Timestamping metoda Timestamp Jedinstveni identifikator kreiran od strane DBMS-a koji pokazuje relativno početno vrijeme transakcije. 12 .1.

Postavlja se read_timestamp(x) = max(ts(T). Timestamping metoda . Timestamping metoda Svaki podatak sadrţi: Read_timestamp – timestamp zadnje transakcije koja je čitala podatak Write_timestamp – timestamp zadnje transakcije koja je upisala (aţurirala) podatak.read_timestamp(x)) 13 .20. U ovakvoj situaciji. a svaka druga vrijednost će vjerojatno biti nekonzistentna s aţuriranom vrijednošću.1. transakcija T se mora prekinuti i ponovno započeti sa novijim (kasnijim) timestamp-om.2012.pravila (1) Transakcija T traţi read(x) a) Transakcija T traţi čitanje podatka (x) koji je već aţuriran mlaĎom (kasnijom) transakcijom. Za stariju transakciju je prekasno da čita već zastarjelu vrijednost. b) u suprotnom. ako je timestamp od T >= write_timestamp(x) slijedi da se operacija čitanja moţe izvršiti. To znači da starija transakcija pokušava čitati vrijednost koja je aţurirana od strane mlaĎe transakcije.

Slijedi da transakcija T pokušava upisati zastarjelu vrijednost. write operacija se ignorira – tzv. b) Transakcija T traţi zapis za (x) čija je vrijednost već zapisana od strane mlaĎe transakcije. b) Transakcija T traţi zapis za (x) čija je vrijednost već zapisana od strane mlaĎe transakcije. Slijedi da transakcija T pokušava upisati zastarjelu vrijednost. c) inače. Timestamping metoda – Thomas’s write pravila (2) Transakcija T traţi write(x) a) Transakcija T traţi zapis podatka (x) koji je već pročitan od strane mlaĎe (kasnije) transakcije. operacija zapisa se moţe izvršiti. operacija zapisa se moţe izvršiti. Jedino rješenje je rollback transakcije T i ponovni start s mlaĎim timestampom. U ovom slučaju. Timestamping metoda . c) inače. Jedino rješenje je rollback transakcije T i ponovni start s mlaĎim timestampom. Jedino rješenje je rollback transakcije T i ponovni start s mlaĎim timestamp-om.20.2012. ignore obsolete write rule – što omogućava veću konkurentnost. To znači da mlaĎa transakcija već koristi tekuću vrijednost podatka i aţuriranje bi stvorilo grešku.1. 14 . Postavlja se write_timestamp(x) = ts(T).pravila (2) Transakcija T traţi write(x) a) Transakcija T traţi zapis podatka (x) koji je već pročitan od strane mlaĎe (kasnije) transakcije. Postavlja se write_timestamp(x) = ts(T). Ovo se dogaĎa kada je transakija zakasnila u zapisivanju i mlaĎa transakcija već čita staru vrijednosti ili upisuje novu.

tj. Aţuriranja se rade na lokalnoj kopiji podataka a ne na samoj bazi. -Faza pisanja – slijedi nakon uspješnog okončanja faze validacije za transakcije aţuriranja. Svakoj transakciji T se dodjeljuje timestamp na početku izvršavanja – start(T). transakcija se potvrĎuje. onda: 1) 2) Skup podataka zapisanih od strane S transakcije nije skup koji čita T S kompletira svoju fazu upisa prije nego T ulazi u svoju fazu validacije. ovo podrazumijeva provjeru da su pročitane vrijednosti i stvarne vrijednosti. aţuriranja napravljena na lokalnoj kopiji primjenju se na bazu podataka. start(T) < finish(S)< validation(T) 15 . tj. Transakcija čita vrijednosti svih podataka potrebnih iz baze i pohranjuje ih u lokalne varijable. provjera se sastoji u odreĎivanju da li trenutna transakcija ostavlja bazu u konzistentnom stanju. finish(S) < start(T) 2) Ako transakcija T starta prije nego starija S završi. inače se prekida. -Faza validacije – slijedi nakon faze čitanja.20. Za read-only transakciju. Optimistične tehnike Tro-fazni kontrolni protokol: -Faza čitanja – proteţe se od početka transakcije sve do potvrde. uz odrţanje serijabilnosti. jedan na početku faze validacije – validation(T) i jedan na kraju – finish(T).2012. Tijekom ove faze. Validacija je prošla ako je istinito jedno od: 1) Sve transakcije S sa ranijim timestamp-ovima moraju biti završene prije starta transakcije T. Ako je sve OK. transakcija se prekida.1. Rade se provjere da nije narušena serijabilnost ukoliko se aţuriranje primijeni na bazu. u protivnom. Za transakcije koje imaju aţuriranje. Optimistične tehnike Faza validacije provjerava read i write operacije transakcija koje mogu uzrokovati “miješanje”.

20. Kontrola višekorisničkog pristupa concurrency control .1.2012.ORACLE 2 tipa transakcija: -DML – sadrţi jedan ili više DML izraza -DDL – sadrţi jedan DDL izraz Transakcija započinje kada: -DDL naredba je izdana -Prvi DML izraz je pokrenut nakon COMMIT-a Transakcija završava kada: -COMMIT ili ROLLBACK je izvršen -DDL naredba je izvršena (automatska potvrda) -Strojna pogreška (rollback se izvršava) 16 .ORACLE pristup -multiversion read consistency protocol (ako drugi korisnik promijeni podatke tijekom izvršavanja upita Oracle odrţava verziju podataka koja je postojala u trenutku kada je upit započet) .Oracle ne postavlja zaključavanje na READ transakcije Upravljanje transakcijama .

2012.redak (row) .Dictionary locks .20.Eksplicitno zaključavanje (korisnik ili aplikacija) Razine zaključavanja: .Implicitno zaključavanje (server) .ORACLE 2 tipa zaključavanja: .ORACLE SQL izrazi za kontrolu transakcija: •COMMIT •SAVEPOINT naziv •ROLLBACK [to SAVEPOINT naziv] TRANSACTION INSERT COMMIT UPDATE DELETE INSERT UPDATE INSERT SAVEPOINT COMMIT ROLLBACK ROLLBACK TO SAVEPOINT Zaključavanje . Upravljanje transakcijama .1.Data locks (DML) .tablica (table) 17 .

1. SELECT sal FROM emp WHERE empno=7902 FOR UPDATE of sal nowait.ORACLE SELECT stupac FROM tablica WHERE uvjet FOR UPDATE [of column] [nowait].20. Zaključavanje .nuţan je ekskluzivan pristup tablici .traţi se konzistentan pogled . 18 .2012.LOCK TABLE Zaključavanje .ORACLE Ručno zaključavanje: .zaključavanje ne smije čekati 2 načina: .SELECT … FOR UPDATE .

2012.1.20. Distribuirane baze podataka 19 .ORACLE LOCK TABLE ime_tablice IN locking_mode MODE [nowait]. Zaključavanje . LOCK TABLE emp IN EXCLUSIVE MODE NOWAIT.

Definicija Skup baza podataka smještenih na više različitih računala i prostornih lokaliteta.20. Značajke DDBMS Skup logički povezanih djeljivih podataka Podaci su razdvojeni na više fragmenata Fragmenti se mogu replicirati Fragmenti/Replikacije pripadaju lokacijama Lokacije su povezane komunikacijskom mreţom Podaci na svakoj lokaciji su pod nadzorom DBMS-a  DBMS na svakoj lokaciji moţe upravljati lokalnim aplikacijama autonomno  Svaki DBMS učestvuje u najmanje jednoj globalnoj aplikaciji. gdje mreţa moţe biti LAN ili WAN.       20 .1. Aplikacije istovremeno pristupaju i mijenjaju podatke na više različitih baza podataka u mreţi.2012. a s kojima korisnik radi kao da je u pitanju jedna jedinstvena baza.

2012.1.20. DDBMS Lokacija 1 Data Tower box Lokacija 4 Lokacija 2 RAČUNALNA MREŢA Data Tower box Tower box Data Lokacija 3 Tower box DDBMS Prednosti Odraţava organizacijsku strukturu Poboljšana djeljivost i lokalna autonomija Poboljšana raspoloţivost Poboljšana pouzdanost Poboljšane performanse Ekonomičnost Modularni rast Nedostaci Kompleksnost Troškovi Sigurnost Oteţana kontrola integriteta podataka Nedostatak standarda Nedostatak iskustva Mnogo kompleksniji dizajn baze 21 .

uključujući optimiziranje upita i pristup udaljenim podacima  Proširena kontrola sigurnosti za upravljanje odgovarajućim pravima pristupa distribuiranim podacima  Prošireni servisi oporavka (engl. Osnovna klasifikacija DDBMS  Homogeni sustav sve lokacije koriste isti DBMS produkt  Heterogeni sustav lokacije koriste različite DBMS produkte mogu koristiti i različite modele podataka Osnovna funkcionalnost DDBMS  Prošireni komunikacijski servisi koji osiguravaju pristup udaljenim lokacijama i dozvoljavaju prijenos upita i podataka izmeĎu lokacija putem mreţe  Prošireni katalog sustava za pohranjivanje detalja o distribuciji podataka  Distribuirano procesiranje upita. recovery) moraju uzeti u obzir ispade/greške pojedinih lokacija i ispade/greške komunikacijskih veza 22 .20.2012.1.

S1 Globalna v anj ska shema S2 Globalna v anj ska shema ....20. Sn Globalna v anj ska shema Globalna konceptualna shema Fragmentacij ska shema Alokacij ska shema S1 Lokalna v anj ska shema S2 Lokalna v anj ska shema .1. Arhitektura DDBMS Sheme:  Skup globalnih vanjskih shema  Globalna konceptualna shema  Fragmentacijska shema i alokacijska shema  Skup shema za svaku lokalnu DBMS koji zadovoljava ANSI-SPARC arhitekturu s tri razine shema.2012. Sn Lokalna v anj ska shema Lokalna konceptualna shema Lokalna konceptualna shema Lokalna konceptualna shema Lokalna unutarnj a shema Lokalna unutarnj a shema Lokalna unutarnj a shema Data Data Data 23 ..

20. Arhitektura DDBMS Četiri osnovna dijela:     Lokalna DBMS komponenta Komunikacijska komponenta Globalni katalog sustava Distribuirana DBMS komponenta Strategije alociranja podataka Četiri osnovne:     Centralizirana Fragmentirana Potpuna replikacija Selektivna replikacija 24 .1.2012.

mali za čitanje Niski Selektivna replikacija Velika Mala za item. 25 . troškovi Najviši Najmanja Nezadovolja Najniţi vajuće Zadovoljava Najniţi juće Najbolje za čitanje Najviši Fragmentirana Velika Mala za item. Strategije alociranja podataka Lokalizacija Centralizirana Pouzdanost Performans Raspoloţiv. e Najmanja Troškovi pohrane Komunikac. velika za sustav Najveća Niski Potpuna replikacija Najveća Visoki za aţurir.  Neprekinuti rad – niti jedna planirana aktivnost ne bi trebala kao preduvjet za svoje izvršavanje traţiti "spuštanje" (engl. shutdown) baze podataka.  Neovisnost od dijeljenja – tablicu koja je fragmentirana (podijeljena) korisnici i dalje vide kao jedinstvenu tablicu.  Nepostojanje centralnog mjesta – niti jedno mjesto nije vaţnije od drugog.  Neovisnost o lokaciji – korisnici i programeri ne moraju znati lokaciju ili put do podataka.. velika za sustav Zadovoljava Prosječni juće Chris Date-ova pravila  Lokalna autonomija – lokalnim podacima se upravlja neovisno od ostalih mjesta.20.1.2012.

2012.  Optimizaciju distribuiranih upita i neovisnost o performansama. Protokol dvofaznog potvrĎivanja transakcija osigurava procesiranje distribuiranih transakcija po istim načelima konzistentnosti i integriteta kao i procesiranje transakcija potpuno unutar jedne jedinstvene baze podataka.  Postojanje distribuiranog pristupa rječniku podataka. 26 . two-phase commit Omogućava sinkronizirano zaključavanje svih dijelova transakcije.  Neovisnost od hardvera. pristup i aţuriranje redundantnih podataka.  Upravljanje distribuiranim transakcijama: umetnute transakcije koje aţuriraju više mjesta izvršavaju se s istovremenom kontrolom i oporavkom od konflikata. Chris Date-ova pravila  Neovisnost o replikaciji – transparentno upravljanje.1. baze podataka. operativnog sustava. Rezultat: jedinstvena akcija kojom se transakcija prenosi na više lokacija i procesora. rekonstruiranje nakon ispada zbog različitih grešaka. Protokol dvofaznog potvrđivanja transakcija Engl.20. mreţe.

Protokol dvofaznog potvrđivanja transakcija  1. nakon što su na drugima izvršena aţuriranja ispad bilo kojega čvora uzrokuje poništavanje transakcije. Cilj Višestruki čvorovi Sinkronizirano aţuriranje Procedura Glavni čvor šalje poruku o aţuriranju potčinjenim čvorovima : “napravi brzu potvrdu prijema” Potčinjeni čvor odgovara s “potvrĎujem prijem” Glavni šalje poruku “potvrdi bazu podataka” Potčinjeni odgovara s “potvrĎeno”. traţi dodatne mehanizme za oporavak koji mogu biti veoma sloţeni. 27 . 2. mnogo različitih implemetacija ne postoji utvrĎen i usvojen standard 2.20. naročito kada se ispad pojavi na nekom čvoru. Protokol dvofaznog potvrđivanja transakcija  Problemi 1. 2.  1.2012.1. 3. 4.

centralistički model baze podataka. Postupak repliciranja omogućava korisnicima da imaju svoje vlastite lokalne kopije podataka. približno realno v rijeme potpuno sinkronizirano ažurirane kopije (DDBMS) 28 . s mogućnošću aţuriranja. smanjiti promet po mreţi. Izazov: osiguravanje da sve te kopije rade s istim konzistentnim podacima tj.20.1. Replikacija podataka Kopiranje podataka baze na višestruke lokacije kako bi se podrţale distribuirane aplikacije.2012. Replikacija podataka SMANJENJE velika dodata vrijednost POVEĆANJE v elika točnost točka u v remenu samo za čitanje prov jera izmjena asinkrono ažurirane kopije samo za čitanje. mogu dati potporu povećanom lokalnom procesiranju. da imaju isti integritet i upravljačke mogućnosti koje su na raspolaganju za monolistički. olakšati skalabilnost i pojeftiniti distribuirano procesiranje. Ove lokalne kopije.

Object-Oriented DataBase) – stalni i djeljivi skup objekata definiranih pomoću OODM. Tema: Objektno orijentirane baze podataka Definicije OODM (engl.1. OODB (engl. OODBMS (engl. 29 . Object-Oriented Data Model) – logički model podataka koji prihvaća semantiku objekata podržanu u objektno-orijentiranom programiranju.Object-Oriented DataBase Management System) – upravljanje OODB.2012.20.

integritet podataka i transakcija.20.1. nasljeĎivanje i objektni identitet. uključujući jezike za pristup. Definicije Objektno orijentirani sustav baza podataka jeste sustav baza podataka – u smislu da ima sve osobine baza podataka. sposobnost upravljanja ogromnim količinama podataka. Definicije Objektna orijentacija = apstraktni tipovi podataka + nasljeĎivanje + objekti OODBMS = objektna orijentacija + mogućnosti baza podataka 30 .2012. sigurnost i oporavak – koji dodatno podrţava apstrakciju. postojanost.

20. Definicije Tradicionalni DBMS *Trajnost *Djeljivost *Transakcije *Kontrola pristupa *Oporavak *Sigurnost *Integritet *Upiti Semantički Model podataka *Generalizacija *Agregacija Objektno-orijentirano programiranje *Objekti *Omatanje *NasljeĎivanje *Tipovi i klase *Metode *Složeni objekti *Polimorfizam Proširivost Posebni zahtjevi *Verzije *Razvoj sheme Objektno-orijentirani Model podataka Osnovni problemi RDBMS  Dugotrajne transakcije  Verzije  Razvoj (promjena) sheme 31 .1.2012.

1.2012.  Slična klasifikaciji je asocijacija – konkretne instance se grupiraju u klase prema nekoj osobini koja im je zajednička. postoji izraženiji zahtjev za modeliranjem strukturnih osobina podataka i pravljenjem eksplicitne strukture nasljeđivanja i agregacije. enkapsulation) mora biti podržano Tipovi ili klase moraju biti podržani Mora biti omogućeno nasljeđivanje kod tipova i klasa Mora biti podržano dinamičko povezivanje DML mora biti potpun programski jezik Skup tipova podataka mora biti proširiv Trajnost podataka treba biti osigurana DBMS mora moći upravljati iznimno velikim bazama DBMS mora podržati višekorisnički rad DBMS mora podržavati oporavak od HW i SW grešaka DBMS mora osigurati jednostavan način pretraživanja 32 . Postoje različiti načini prikaza takvih struktura:  Objekti se mogu grupirati u klase prema zajedničkim strukturnim i osobinama ponašanja – što se naziva klasifikacija.20. Objekti se mogu grupirati kao dijelovi nekog kompozitnog objekta na dva načina: kao dio strukture (kompozicija) ili kao skup atributa (agregacija). OODB Manifesto              Moraju se podržavati složeni objekti Identitet objekta mora biti podržan Omotavanje (engl. Prikaz strukture podataka Kod objektno orijentiranih sustava baza podataka.

Ovo je posebno uočljivo kod aplikacija koje uključuju inženjerske crteže i kompleksnu grafiku. To je prvenstveno stoga što nema potrebe za razbijanjem velikih objekata kako bi se pohranili u normalizirane tablice. Ostale su prednosti vezane uz opće odlike baze podataka kao što su dijeljenje podataka. Prednosti OODBMS Prednosti koje proizlaze izravno iz mogućnosti samog dizajna objektno orijentiranih baza podataka: Objektno orijentirane baze podataka kombiniraju brzinu mrežnih baza podataka s fleksibilnošću relacijskih. tekst i drugi koncepti mogu se modelirati i pohranjivati unutar jedinstvene konceptualne sheme. Objektno orijentirane baze daju općenito bolju navigacijsku kontrolu nad upitima jer su pokazivači vezani za i smješteni uz objekte. Objektna metafora podržava multimedijalne aplikacije na prirodan način. impedance mismatch) između aplikacijskog programskog jezika i DML-a. s privremenim ponašanjem (video i zvuk). . što omogućava projektantima uporabu uniformnijeg načina u prikazivanju dizajna.1. 33 . Generalno imaju bolje performanse kada su u pitanju složeni objekti i složene relacije.20. sigurnost i slično. Prednosti OODBMS Prednosti koje proizlaze iz potrebe uporabe objektno orijentiranih programskih jezika ili okruženja: . jer je metafora prenošenja poruka prirodna za uporabu kod distribuiranih sustava. Potpora za duge transakcije uz uporabu trajnog zaključavanja i za automatsku kontrolu verzija čini ove baze osnovom za novi pristup distribuiranom dizajnu. a zatim ponovno sastavljanje u trenutku izvršavanja uz uporabu sporih operacija spajanja. Objekti s osobinama oblika.Objektno orijentirane baze podataka pomažu smanjenju semantičkog procijepa između objekata i koncepata realnog svijeta i njihovog predstavljanja u bazi podataka. distribuiranje. One također nude rješenje problema dekompozicije s gubitkom informacija (engl.Objektno orijentirana baza podataka minimizira potrebu za straničenjem objekata u memoriji kada se rabi objektno orijentirano programiranje.2012.

1.20.2012. Nedostaci OODBMS      Nepostojanje univerzalnog modela podataka Nedostatak iskustva Nedostatak standarda Optimiziranje upita narušava enkapsuliranje Zaključavanje na razini objekta može utjecati na performanse  Kompleksnost  Nedostatak potpore za poglede  Nedostatak potpore za sigurnost Tema: Relacijske baze s objektno orijentiranim proširenjima 34 .

Infrastruktura – nove metode indeksiranja/pristupa i proširenja optimizatora koji ih podrţavaju. User Defined Types) – Korisnički definirani tipovi.1.1997]: -Automatska optimizacija upita i njihova obrada -Indeksiranje apstraktnih tipova podataka -Kontrola istovremenog pristupa -Autorizacija -Okidači -Pohranjene procedure -Dinamički razvoj sheme baze podataka -Obvezna sigurnost ORDBMS Najznačajnije. User Defined Functions) – Korisnički definirane funkcije. [1] UDTs (engl. ORDBMS Osnovne osobine koje proširuju relacijsku u relacijsku bazu podataka s objektno orijentiranim proširenjima su [Kim. [2] UDFs (engl. osobine relacijske baze s objektno orijentiranim proširenjima su: Korisnički definirani tipovi (UDTs[1]).2012. 35 . Korisnički definirane funkcije (UDFs[2]).20. nove.

optimiziranje.  Integrirani. ORDBMS – Federalni pristup Upravljanje sesijama i upitima.. koordiniranje izvršenja.2012.. integriranje rezultata Relacijska baza podataka Objektna baza podataka . 36 .1.20. ORDBMS Dva različita pristupa koje rabe proizvoĎači kako bi uključili i objektnu komponentu u svoje relacijske baze podataka:  Federalni.

20. operators  collection types (arrays. multisets)  potpora za velike objekte – Binary Large Objects (BLOBs)  rekurzija 37 . sets.2012.1. SQL3 standard Sastoji se od:  SQL/Framework  SQL/Foundation  SQL/CLI (Call-Level Interface)  SQL/PSM (Persistent Stored Modules)  SQL/Bindings SQL3 standard Novine:  row types (tipovi redaka)  user-defined types (korisnički definirani tipovi)  user-defined procedures. lists. functions.

20. grad VARCHAR(15)). SQL3 standard row types (tipovi redaka) sekvenca parova ime polja/tip podatka koja omogućava tipu podataka da predstavlja tipove redaka u tablici. Adresa ROW(ulica VARCHAR(25).Višeslava 57‟. U suštini.ROW(„K. 38 . SQL3 standard row types (tipovi redaka) – primjer CREATE TABLE podruznica( Sifra CHAR(4).1. tako da kompletni redovi mogu biti pohranjeni u varijable. INSERT INTO podruznica VALUES(„B005‟.‟Mostar‟)).2012. red je tablica ugnjeţdena unutar tablice. Moţe se koristiti za omogućavanje stupcu tablice da sadrţi vrijednosti retka. proslijeĎeni kao argumenti rutinama i vraćeni kao povratna vrijednost iz poziva funkcija.

20. Rezultat je da jedna tablica predstavlja višestruke “master-detail” razine. SQL3 standard collection types (kolekcija tipova) Koriste se za pohranu više vrijednosti u jedan stupac tablice i mogu rezultirati ugnjeţdenim tablicama gdje stupac u jednoj tablici stvarno sadrţi drugu tablicu. P I T A NJ A ??? 39 .1.2012.

Sign up to vote on this title
UsefulNot useful