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

Hasonló előadás


Az előadások a következő témára: "Adatbázis rendszerek II"— 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
Műveletsor végrehajtás Párhuzamos hozzáférések Integritás őrzés Adatvesztés elleni védelem DBMS KL

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

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

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

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

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

8 History 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) w1(x) a1 r2(x) c2 w2(x) KL

9 History 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) w1(x) a1 r2(x) w2(x) r3(x) w3(x) KL KL

10 History 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) w1(x) a1 w2(x) a2 KL KL

11 History 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) w1(x) c1 r2(x) w2(x) c2 KL KL

12 History 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) w1(x) a1 r1(x) w1(x) a1 r2(x) r2(x) w2(x) c2 w2(x) c2 KL KL

13 History 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. SR RA ACA ST S KL KL

14 Izoláció 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: w1(x)  w2(x) - dirty read: w1(x)  r2(x)  w1(x) - not repeatable read: r1(x)  w2(x)  r1(x) DBMS INSERT..UPDATE.. INSERT..UPDATE.. KL

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

16 Zárolás 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 DBMS KL

17 Zárolás 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. A nem 2PL zárolás esetén az RA, ACA elvek is megsérülhetnek zárolások száma r1(x) w1(x) a1 r2(x) tranzakció w2(x) c2 KL

18 Zárolás 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ő? ... r1(x) r2(x) r1(x) r2(x) w1(x) c2 w2(x) lr1(x), lw1(x) vagy ls1(x), lx1(x) Cél: ST és SR biztosítása, izoláció, ACID elvek betartása KL

19 Zárolás 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 x T1 T2 y KL

20 Zárolás 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 lx1(x)  r1(x)  …  w1(x)  u1(x)  c1  ls2(x)  r2(x) … KL

21 Zárolás 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) KL

22 SGT módszer 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. r1(x) w1(x) w1(y) c1 T1 r2(z) w2(z) w2(y) c2 T3 r3(x) w3(x) w3(y) c3 T2 r4(x) w4(x) w4(y) a4 KL

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


Letölteni ppt "Adatbázis rendszerek II"

Hasonló előadás


Google Hirdetések