Академический Документы
Профессиональный Документы
Культура Документы
Upravljanje podacima
Upravljanje transakcijama
Nastavnik: Prof.dr.sc. Draena Gapar
Datum: 17.01.2012.
20.1.2012.
Komponente DBMS-a
Programeri Aplikativni programi Korisnici DBA Shema baze podataka
Upiti
Database manager
Dictionary manager
Metode pristupa
File manager
System buffers
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
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
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
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.
Vrijeme t1 t2 t3 t4 t5 t6
Transakcija T1
write(Salx) commit
write(Salx) commit
Upisuje 90
90 90
Vrijeme t1 t2 t3 t4 t5 t6 t7 t8
Transakcija T1
write(Salx)
ita 200 Dirty data
. rollback
20.1.2012.
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.
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 T2
t5
t6 t7 t8 t6 t10
write(Salx)
Write_lock(Saly) WAIT 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.
13
20.1.2012.
(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.
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.
-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
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.
INSERT
COMMIT
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
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
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.
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
S1
Lokalna v anj ska shema
S2
Lokalna v anj ska shema
...
Sn
Data
Data
Data
23
20.1.2012.
Arhitektura DDBMS
etiri osnovna dijela: Lokalna DBMS komponenta Komunikacijska komponenta Globalni katalog sustava Distribuirana DBMS komponenta
24
20.1.2012.
Trokovi pohrane
Najmanja
Fragmentirana
Velika
Niski
Potpuna replikacija
Najvea
Selektivna replikacija
Velika
25
20.1.2012.
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.
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.
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
28
20.1.2012.
Definicije
OODM (engl. Object-Oriented Data Model)
logiki model podataka koji prihvaa semantiku objekata podranu u objektno-orijentiranom programiranju.
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
Objektno-orijentirano programiranje *Objekti *Omatanje *Nasljeivanje *Tipovi i klase *Metode *Sloeni objekti *Polimorfizam Proirivost
Dugotrajne transakcije
Verzije
Razvoj (promjena) sheme
31
20.1.2012.
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
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.
...
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
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
P I T A NJ A ???
39