1 / 22

Adatbázis rendszerek II

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

airlia
Download Presentation

Adatbázis rendszerek II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Tranzakció fogalma ME ERSTE BANK SELECT UPDATE INSERT több elemi művelet alkot egy egységet ezek együttesen érvényesülhetnek csak

  3. Tranzakció-kezelés feladata A párhuzamosan bejövő igények ütemezése, a sorrend átalakítása a helyes eredmény érdekében A prog. B prog. SELECT SELECT ra rb számla 2 ua ub +5 +3 UPDATE wa wa UPDATE ‘lost update’ jelensége Kívánalmak: A: atomiságC: konzisztencia-őrzésI: izoláció D: tartósság

  4. 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 megvalósult igényelt r1(x) w1(x) c1 r1(x) w1(x) c1 r2(x) w2(x) c2 r2(x) w2(x) c2 Transaction Manager

  5. 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án keresztül tranzakció A tranzakció B objektum A Zárolási paraméterek: - objektum mérete - zárolás időtartama - zárolás jellege - blokkolt művelet

  6. 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 ellenőriz végrehajt végrehajt

  7. r1(x) w1(x) c1 r2(x) w2(x) c2 r1(x) w1(x) c1 r2(x) w2(x) c2 Izolációs szintek A teljes izoláció megöli a párhuzamosságot A 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)

  8. KÉP Salvador Dali (1094-1989):

  9. Tranzakció leírása 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 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

  10. Tranzakció leírása jelölések: x: objektum r(x), w(x), c, a: műveletek A  B : megelőzési reláció A tranzakció elemeit tömören egy gráffal adhatjuk meg r(dolgozo) r(uzem) SELECT * FROM DOLGOZO; SELECT * FROM UZEM; UPDATE DOLGOZO SET FIZ=0; COMMIT; w(dolgozo) c SQL parancsok tranzakció gráf

  11. History leírása A párhuzamosan futó tranzakciók együttese A tranzakció elemek kibővülnek a tranzakciók közötti megelőzési relációkkal A műveletek jele kibővül egy tranzakció indexszel A 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) r1(dolgozo) w2(dolgozo) w1(uzem) c2 a1 SQL parancsok history gráf

  12. History típusok r1(x) w1(x) a1 r2(x) w2(x) c2 RA history: a tranzakció akkor záródhat le, ha már az a tranzakció is lezáródott, amiből olvasott r1(x) w1(x) r2(x) w2(x) r3(x) w3(x) a1 ACA history: a tranzakció akkor olvashat egy adatot, ha az azt utoljára módosító tranzakció lezáródott

  13. History típusok r1(x) w1(x) a1 w2(x) a2 ST history: a tranzakció akkor olvashat vagy írhat egy adatot, ha az azt utoljára módosító tranzakció lezáródott r1(x) w1(x) c1 r2(x) w2(x) c2 SR history: a tranzakciók a konfliktusban álló elemekre vonatkoztatva nem fedik át egymást r1(x) w1(x) c1 r2(x) w2(x) c2 S history: a tranzakciók nem fedik át egymást

  14. History típusok SR RA ACA ST S 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

  15. Zárolási típusok Objektum finomsága kisebb adminisztráció nagyobb adminisztráció több konfliktus kevesebb konfliktus kis méret nagy méret 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)

  16. Zárolási típusok • 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 A helyes zárolás teljes izolációt eredményez, a gyakorlatban sokszor enyhítenek rajta

  17. Kibővített history leírása 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 l2r(uzem) l1r(dolgozo) r2(uzem) r1(dolgozo) T1: SELECT * FROM DOLGOZO; T2: SELECT * FROM UZEM; T2: UPDATE DOLGOZO SET FIZ=0; T1: DELETE FROM UZEM; T2: COMMIT; T1: ROLLBACK; l1w(uzem) l2w(dolgozo) w1(uzem) w2(dolgozo) u2(dolgozo) u1(uzem) SQL parancsok u2(uzem) u1(dolgozo) c2 a1 history gráf

  18. Deadlock kezelése A tranzakciók egymás igényelt objektumait fogják Külső beavatkozás kell a továbblépéshez x T1 T2 y Feloldás módszere: - detektálás - egyik tranzakció abortálása WFG módszer (körút van a gráfban) Timeout módszer (letelt az idő)

  19. Izolációs szintek 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) • A DBMS által biztosított tranzakció függetlenségi fokok • NOLOCK • 0. szint anarchia, mind a három hiba jelenség felléphet • READ UNCOMMITED • szint nincs átlapolt írás • READ COMMITED • 2. szint első szint és nincs piszkos olvasás • REPEATABLE READ • 3. szint második szint és ismételhető az olvasás • SERIALIZABLE

  20. kép Salvador Dali. A nárcisz metamorfózisa

  21. Tranzakció-kezelés speciális elemei Tranzakció formális felírása History formális felírása RA-ACA kapcsolat biz. ACA-ST kapcsolat biz. SR,S és ST kapcsolat biz. Helyes zárolás és ST/SR kapcsolat biz Kompatibilitási mátrix

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

More Related