Вы находитесь на странице: 1из 39

20.1.2012.

Upravljanje podacima
Upravljanje transakcijama
Nastavnik: Prof.dr.sc. Draena Gapar

Datum: 17.01.2012.

Osnovne funkcije DBMS-a


Pohranjivane podataka, pronalaenje i auriranje Korisniku pristupaan katalog podataka Upravljanje transakcijama Viekorisniki rad (concurrency) Oporavak (recovery) Autorizacija Potpora za komunikacijske protokole Osiguranje integriteta Osiguranje neovisnosti podataka Utility services

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

20.1.2012.

TO JE TRANSAKCIJA ?

Upravljanje transakcijama

Pod transakcijom se podrazumijeva aktivnost ili niz aktivnosti koje izvrava jedan korisnik ili aplikacijski program, a koja ita ili aurira sadraj baze podataka. To je logika radna jedinica baze podataka

20.1.2012.

Statusi transakcija

COMMIT END TRANSACTION

PARTIALLLY COM MITTED

COM MITTED

BEGIN TRANSACTION

ACTIVE

ABORT

ABORT

FAILED

ABORTED

Osobine transakcija
Tzv. ACID osobine:
Atomiziranost (engl. atomicity) sve ili nita Konzistentnost (engl. consistency) transakcija mora transformirati bazu iz jednog konzistentnog stanja u drugo. Izoliranost (engl. isolation) transakcije se izvravaju neovisno jedna od druge Trajnost (engl. durability) rezultat uspjeno zavrenih (potvrenih) transakcija se trajno biljei u bazu podataka i ne smije se izgubiti zbog eventualnih naknadnih greaka.

20.1.2012.

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 viekorisnikog 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

20.1.2012.

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 Uitava 100

read(Salx) Salx= Salx + 100


Uveava za 100

write(Salx) commit

write(Salx) commit

Upisuje 90

90 90

Primjer: Uncommitted dependency


(dirty read kad je transakciji dozvoljeno da vidi meurezultat 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

. rollback

20.1.2012.

Primjer: Inconsistent analysis problem


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

Schedule: Redoslijed operacija sastavljen od skupa konkurentnih transakcija koji zadrava redoslijed operacija u svakoj pojedinanoj transakciji.

Serial schedule: Redoslijed gdje se operacije svake transakcije izvravaju kako dolaze bez ikakvog mijeanja operacija iz drugih transakcija.
Nonserial schedule: Redoslijed gdje su operacije iz skupa konkurentnih transakcija izmijeane.

20.1.2012.

Serijabilnost

CILJ: Pronai ne-serijski redoslijed koji omoguava transakcijama da se izvravaju konkurentno bez mijeanja jedne s drugom, te na taj nain za rezultat dobije stanje baze podataka koje bi se dobilo serijskim izvravanjem transakcija.

Tehnike kontrole konkurentnosti


(A) Konzervativne (pesimistine) uzrokuju
odgaanje transakcija u sluaju da e biti u konfliktu s drugim transakcijama u budunosti.

- Zakljuavanje (locking) - Timestamp (B) Optimistine su bazirane na pretpostavci da su


konflikti rijetki tako da dozvoljavaju transakcijama da nastave i nesinkronizirane i samo provjeravaju konflikt na kraju, kada se transakcija potvruje.

20.1.2012.

Metode zakljuavanja
Zakljuavanje: Procedura koja se koristi za kontrolu konkurentnog pristupa podacima. Kada jedna transakcija pristupa bazi podataka, zakljuavanje moe sprijeiti pristup drugim transakcijama kako bi se izbjegli netoni rezultati. Shared lock (djeljivo zakljuavanje) transakcija moe itati podatak, ali ga ne moe aurirati. Exclusive lock transakcija moe i itati i aurirati podatak.

Metode zakljuavanja
Zakljuavanje radi na slijedei nain: Bilo koja transakcija koja treba pristup podatku mora prvo zakljuati podatak tako to e zatraiti shared lock za read only pristup ili exclusive lock za oba pristupa i itanje i pisanje. Ako podatak nije ve zakljuan od strane druge transakcije, lock e se dodijeliti. Ako je podatak trenutno zakljuan, DBMS odreuje da li je zahtjev usklaen s postojeim zakljuavanjem. Ako je shared lock zatraen nad podatkom koji ve ima shared lock, zahtjev e biti dodijeljen (granted), inae, transakcija MORA ekati dok se postojei lock ne otpusti. Transakcija nastavlja drati lock sve dok se eksplicitno ne otpusti bilo tijekom izvravanja ili kada zavrava (commit ili prekid). Tek nakon otputanja ekskluzivnog zakljuavanja rezultati operacije pisanja postaju vidljivi i drugim transakcijama.

20.1.2012.

Dvo-fazno zakljuavanje
Engl. two-phase locking (2PL) Transakcija slijedi 2PL protokol ako sve operacije zakljuavanja prethode prvoj operaciji otkljuavanja u transakciji. Podjela transakcija u 2 faze: -Growing (faza rasta) u kojoj se postavljaju sva potrebna zakljuavanja ali se ne moe otpustiti niti jedno -Shrinking (faza smanjivanja) u kojoj se otputaju sva zakljuavanja ali se ne moe postaviti niti jedno novo zakljuavanje.

Dvo-fazno zakljuavanje

Pravila: a) Transakcija mora zatraiti zakljuavanje prije rada s podatkom. Zakljuavanje moe biti za itanje ili pisanje, ovisno o tipu potrebnog pristupa. b) Jedanput kada transakcija otpusti zakljuavanje, ne moe vie nikako traiti postavljanje novih zakljuavanja.

10

20.1.2012.

Primjer: izbjegavanje lost update problema pomou 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 toka koja nastaje kada dvije (ili vie) transakcija, obje (sve) ekaju da se otpusti zakljuavanje koje dri druga transakcija.

11

20.1.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 poetno vrijeme transakcije.

Timestamping Kontrolni protokol konkurentnosti koji reda transakcije na takav nain da starije transakcije, transakcije s manjim timestamp-om dobivaju prioritet u sluaju konflikta.

12

20.1.2012.

Timestamping metoda
Svaki podatak sadri: Read_timestamp timestamp zadnje transakcije koja je itala podatak Write_timestamp timestamp zadnje transakcije koja je upisala (aurirala) podatak.

Timestamping metoda - pravila


(1) Transakcija T trai read(x) a) Transakcija T trai itanje podatka (x) koji je ve auriran mlaom (kasnijom) transakcijom. To znai da starija transakcija pokuava itati vrijednost koja je aurirana od strane mlae transakcije. Za stariju transakciju je prekasno da ita ve zastarjelu vrijednost, a svaka druga vrijednost e vjerojatno biti nekonzistentna s auriranom vrijednou. U ovakvoj situaciji, transakcija T se mora prekinuti i ponovno zapoeti sa novijim (kasnijim) timestamp-om. b) u suprotnom, ako je timestamp od T >= write_timestamp(x) slijedi da se operacija itanja moe izvriti. Postavlja se read_timestamp(x) = max(ts(T),read_timestamp(x))

13

20.1.2012.

Timestamping metoda - pravila


(2) Transakcija T trai write(x) a) Transakcija T trai zapis podatka (x) koji je ve proitan od strane mlae (kasnije) transakcije. To znai da mlaa transakcija ve koristi tekuu vrijednost podatka i auriranje bi stvorilo greku. Ovo se dogaa kada je transakija zakasnila u zapisivanju i mlaa transakcija ve ita staru vrijednosti ili upisuje novu. Jedino rjeenje je rollback transakcije T i ponovni start s mlaim timestampom. b) Transakcija T trai zapis za (x) ija je vrijednost ve zapisana od strane mlae transakcije. Slijedi da transakcija T pokuava upisati zastarjelu vrijednost. Jedino rjeenje je rollback transakcije T i ponovni start s mlaim timestamp-om. c) inae, operacija zapisa se moe izvriti. Postavlja se write_timestamp(x) = ts(T).

Timestamping metoda Thomass write pravila

(2) Transakcija T trai write(x) a) Transakcija T trai zapis podatka (x) koji je ve proitan od strane mlae (kasnije) transakcije. Jedino rjeenje je rollback transakcije T i ponovni start s mlaim timestampom. b) Transakcija T trai zapis za (x) ija je vrijednost ve zapisana od strane mlae transakcije. Slijedi da transakcija T pokuava upisati zastarjelu vrijednost. U ovom sluaju, write operacija se ignorira tzv. ignore obsolete write rule to omoguava veu konkurentnost. c) inae, operacija zapisa se moe izvriti. Postavlja se write_timestamp(x) = ts(T).

14

20.1.2012.

Optimistine tehnike
Tro-fazni kontrolni protokol: -Faza itanja protee se od poetka transakcije sve do potvrde.
Transakcija ita vrijednosti svih podataka potrebnih iz baze i pohranjuje ih u lokalne varijable. Auriranja se rade na lokalnoj kopiji podataka a ne na samoj bazi.

-Faza validacije slijedi nakon faze itanja. Rade se provjere da nije


naruena serijabilnost ukoliko se auriranje primijeni na bazu. Za read-only transakciju, ovo podrazumijeva provjeru da su proitane vrijednosti i stvarne vrijednosti. Ako je sve OK, transakcija se potvruje, inae se prekida. Za transakcije koje imaju auriranje, provjera se sastoji u odreivanju da li trenutna transakcija ostavlja bazu u konzistentnom stanju, uz odranje serijabilnosti, u protivnom, transakcija se prekida.

-Faza pisanja slijedi nakon uspjenog okonanja faze validacije za


transakcije auriranja. Tijekom ove faze, auriranja napravljena na lokalnoj kopiji primjenju se na bazu podataka.

Optimistine tehnike
Faza validacije provjerava read i write operacije transakcija koje mogu uzrokovati mijeanje. Svakoj transakciji T se dodjeljuje timestamp na poetku izvravanja start(T), jedan na poetku faze validacije validation(T) i jedan na kraju finish(T). Validacija je prola ako je istinito jedno od: 1) Sve transakcije S sa ranijim timestamp-ovima moraju biti zavrene prije starta transakcije T, tj. finish(S) < start(T) 2) Ako transakcija T starta prije nego starija S zavri, 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, tj. start(T) < finish(S)< validation(T)

15

20.1.2012.

Kontrola viekorisnikog pristupa


concurrency control - ORACLE pristup

-multiversion read consistency protocol (ako drugi korisnik promijeni podatke tijekom izvravanja upita Oracle odrava verziju podataka koja je postojala u trenutku kada je upit zapoet) - Oracle ne postavlja zakljuavanje na READ transakcije

Upravljanje transakcijama - ORACLE


2 tipa transakcija: -DML sadri jedan ili vie DML izraza -DDL sadri jedan DDL izraz

Transakcija zapoinje kada: -DDL naredba je izdana -Prvi DML izraz je pokrenut nakon COMMIT-a
Transakcija zavrava kada: -COMMIT ili ROLLBACK je izvren -DDL naredba je izvrena (automatska potvrda) -Strojna pogreka (rollback se izvrava)

16

20.1.2012.

Upravljanje transakcijama - 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

Zakljuavanje - ORACLE

2 tipa zakljuavanja: - Data locks (DML) - Dictionary locks - Implicitno zakljuavanje (server) - Eksplicitno zakljuavanje (korisnik ili aplikacija) Razine zakljuavanja: - redak (row) - tablica (table)

17

20.1.2012.

Zakljuavanje - ORACLE

Runo zakljuavanje: - trai se konzistentan pogled - nuan je ekskluzivan pristup tablici - zakljuavanje ne smije ekati 2 naina: - SELECT FOR UPDATE - LOCK TABLE

Zakljuavanje - ORACLE

SELECT stupac FROM tablica WHERE uvjet FOR UPDATE [of column] [nowait];
SELECT sal FROM emp WHERE empno=7902 FOR UPDATE of sal nowait;

18

20.1.2012.

Zakljuavanje - ORACLE

LOCK TABLE ime_tablice IN locking_mode MODE [nowait];

LOCK TABLE emp IN EXCLUSIVE MODE NOWAIT;

Distribuirane baze podataka

19

20.1.2012.

Definicija
Skup baza podataka smjetenih na vie razliitih raunala i prostornih lokaliteta, a s kojima korisnik radi kao da je u pitanju jedna jedinstvena baza. Aplikacije istovremeno pristupaju i mijenjaju podatke na vie razliitih baza podataka u mrei, gdje mrea moe biti LAN ili WAN.

Znaajke DDBMS
Skup logiki povezanih djeljivih podataka Podaci su razdvojeni na vie fragmenata Fragmenti se mogu replicirati Fragmenti/Replikacije pripadaju lokacijama Lokacije su povezane komunikacijskom mreom Podaci na svakoj lokaciji su pod nadzorom DBMS-a DBMS na svakoj lokaciji moe upravljati lokalnim aplikacijama autonomno Svaki DBMS uestvuje u najmanje jednoj globalnoj aplikaciji.

20

20.1.2012.

DDBMS
Lokacija 1

Data

Tower box

Lokacija 4

Lokacija 2

RAUNALNA MREA

Data

Tower box

Tower box Data

Lokacija 3

Tower box

DDBMS

Prednosti Odraava organizacijsku strukturu Poboljana djeljivost i lokalna autonomija Poboljana raspoloivost Poboljana pouzdanost Poboljane performanse Ekonominost Modularni rast

Nedostaci Kompleksnost Trokovi Sigurnost Oteana kontrola integriteta podataka Nedostatak standarda Nedostatak iskustva Mnogo kompleksniji dizajn baze

21

20.1.2012.

Osnovna klasifikacija DDBMS


Homogeni sustav sve lokacije koriste isti DBMS produkt Heterogeni sustav lokacije koriste razliite DBMS produkte mogu koristiti i razliite modele podataka

Osnovna funkcionalnost DDBMS


Proireni komunikacijski servisi koji osiguravaju pristup udaljenim lokacijama i dozvoljavaju prijenos upita i podataka izmeu lokacija putem mree Proireni katalog sustava za pohranjivanje detalja o distribuciji podataka Distribuirano procesiranje upita, ukljuujui optimiziranje upita i pristup udaljenim podacima Proirena kontrola sigurnosti za upravljanje odgovarajuim pravima pristupa distribuiranim podacima Proireni servisi oporavka (engl. recovery) moraju uzeti u obzir ispade/greke pojedinih lokacija i ispade/greke komunikacijskih veza

22

20.1.2012.

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.

S1
Globalna v anj ska shema

S2
Globalna v anj ska shema

...

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

...

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

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

20.1.2012.

Strategije alociranja podataka


Lokalizacija
Centralizirana

Pouzdanost Performans Raspoloiv. e Najmanja

Trokovi pohrane

Komunikac. trokovi Najvii

Najmanja

Nezadovolja Najnii vajue Zadovoljava Najnii jue Najbolje za itanje Najvii

Fragmentirana

Velika

Mala za item, velika za sustav Najvea

Niski

Potpuna replikacija

Najvea

Visoki za aurir., mali za itanje Niski

Selektivna replikacija

Velika

Mala za item, velika za sustav

Zadovoljava Prosjeni jue

Chris Date-ova pravila


Lokalna autonomija lokalnim podacima se upravlja neovisno od ostalih mjesta; Neovisnost o lokaciji korisnici i programeri ne moraju znati lokaciju ili put do podataka; Nepostojanje centralnog mjesta niti jedno mjesto nije vanije od drugog; Neprekinuti rad niti jedna planirana aktivnost ne bi trebala kao preduvjet za svoje izvravanje traiti "sputanje" (engl. shutdown) baze podataka; Neovisnost od dijeljenja tablicu koja je fragmentirana (podijeljena) korisnici i dalje vide kao jedinstvenu tablicu;

25

20.1.2012.

Chris Date-ova pravila


Neovisnost o replikaciji transparentno upravljanje, pristup i auriranje redundantnih podataka, rekonstruiranje nakon ispada zbog razliitih greaka; Optimizaciju distribuiranih upita i neovisnost o performansama; Upravljanje distribuiranim transakcijama: umetnute transakcije koje auriraju vie mjesta izvravaju se s istovremenom kontrolom i oporavkom od konflikata; Neovisnost od hardvera, operativnog sustava, mree, baze podataka; Postojanje distribuiranog pristupa rjeniku podataka.

Protokol dvofaznog potvrivanja transakcija

Engl. two-phase commit Omoguava sinkronizirano zakljuavanje svih dijelova transakcije. Rezultat: jedinstvena akcija kojom se transakcija prenosi na vie lokacija i procesora. Protokol dvofaznog potvrivanja transakcija osigurava procesiranje distribuiranih transakcija po istim naelima konzistentnosti i integriteta kao i procesiranje transakcija potpuno unutar jedne jedinstvene baze podataka.

26

20.1.2012.

Protokol dvofaznog potvrivanja transakcija

1. 2. 1. 2. 3. 4.

Cilj Viestruki vorovi Sinkronizirano auriranje Procedura Glavni vor alje poruku o auriranju potinjenim vorovima : napravi brzu potvrdu prijema Potinjeni vor odgovara s potvrujem prijem Glavni alje poruku potvrdi bazu podataka Potinjeni odgovara s potvreno.

Protokol dvofaznog potvrivanja transakcija

Problemi
1. mnogo razliitih implemetacija ne postoji utvren i usvojen standard 2. trai dodatne mehanizme za oporavak koji mogu biti veoma sloeni, naroito kada se ispad pojavi na nekom voru, nakon to su na drugima izvrena auriranja ispad bilo kojega vora uzrokuje ponitavanje transakcije.

27

20.1.2012.

Replikacija podataka

Kopiranje podataka baze na viestruke lokacije kako bi se podrale distribuirane aplikacije. Postupak repliciranja omoguava korisnicima da imaju svoje vlastite lokalne kopije podataka. Ove lokalne kopije, s mogunou auriranja, mogu dati potporu poveanom lokalnom procesiranju, smanjiti promet po mrei, olakati skalabilnost i pojeftiniti distribuirano procesiranje. Izazov: osiguravanje da sve te kopije rade s istim konzistentnim
podacima tj. da imaju isti integritet i upravljake mogunosti koje su na raspolaganju za monolistiki, centralistiki model baze podataka.

Replikacija podataka
SMANJENJE
velika dodata vrijednost

POVEANJE
v elika tonost

toka u v remenu samo za itanje

prov jera izmjena asinkrono aurirane kopije

samo za itanje, priblino realno v rijeme

potpuno sinkronizirano aurirane kopije (DDBMS)

28

20.1.2012.

Tema: Objektno orijentirane baze podataka

Definicije
OODM (engl. Object-Oriented Data Model)
logiki model podataka koji prihvaa semantiku objekata podranu u objektno-orijentiranom programiranju.

OODB (engl. Object-Oriented DataBase)


stalni i djeljivi skup objekata definiranih pomou OODM.

OODBMS (engl.Object-Oriented DataBase Management System) upravljanje OODB.

29

20.1.2012.

Definicije
Objektno orijentirani sustav baza podataka jeste sustav baza podataka u smislu da ima sve osobine baza podataka, ukljuujui jezike za pristup, sposobnost upravljanja ogromnim koliinama podataka, postojanost, integritet podataka i transakcija, sigurnost i oporavak koji dodatno podrava apstrakciju, nasljeivanje i objektni identitet.

Definicije

Objektna orijentacija = apstraktni tipovi podataka + nasljeivanje + objekti OODBMS = objektna orijentacija + mogunosti baza podataka

30

20.1.2012.

Definicije

Tradicionalni DBMS *Trajnost *Djeljivost *Transakcije *Kontrola pristupa *Oporavak *Sigurnost *Integritet *Upiti

Semantiki Model podataka *Generalizacija *Agregacija

Objektno-orijentirano programiranje *Objekti *Omatanje *Nasljeivanje *Tipovi i klase *Metode *Sloeni objekti *Polimorfizam Proirivost

Posebni zahtjevi *Verzije *Razvoj sheme

Objektno-orijentirani Model podataka

Osnovni problemi RDBMS

Dugotrajne transakcije

Verzije
Razvoj (promjena) sheme

31

20.1.2012.

Prikaz strukture podataka


Kod objektno orijentiranih sustava baza podataka, postoji izraeniji zahtjev za modeliranjem strukturnih osobina podataka i pravljenjem eksplicitne strukture nasljeivanja i agregacije. Postoje razliiti naini prikaza takvih struktura: Objekti se mogu grupirati u klase prema zajednikim strukturnim i osobinama ponaanja to se naziva klasifikacija; Slina klasifikaciji je asocijacija konkretne instance se grupiraju u klase prema nekoj osobini koja im je zajednika; Objekti se mogu grupirati kao dijelovi nekog kompozitnog objekta na dva naina: kao dio strukture (kompozicija) ili kao skup atributa (agregacija).

OODB Manifesto
Moraju se podravati sloeni objekti Identitet objekta mora biti podran Omotavanje (engl. enkapsulation) mora biti podrano Tipovi ili klase moraju biti podrani Mora biti omogueno nasljeivanje kod tipova i klasa Mora biti podrano dinamiko povezivanje DML mora biti potpun programski jezik Skup tipova podataka mora biti proiriv Trajnost podataka treba biti osigurana DBMS mora moi upravljati iznimno velikim bazama DBMS mora podrati viekorisniki rad DBMS mora podravati oporavak od HW i SW greaka DBMS mora osigurati jednostavan nain pretraivanja

32

20.1.2012.

Prednosti OODBMS
Prednosti koje proizlaze iz potrebe uporabe objektno orijentiranih programskih jezika ili okruenja: - Objektno orijentirana baza podataka minimizira potrebu za stranienjem objekata u memoriji kada se rabi objektno orijentirano programiranje. Ostale su prednosti vezane uz ope odlike baze podataka kao to su dijeljenje podataka, distribuiranje, sigurnost i slino. - Objektno orijentirane baze podataka pomau smanjenju semantikog procijepa izmeu objekata i koncepata realnog svijeta i njihovog predstavljanja u bazi podataka. One takoer nude rjeenje problema dekompozicije s gubitkom informacija (engl. impedance mismatch) izmeu aplikacijskog programskog jezika i DML-a, to omoguava projektantima uporabu uniformnijeg naina u prikazivanju dizajna.

Prednosti OODBMS
Prednosti koje proizlaze izravno iz mogunosti samog dizajna objektno orijentiranih baza podataka: Objektno orijentirane baze podataka kombiniraju brzinu mrenih baza podataka s fleksibilnou relacijskih. Potpora za duge transakcije uz uporabu trajnog zakljuavanja i za automatsku kontrolu verzija ini ove baze osnovom za novi pristup distribuiranom dizajnu, jer je metafora prenoenja poruka prirodna za uporabu kod distribuiranih sustava. Generalno imaju bolje performanse kada su u pitanju sloeni objekti i sloene relacije. To je prvenstveno stoga to nema potrebe za razbijanjem velikih objekata kako bi se pohranili u normalizirane tablice, a zatim ponovno sastavljanje u trenutku izvravanja uz uporabu sporih operacija spajanja. Ovo je posebno uoljivo kod aplikacija koje ukljuuju inenjerske crtee i kompleksnu grafiku. Objektna metafora podrava multimedijalne aplikacije na prirodan nain. Objekti s osobinama oblika, s privremenim ponaanjem (video i zvuk), tekst i drugi koncepti mogu se modelirati i pohranjivati unutar jedinstvene konceptualne sheme. Objektno orijentirane baze daju openito bolju navigacijsku kontrolu nad upitima jer su pokazivai vezani za i smjeteni uz objekte.

33

20.1.2012.

Nedostaci OODBMS
Nepostojanje univerzalnog modela podataka Nedostatak iskustva Nedostatak standarda Optimiziranje upita naruava enkapsuliranje Zakljuavanje na razini objekta moe utjecati na performanse Kompleksnost Nedostatak potpore za poglede Nedostatak potpore za sigurnost

Tema: Relacijske baze s objektno orijentiranim proirenjima

34

20.1.2012.

ORDBMS
Osnovne osobine koje proiruju relacijsku u relacijsku bazu podataka s objektno orijentiranim proirenjima su [Kim,1997]: -Automatska optimizacija upita i njihova obrada -Indeksiranje apstraktnih tipova podataka -Kontrola istovremenog pristupa -Autorizacija -Okidai -Pohranjene procedure -Dinamiki razvoj sheme baze podataka -Obvezna sigurnost

ORDBMS
Najznaajnije, nove, osobine relacijske baze s objektno orijentiranim proirenjima su: Korisniki definirani tipovi (UDTs[1]); Korisniki definirane funkcije (UDFs[2]); Infrastruktura nove metode indeksiranja/pristupa i proirenja optimizatora koji ih podravaju. [1] UDTs (engl. User Defined Types) Korisniki definirani tipovi.
[2] UDFs (engl. User Defined Functions) Korisniki definirane funkcije.

35

20.1.2012.

ORDBMS
Dva razliita pristupa koje rabe proizvoai kako bi ukljuili i objektnu komponentu u svoje relacijske baze podataka: Federalni; Integrirani.

ORDBMS Federalni pristup

Upravljanje sesijama i upitima, optimiziranje, koordiniranje izvrenja, integriranje rezultata

Relacijska baza podataka

Objektna baza podataka

...

36

20.1.2012.

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 (korisniki definirani tipovi) user-defined procedures, functions, operators collection types (arrays, sets, lists, multisets) potpora za velike objekte Binary Large Objects (BLOBs) rekurzija

37

20.1.2012.

SQL3 standard

row types (tipovi redaka)


sekvenca parova ime polja/tip podatka koja omoguava tipu podataka da predstavlja tipove redaka u tablici, tako da kompletni redovi mogu biti pohranjeni u varijable, proslijeeni kao argumenti rutinama i vraeni kao povratna vrijednost iz poziva funkcija. Moe se koristiti za omoguavanje stupcu tablice da sadri vrijednosti retka. U sutini, red je tablica ugnjedena unutar tablice.

SQL3 standard
row types (tipovi redaka) primjer CREATE TABLE podruznica( Sifra CHAR(4), Adresa ROW(ulica VARCHAR(25), grad VARCHAR(15)); INSERT INTO podruznica VALUES(B005,ROW(K.Vieslava 57,Mostar));

38

20.1.2012.

SQL3 standard

collection types (kolekcija tipova)


Koriste se za pohranu vie vrijednosti u jedan stupac tablice i mogu rezultirati ugnjedenim tablicama gdje stupac u jednoj tablici stvarno sadri drugu tablicu. Rezultat je da jedna tablica predstavlja viestruke master-detail razine.

P I T A NJ A ???

39

Вам также может понравиться