Adatbázis rendszerek II

Preview:

DESCRIPTION

Adatbázis rendszerek II. Kovács László. A tranzakció-kezelés alapjai. Tranzakció fogalma. ME. ERSTE BANK. SELECT UPDATE INSERT. több elemi művelet alkot egy egységet ezek együttesen érvényesülhetnek csak. Tranzakció-kezelés feladata. A párhuzamosan bejövő igények ütemezése, a sorrend - PowerPoint PPT Presentation

Citation preview

Adatbázis rendszerek II

Kovács László

A tranzakció-kezelés alapjai

SELECTUPDATEINSERT

ERSTE BANK

ME

Tranzakció fogalma

több elemi művelet alkot egy egységetezek együttesen érvényesülhetnek csak

Tranzakció-kezelés feladata

A párhuzamosan bejövő igények ütemezése, a sorrendátalakítása a helyes eredmény érdekében

számla2+5 +3

A prog. B prog.

ra rb

wa wa

ua ub

SELECT

UPDATE

SELECT

UPDATE

‘lost update’ jelensége

Kívánalmak:

A: atomiságC: konzisztencia-őrzésI: izolációD: tartósság

History fogalma

Az izoláció problémája a párhuzamosan futó tranzakciók között lép fel.

History: az együtt élő tranzakciók rendszere

r1(x) w1(x) c1

r2(x) w2(x) c2

r1(x) w1(x) c1

r2(x) w2(x) c2

igényelt megvalósult

Transaction Manager

Zárolási mechanizmus

A TM átrendezi a parancsok végrehajtási sorrendjét

Zárolás: a parancsok blokkolása az erőforrások lefoglalásánkeresztül

objektumtranzakció A tranzakció B

A

Zárolási paraméterek:- objektum mérete- zárolás időtartama- zárolás jellege- blokkolt művelet

Zárolási mechanizmus

A zárolás folyamata erőforrás pazarlással járhat

- tranzakció várakozása- deadlock alakulhat ki- tranzakció menet közben abortálódhat

Működési változatok a zárolás menetében:

- optimista zárolás- pesszimista zárolás- finomított zárolási módok- SR figyelés

ellenőriz végrehajt ellenőriz végrehajt

végrehajt ellenőrizvégrehajt

Izolációs szintek

A teljes izoláció megöli a párhuzamosságotA gyakorlatban korlátozott izolációt igényelnek

SQL izolációs szintek: NOLOCK (anarchia, nincs izoláció) READ UNCOMMITED (nem véglegesített adat is olvasható) READ COMMITED (csak véglegesített adat olvasható) REPEATABLE READ (olvasott érték nem változik) SERIALIZABLE (teljes izoláció, nincs párhuzamosság)

r1(x) w1(x) c1

r2(x) w2(x) c2

r1(x) w1(x) c1

r2(x) w2(x) c2

KÉP

Salvador Dali (1094-1989):

Tranzakció leírása

Az elemek mellett a sorrendiséget is ismerni kell

Mikor lényeges a sorrendiség?

ha a két művelet - valamelyike írás - azonos objektumra vonatkoznak

Konfliktusban álló műveletek

Meg kell adni a végrehajtandó műveleteket - olvasás - írás- elfogadás - visszagörgetés

Fontos az érintett objektum megadása is- táblák - mezők

r(dolgozo)

tranzakció gráf

Tranzakció leírása

jelölések:x: objektumr(x), w(x), c, a: műveletekA B : megelőzési reláció

A tranzakció elemeit tömören egy gráffal adhatjuk meg

SELECT * FROM DOLGOZO;SELECT * FROM UZEM;UPDATE DOLGOZO SET FIZ=0;COMMIT;

r(uzem)

w(dolgozo)

cSQL parancsok

r1(dolgozo)

history gráf

A párhuzamosan futó tranzakciók együtteseA tranzakció elemek kibővülnek a tranzakciók közötti megelőzési relációkkalA műveletek jele kibővül egy tranzakció indexszelA history elemeit is egy gráffal adhatjuk meg

T1: SELECT * FROM DOLGOZO;T2: SELECT * FROM UZEM;T2: UPDATE DOLGOZO SET FIZ=0;T1: DELETE FROM UZEM;T2: COMMIT;T1: ROLLBACK;

r2(uzem)

w2(dolgozo)

a1SQL parancsok

History leírása

w1(uzem)

c2

History típusok

RA history: a tranzakció akkor záródhat le, ha már az a tranzakció is lezáródott, amiből olvasott

r1(x)

r2(x) c2w2(x)

w1(x) a1

r1(x)

r2(x) w2(x)

w1(x)

a1r3(x) w3(x)

ACA history: a tranzakció akkor olvashat egy adatot, ha az azt utoljára módosító tranzakció lezáródott

r1(x)

w2(x)

w1(x) a1

a2

History típusok

ST history: a tranzakció akkor olvashat vagy írhat egy adatot, ha az azt utoljára módosító tranzakció lezáródott

r1(x)

w2(x)

w1(x)

r2(x)

c1

c2

SR history: a tranzakciók a konfliktusban álló elemekre vonatkoztatva nem fedik át egymást

r1(x)

w2(x)

w1(x)

r2(x)

c1

c2

S history: a tranzakciók nem fedik át egymást

SR

RA ACA ST S

History típusok

history típusok kapcsolata

A teljes izolációt az ST SR history biztosítja

Különböző TM módszerek léteznek az ST SR history biztosítására :

- zárolás- TO

Zárolási típusok

Objektum finomsága

kis méret nagy méret

kevesebb konfliktus több konfliktusnagyobb adminisztráció kisebb adminisztráció

Zárolt művelet

- csak írás : exclusive (kizárólagos hozzáférés)- olvasási : shared (osztott hozzáférés)- módosítási: update (előjegyzett kizárólagos)

Zárolás időtartama

- művelet idejére (nem ad ACA historyt)- tranzakció végéig : 2PL (kétfázisű zárolás)

Helyes zárolás:

- helyesen formált a zárolás (zárolás- művelet-felengedés)- minden művelet zárol- van írási és olvasási zárolás- 2PL teljesül, a tranzakció végén felengedve az objektumokat

A helyes zárolás ST SR historyt ad

Zárolási típusok

A helyes zárolás teljes izolációt eredményez, a gyakorlatban sokszor enyhítenek rajta

r1(dolgozo)

history gráf

Két új művelet:

- zárolás : ltmód(x)

- felengedés: U(x)A zárolt objektumot igénylő tranzakció várakozásra kényszerül

T1: SELECT * FROM DOLGOZO;T2: SELECT * FROM UZEM;T2: UPDATE DOLGOZO SET FIZ=0;T1: DELETE FROM UZEM;T2: COMMIT;T1: ROLLBACK;

w2(dolgozo)

SQL parancsok

Kibővített history leírása

c2

l1r(dolgozo)

l2w(dolgozo)

r2(uzem)

w1(uzem)

l2r(uzem)

l1w(uzem)

u2(dolgozo)

u2(uzem)

a1

u1(uzem)

u1(dolgozo)

Deadlock kezelése

T1 T2

x

y

A tranzakciók egymás igényelt objektumait fogjákKülső beavatkozás kell a továbblépéshez

WFG módszer(körút van a gráfban)

Timeout módszer(letelt az idő)

Feloldás módszere:- detektálás- egyik tranzakció abortálása

Alap izolációs problémák:- lost update: w1(x) w2(x)- dirty read: w1(x) r2(x) w1(x)- not repeatable read: r1(x) w2(x) r1(x)

Izolációs szintek

A DBMS által biztosított tranzakció függetlenségi fokok

NOLOCK0. szint anarchia, mind a három hiba jelenség felléphet

READ UNCOMMITED1. szint nincs átlapolt írás

READ COMMITED2. szint első szint és nincs piszkos olvasás

REPEATABLE READ3. szint második szint és ismételhető az olvasás

SERIALIZABLE

kép

Salvador Dali. A nárcisz metamorfózisa

Tranzakció-kezelés speciális elemei

Tranzakció formális felírásaHistory formális felírásaRA-ACA kapcsolat biz.ACA-ST kapcsolat biz.SR,S és ST kapcsolat biz.Helyes zárolás és ST/SR kapcsolat bizKompatibilitási mátrix

Salvador Dali. Az emlékezet álhatatossága (1931)

Recommended