Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Adatbázis rendszerek II Tranzakció kezelés Általános Informatikai Tsz. Dr. Kovács László.

Hasonló előadás


Az előadások a következő témára: "Adatbázis rendszerek II Tranzakció kezelés Általános Informatikai Tsz. Dr. Kovács László."— Előadás másolata:

1 Adatbázis rendszerek II Tranzakció kezelés Általános Informatikai Tsz. Dr. Kovács László

2 Adatbázis kezelő műveletek jellemzése KL Műveletsor végrehajtás Párhuzamos hozzáférések Integritás őrzés Adatvesztés elleni védelem DBMS

3 Tranzakció KL DBMS INSERT..UPDATE.. Tranzakció: logikailag összetartozó, egységként kezelt műveletsor A atomiság C konzisztencia őrzés I izoláltság D tartósság

4 Tranzakció KL INSERT..UPDATE.. Tranzakció leírása: műveletek + sorrendiség UPDATE..INSERT.. Műveletek megadása: Update T1... Insert into T1... Select from T2... Update T2... Commit r(x) w(x) a c

5 Tranzakció KL Sorrendiség megadása megelőzési reláció:o1  o2 r(x) w(x) c r(z) w(y) w(z) Tranzakció gráf Nem minden műveletpár között fontos a reláció ismerete, mert nem befolyásolja az eredményt Konfliktusban álló műveletpároknál ismerni kell a sorrendiséget: - azonos objektum - legalább az egyik művelet írás

6 Tranzakció KL T = (T e,  ) T e = {r(x), w(x'), a, c | x,x' DB}  T e  T e a  T e  c  T e Tranzakció formális felírása: A rendszerben több tranzakció futhat párhuzamosan ACID elvek !!  p  T e  p  a, ha a  T e és p  c, ha c  T e  p 1, p 2  T e, p 1 és p 2 konfliktusban áll p 1  p 2 vagy p 2  p 1

7 History KL H = (H e,  ) H e =  T e    T History: a rendszerben futó tranzakciók összessége Nem minden history valósulhat meg ACID elvek !!  p 1, p 2  H e, p 1 és p 2 konfliktusban áll p 1  p 2 vagy p 2  p 1 minden tranzakció helyesen formált

8 History KL RA history: Egy history visszagörgethető, ha minden tranzakció később zárul le minden olyan tranzakciónál, amiből ő olvasott. A nem RA history ellenmondást okoz a D és C elvekre nézve r1(x) r2(x) c2 w2(x) w1(x)a1

9 KL ACA history: Az abortálási lavinát elkerülő history-ban minden tranzakció csak már lezárt tranzakcióból olvas.. A nem ACA history felesleges erőforrás foglalást jelent r1(x) r2(x)w2(x) w1(x)a1 History r3(x)w3(x)

10 KL ST history: A szigorú history-ban egy tranzakció csak akkor írhat vagy olvashat egy adatelemet, ha az azt előtte módosító másik tranzakció már lezáródott. A nem ST history hibát okozhat abort esetén az implicit olvasás miatt r1(x) w2(x) w1(x)a1 History a2

11 KL SR history: A sorossal ekvivalens history-ban bármely két tranzakció minden konfliktusban álló műveletpárjai között, ahol a műveletek nem azonos tranzakcióhoz tartoznak, azonos a megelőzési reláció. A nem SR history az elveszett módosítás jelenségét okozhatja r1(x) w2(x) w1(x) r2(x) c1 c2 History

12 KL S history: A soros historyban egy tranzakció bármely két művelete közé nem ékelődik be egy másik tranzakció valamely művelete. Az SR history önmagában nem elegendő, az S viszont túl szigorú r1(x) r2(x) c2w2(x) w1(x)a1r1(x) r2(x) c2w2(x) w1(x)a1 History

13 KL A history típusok kapcsolata: minden ACA egyben RA minden ST egyben ACA minden S egyben SR és ST A tranzakció kezelő rendszerek célja az SR metszet ST history-k biztosítása. History SR RA ACASTS

14 KL A izoláció problémája: A párhuzamosan futó tranzakciók egymásra hatásának minimalizálása Alap izolációs problémák: - lost update:w 1 (x)  w 2 (x) - dirty read:w 1 (x)  r 2 (x)  w 1 (x) - not repeatable read:r 1 (x)  w 2 (x)  r 1 (x) Izoláció DBMS INSERT..UPDATE..

15 KL Izolációs szintek: A DBMS által biztosított tranzakció függetlenségi fokok 0. szintanarchia, mind a három hiba jelenség felléphet 1. szintnincs átlapolt írás 2. szintelső szint és nincs piszkos olvasás 3. szintmásodik szint és ismételhető az olvasás Izoláció SET TRANSACTION ISOLATION LEVEL szint; -NOLOCK -READ UNCOMMITED -READ COMMITED -REPEATABLE READ -SERIALIZABLE

16 KL Zárolás mechanizmusa: A tranzakció lefoglalja az objektumot a használat idejére Finomság: az lefoglalt objektumok terjedelme mező, rekord, tábla Időtartam: lefoglalás és felengedés időpontjai Típusa: mely műveletek és milyen módon foglalnak le objektumot Kompatibilitás: különböző zárolási módok viszonya Zárolás DBMS

17 KL Kétfázisú zárolás mechanizmusa (2PL): A kétfázisú zárolás esetén a tranzakció végéig csak zárolások történhetnek, majd a tranzakció végén egyidejűleg történik a zárolások felengedése. Minden zárolási művelet megelőz minden feloldást. Zárolás A nem 2PL zárolás esetén az RA, ACA elvek is megsérülhetnek tranzakció zárolások száma r1(x) r2(x) c2w2(x) w1(x)a1

18 KL Zárolások típusai csak egyféle zárolási mód: az olvasások is blokkolják egymást csak írási: a lost update nem kerülhető el, túl laza irási és olvasási: megfelelő?... Zárolás r2(x) r1(x) r2(x) r1(x) w1(x)c2w2(x) lr1(x), lw1(x) vagy ls1(x), lx1(x) Cél: ST és SR biztosítása, izoláció, ACID elvek betartása

19 KL Deadlock Az objektumok lefoglalása miatt egymásra várakozó tranzakciók nem tudnak továbblépni, deadlock jelensége alakul ki Ez a zárolás gyenge pontja Deadlock kezelése: felismerés: timeout vagy WFG módszer feloldás: egyik tranzakció abortálása Zárolás T1T2 x y

20 KL Helyes zárolás helyesen formált: -minden művelet előtt van egy zárolás -s minden zárolást követi annak művelet utáni felengedés A helyes zárolás valósul meg, ha - helyesen formált a zárolá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 Zárolás lx1(x)  r1(x)  …  w1(x)  u1(x)  c1  ls2(x)  r2(x) …

21 KL Zárolások felmínősítése: menet közben egy zárolási szintből magasabb szint lesz deadlock alakulhat ki ls1(x)  r1(x)  …lx1(x)  w1(x)  u1(x) ls2(x)  r2(x)  …lx2(x)  w2(x)  u2(x) Módosítási zárolás: az objektum most csak olvasott, de később írás következik majd Kompatibilitás: lu nem enged meg már más zárolást lu1(x)  r1(x)  …lx1(x)  w1(x)  u1(x) lu2(x)  r2(x)  …lx2(x)  w2(x)  u2(x) Zárolás

22 KL SGT : tranzakció kezelési módszer, amely az SR history biztosítására szolgál Az SG gráf, egy olyan gráfot jelöl, melynek elemei a history-ban futó, commit-tal véglegesített tranzakciók, s élei irányítottak. Akkor létezik él egy T1 csomópontból a T2 csomópontba mutatva, ha létezik olyan konfliktusban álló műveletpár, melynek egyik tagja T1-hez, a másik tagja T2-höz tartozik, s a T1 csomóponthoz tartozó művelet megelőzi a T2-höz tartozó műveletet. SGT módszer r1(x)  w1(x) w1(y)  c1 r2(z)  w2(z)  w2(y)  c2 r3(x)  w3(x)  w3(y)  c3 r4(x)  w4(x)  w4(y)  a4 T1 T2 T3

23 KL A history akkor és csak akkor SR tulajdonságú, ha a hozzá tartozó SG gráf körútmentes. SGT módszer T1 T2 T3 T1 T2 T3 T4 nem SR SR Az SG dinamikusan változik


Letölteni ppt "Adatbázis rendszerek II Tranzakció kezelés Általános Informatikai Tsz. Dr. Kovács László."

Hasonló előadás


Google Hirdetések