22
Adatbázis rendszerek II Kovács László A tranzakció-kezelés alapjai

Adatbázis rendszerek II

  • Upload
    airlia

  • View
    38

  • Download
    1

Embed Size (px)

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

Page 1: Adatbázis rendszerek II

Adatbázis rendszerek II

Kovács László

A tranzakció-kezelés alapjai

Page 2: Adatbázis rendszerek II

SELECTUPDATEINSERT

ERSTE BANK

ME

Tranzakció fogalma

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

Page 3: Adatbázis rendszerek II

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

Page 4: Adatbázis rendszerek II

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

Page 5: Adatbázis rendszerek II

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

Page 6: Adatbázis rendszerek II

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

Page 7: Adatbázis rendszerek II

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

Page 8: Adatbázis rendszerek II

KÉP

Salvador Dali (1094-1989):

Page 9: Adatbázis rendszerek II

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

Page 10: Adatbázis rendszerek II

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

Page 11: Adatbázis rendszerek II

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

Page 12: Adatbázis rendszerek II

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

Page 13: Adatbázis rendszerek II

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

Page 14: Adatbázis rendszerek II

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

Page 15: Adatbázis rendszerek II

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)

Page 16: Adatbázis rendszerek II

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

Page 17: Adatbázis rendszerek II

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)

Page 18: Adatbázis rendszerek II

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

Page 19: Adatbázis rendszerek II

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

Page 20: Adatbázis rendszerek II

kép

Salvador Dali. A nárcisz metamorfózisa

Page 21: Adatbázis rendszerek II

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

Page 22: Adatbázis rendszerek II

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