Adatbázisrendszerek 9. előadás: Tranzakciók és konkurencia

Hasonló dokumentumok
12. előadás. Tranzakció kezelés és konkurencia kontroll. Adatbázisrendszerek előadás december 12.

Tranzakció-kezelés, alapfogalmak. Vassányi István, 2012.

B I T M A N B I v: T M A N

ADATBÁZIS-KEZELÉS. Adatbázis-kezelő rendszerek

Adatbázis Rendszerek II. 10. Tranzakció kezelés 72/1B IT MAN

Adatbázisok elmélete 24. előadás

Adatbázisok elmélete 18. előadás

9.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Adatbázisok elmélete 18. előadás

Az adatbázisrendszerek világa

Tranzakciók, nézettáblák, indexek. Párhuzamos folyamatok irányítása Virtuális és materializált nézettáblák Az adathozzáférés felgyorsítása

Adatbázisok II Jánosi-Rancz Katalin Tünde 327A 1-1

Ellenőrző kérdések. 5. Kis dolgozat kérdései. (9-10. előadás)

Adatbázisok elmélete 24. előadás

Az Oracle rendszer komponensei

UNDO naplózás. Naplóbejegyzések. Visszaállítási esetek

2MU09f_Konkvez_feladatok.pdf Feladatok a tranzakciókezelésbıl

Optimista konkurenciavezérlés

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Tranzakciók az SQL-ben

Architektúra, megszakítási rendszerek

Adatbázis rendszerek megvalósítása 1. Irodalom: Molina-Ullman-Widom: Adatbázisrendszerek megvalósítása

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

FORD Edifact IHS Import

Tranzakciókezelés PL/SQL-ben

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés / 21

Adatbázis tartalmának módosítása (DML), az adatbázis-kezelı rendszerek felépítése,

Rendszerkezelési útmutató

Szinkronizálás. 9. előadás

Adatbázisok elmélete 1. előadás

2 Access 2016 zsebkönyv

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?


Adatbázis rendszerek. dr. Siki Zoltán

Adatbázisok elmélete 21. előadás

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?

Informatika szigorlat 9-es tétel: Az adatbázis-kezelő rendszerek fogalmai

Adatbázis tartalmának módosítása. SQL DML utasítások

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

S04-2 Elosztott alkalmazások készítése

SQLServer. Particionálás

Egyetemi könyvtári nyilvántartó rendszer

Biztonsági mentés és visszaállítás Felhasználói útmutató

Adatbázisok elmélete 1. előadás

Adatbázis rendszerek. Molnár Bence. Szerkesztette: Koppányi Zoltán

A szürke háttérrel jelölt fejezet/alfejezet szövege a CD-mellékleten található. A CD-melléklet használata. 1. Elméleti áttekintés 1

Java programozási nyelv 9. rész Kivételkezelés

Adatbázisok* tulajdonságai

Ez a telepítési dokumentum segítséget nyújt abban, hogy szabályosan telepítse az Áfa átállító szoftvert Szerviz 7 programhoz.

Tranzakció, mint a helyreállítás egysége

Tematika. Helyreállíthatóság (Failure Recovery) (8. fejezet) Konkurenciavezérlés (Concurrency control) (9. fejezet)

Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése

Listák, szótárak, fájlok Listák, szótárak, fájlok

INFORMATIKAI ALAPISMERETEK

Operációs rendszerek. 10. gyakorlat. AWK - bevezetés UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

Adatszerkezetek 1. Dr. Iványi Péter

Adatbázis rendszerek I

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Adatbázis kezelés Delphiben. SQL lekérdezések

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

7. előadás. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF. Adatbázisrendszerek előadás november 3.

számított mező, számított tétel

Számítógépek felépítése

INFORMATIKAI ALAPISMERETEK

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Osztott jáva programok automatikus tesztelése. Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január

Szkriptnyelvek. 1. UNIX shell

Adatbázisrendszerek megvalósítása 1

Címkék és ágak kezelése i. Címkék és ágak kezelése

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Tájékoztató. Használható segédeszköz: -

Adatszerkezetek 1. előadás

Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések

Adatbázisrendszerek 2. előadás: Alapfogalmak

Operációs rendszerek. Elvárások az NTFS-sel szemben

SQL DDL-2 (aktív elemek) triggerek

Adatmodellezés. 1. Fogalmi modell

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

KOVÁCS BÉLA, MATEMATIKA I.

Adatbáziskezelés. Indexek, normalizálás NZS 1

A hazai alállomási irányítástechnika kezdete. Szakmai félnap a debreceni alállomási irányítástechnika üzembehelyezésének 20. évfordulója alkalmából

Tájékoztató. Használható segédeszköz: -

Egyetemi könyvtári nyilvántartó rendszer

ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF

Fájlrendszerek. A Windows operációs rendszerek fájlrendszere

1. előadás: Halmazelmélet, számfogalom, teljes

Ismerkedés az Office 2007 felhasználói felületével

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

1. A Windows Vista munkakörnyezete 1

GDi Esri Magyarország Felhasználói Konferencia Timár Gábor: Konkurens adatfeldolgozás ArcGIS rendszerben

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Fogalmak: Adatbázis Tábla Adatbázis sorai: Adatbázis oszlopai azonosító mező, egyedi kulcs Lekérdezések Jelentés Adattípusok: Szöveg Feljegyzés Szám

Informatikus informatikus Térinformatikus Informatikus T 1/9

Ellenőrző kérdések. 1. Kis dolgozat kérdései

Szárnyas Gábor (BME) diáinak felhasználásával.

Átírás:

Adatbázisrendszerek kezelés 2018. április 10.

2 Egyfelhasználós rendszer. Egyidőben legfeljebb egy felhasználó használhatja a rendszert. Többfelhasználós rendszer. Egyidejűleg (konkurens módon) több felhasználó érheti el a rendszert. típusa Összefésült egyszálú feldolgozás. A folyamatok (processzek) konkurens végrehajtása egy CPU-n fésülődik össze. Párhuzamos feldolgozás. A folyamatok (processzek) egyidejűleg (konkurens módon) több CPU-n hajtódnak végre.

3 (heurisztikus) Adatbázis folyamatok egy olyan logikai egysége, amely egy vagy több adatbázis-hozzáférési műveletet (olvasás - kinyerés, írás - beszúrás, frissítés, törlés) tartalmaz. Egy tranzakció (műveletek egy halmaza) lehet önálló, melyet egy magas szintű nyelv specifikál (SQL) és interaktív módon hajtunk végre, illetve lehet beágyazva egy programon belül. határai: Begin transaction és End transaction Egy alkalmazói program több, egymástól elkülönülő tranzakciót tartalmazhat, melyeket a fenti határok közé foglalunk be.

Az adatbázis egyszerű modellje 4 kezelés szempontjából az adatbázis egy egyszerű modelljét használjuk. Az adatbázis nevesített adatelemek egy összessége. Az adatok szemcsézettsége (granularitása): az adatok különböző méretű egységei - mező, rekord, egy teljes lemez blokk. (Az ismertetett k függetlenek a konkrét finomságtól.) Az alapműveletek az olvasás és az írás: read item(x): beolvassa az X nevű adatbázis elemet egy program változóba. A jelölések egyszerűsítése kedvéért ezt a program változót szintén X-szel jelöljük. write item(x): kíırja az X program változó értékét az adatbázis X nevű elemébe.

Az adatbázis egyszerű modellje 5 Írási és olvasási műveletek jellemzői: az adatátvitel alapegysége a lemezről a számítógép fő memórájába illetve vissza a blokk. Általában egy beolvasandó vagy kíırandó adategység ettől kisebb, egy rekord egy mezője az adatbázisban, bár lehetnek olyan nagyobb egységek is, mint egy rekord vagy akár egy teljes blokk is.

Írási és olvasási műveletek 6 A read item(x) utasítás az alábbi lépéseket tartalmazza: Megkeresi az X elemet tartalmazó lemezblokk címét. Átmásolja ezt a lemezblokkot a fő memória pufferébe, (amennyiben ez a blokk nincs már benne valamelyik fő memória pufferben). Átmásolja az X elemet a pufferből az X nevű program változóba. A write item(x) utasítás az alábbi lépéseket tartalmazza: Megkeresi az X elemet tartalmazó lemezblokk címét. Átmásolja ezt a lemezblokkot a fő memória pufferébe, (amennyiben ez a blokk nincs már benne valamelyik fő memória pufferben). Átmásolja az X elemet az X nevű program változóból a puffer megfelelő területére. Visszamásolja a frissített blokkot a pufferből a lemezre (rögtön vagy egy későbbi időpontban).

Példa két tranzakcióra 7 T 1 tranzakció read item(x); X:=X-N; write item(x); read item(y); Y:=Y+N; write item(y); T 2 tranzakció read item(x); X:=X+M; write item(x);

Miért van szükség konkurencia ra? 8 Az elveszett frissítés problémája. Akkor fordul elő, amikor két tranzakció, amely ugyanazokat az adatbázis elemeket éri el, úgy fésülődik össze, hogy egyes adatbázis elemek hibásakká válnak. Az időleges frissítés (dirty read) problémája. Akkor fordul elő, amikor egy tranzakció frissít egy adatbázis elemet, ami után valamilyen oknál fogva a tranzakció hibásan fejeződik be. Ezt a frissített elemet más tranzakció is eléri mielőtt az még visszaállna az eredeti értékére. A helytelen összegzés problémája. Amikor egy tranzakció rekordok egy összegző függvényét számolja, amíg egy másik tranzakció ezen rekordok közül néhányat frissít. Ekkor az összegző függvény olyan értékekkel számolhat, amelyek még a frissítés előtt vannak, míg mások már a frissítés után.

Az elveszett frissítés problémája 9 Tegyük fel, hogy az alábbi módon fésülődnek össze a T 1 és T 2 tranzakciók. T 1 tranzakció read item(x); X:=X-N; write item(x); read item(y); Y:=Y+N; write item(y); T 2 tranzakció read item(x); X:=X+M; write item(x);

Az elveszett frissítés problémája 10 Ha a két tranzakciót egymás után hajtjuk végre, akármilyen sorrendben, akkor az X adatbázis elem új értéke X N + M lesz, az Y-é pedig Y + N. Ezzel szemben a fenti összefésülés esetén X + M-t fogja X tartalmazni hiszen T 2, a T 1 módosítása után de még mentés előtt, újra beolvassa X-t a régi értékkel. Így X T 1 általi frissítése ( N) elveszik. (Foglalt helyek száma)

Az időleges frissítés problémája 11 Tegyük fel, hogy az alábbi módon fésülődnek össze a T 1 és T 2 tranzakciók. T 1 tranzakció read item(x); X:=X-N; write item(x); read item(y); Y:=Y+N; write item(y); T 2 tranzakció read item(x); X:=X+M; write item(x);

Az időleges frissítés problémája 12 Tegyük fel, hogy a fenti módon fésülődtek össze a T 1 és T 2 tranzakciók. Ha a rendszerben hiba történik a T 1 tranzakció teljes véglegesítése előtt de még az X adatbázis elem értékét sikerül elmenteni, akkor a T 2 tranzakció hibásan ezzel az értékkel fog dolgozni és nem az eredetivel. Ezért a végeredmény a rossz X N + M érték lesz a jó X + M helyett, amit akkor kapnánk ha visszaálĺıtanánk a T 1 tranzakció előtti állapotot. A T 2 végrehajtásánál az X adatbázis elem beolvasásakor ún. piszkos olvasás történik.

A helytelen összegzés problémája 13 T 1 tranzakció read item(x); X:=X-N; write item(x); read item(y); Y:=Y+N; write item(y); T 2 tranzakció sum:=0; read item(a); sum:=sum+a; read item(x); sum:=sum+x; read item(y); sum:=sum+y;

A helytelen összegzés problémája 14 A T 2 tranzakció azután olvassa be X-et, hogy N-et már levontunk belőle, míg az előtt olvassa be Y-t, hogy N-et hozzáadtunk volna, az eredmény hibás összegzés lesz.

Miért van szükség helyreálĺıtásra? 15 A helyreálĺıtás (recovery) lehetséges okai: Számítógép hiba (rendszerösszeomlás). Hardver vagy szoftver hiba fordul elő a tranzakció végrehajtásakor. Amennyiben a hardver sérül, úgy a számítógép memóriájában lévő információ elveszhet. vagy rendszer hiba. Bizonyos műveletek a tranzakcióban hibát eredményezhetnek, pl. nullával való osztás vagy egész túlcsordulás. hiba fordulhat még elő hibás paraméter értéknél programozói hiba esetén. Emellett a felhasználó is megszakíthatja a tranzakciót. Lokális hibát vagy kivételt észlel a tranzakció. Bizonyos esetekben szükség lehet a tranzakció törlésére, pl. az adatok nem állnak rendelkezésre, vagy nincs elégséges fedezet egy adott összeg lehívására egy banki rendszerben.

Miért van szükség helyreálĺıtásra? 16 A helyreálĺıtás (recovery) lehetséges okai: kontrol kikényszerítés. A konkurencia kontrol dönthet a tranzakció megszakítása mellett és később újraindíthatja azt. Ennek oka lehet a szerializálhatóság követelménye (ld. később), vagy mert több tranzakció deadlock (holtpont) állapotban van. Lemezhiba. A lemez egyes blokkjai elvesztették az adataikat. Ennek oka lehet pl. az író-olvasó fej megsérülése, ami a tranzakció írása vagy olvasása kapcsán egyaránt előfordulhat. Fizikai, katasztrófák. Végtelen listája olyan nak, mint a légkondicionáló hibája, tűz, szabotázs, a lemez túĺırása, vagy rossz lemez felmountolása az operátor által.

17 Definíció egy végrehajtás alatt álló program, amely az adatbázis-feldolgozás egy logikai egységét alkotja. Egy tranzakció egy vagy több adatbázis-hozzáférési műveletből (beszúrás, törlés, módosítás és lekérdezés) áll. t alkotó adatbázis-műveletek vagy egy alkalmazói programba vannak beágyazva, vagy interaktívan is megadhatók egy magas szintű lekérdező nyelv (például SQL) segítségével. határait megadhatjuk az explicit begin transaction és end transaction utasításokkal egy alkalmazói programban, ebben az esetben a két utasítás között elhelyezkedő összes adatbázis-hozzáférési művelet egy tranzakciót alkot.

18 Egy alkalmazói program egynél több tranzakciót is tartalmazhat, ha több tranzakcióelhatároló utasítás szerepel benne. Ha a tranzakciót alkotó adatbázis-műveletek nem módosítják az adatbázist, csak lekérdezik azt, akkor a tranzakciót read-only tranzakciónak nevezzük.

állapotai és műveletei 19 Állapotok: aktív állapot részlegesen véglegesített állapot véglegesített (commit) állapot hibás állapot megszakított állapot Műveletek: begin transaction read vagy write end transaction commit transaction rollback vagy abort

állapotai és műveletei 20 A visszaálĺıtás során az alábbi műveletek használhatóak undo hasonló a rollback-hez azt kivéve, hogy elemibb művelet minthogy egy egész tranzakcióra vonatkozna redo bizonyos tranzakció műveleteket újra végrehajt a biztonság kedvéért

végrehajtás folyamatábrája 21 ide jön egy ábra

22 A log vagy napló-fájl. A log nyomon követi az összes olyan tranzakció műveletet, amely hatással van az adatbázis elemeire. Ez az információ szükséges lehet a visszaálĺıtás engedélyezésére hibás tranzakció esetén. A log a lemezen van, ezért immunis minden hibatípusra kivéve a lemezhibákat és katasztrófákat. A log-ot periódikusan archiválni kell (pl. szalagon) a fenti katasztrófák kijavítására.

23 A log-rekordok típusai: [start transaction,t], [write item, T,old value,new value], [read item,t,x], [commit,t], [abort,t], ahol T egy egyértelmű tranzakció azonosító. Azok a helyreálĺıtó protokollok, amelyek elkerülik a kaszkádolt (lépcsős) rollback-et, nem igénylik a read műveletet a log-ban, míg mások igen. Erős protokollok egyszerűbb write bejegyzéseket igényelnek, amelyek nem tartalmazzák a new value-t.

a rendszer loggal 24 Ha a rendszer összeomlik, akkor helyreálĺıthatjuk konzisztens adatbázis állapotba a log vizsgálatával megfelelő módszerek révén. Mivel a log minden olyan írási műveletről tartalmaz egy rekordot, amely megváltoztatja valamelyik adatbázis elem értékét, az undo segítségével lehetséges egy tranzakció írási műveletei hatásának visszaálĺıtása úgy, hogy az összes érintett adatbázis elem értékét az írási művelet log-bejegyzésebeli old value értékére álĺıtjuk vissza. Szintén használhatjuk a redo-t arra, hogy kikényszerítsük az írási műveletek hatását minden a tranzakcióban érintett adatbázis elem értékének a log-bejegyzésbeli megfelelő new value-re való álĺıtásával.

Commit és Rollback 25 Definíció Egy tranzakció akkor éri el a véglegesítési (commit) pontját, ha az összes adatbázis-hozzáférési művelete sikeresen végrehajtódott és ezen műveletek hatása kíırásra került a log-fájlba. A véglegesítési pontja után a tranzakciót véglegesítettnek nevezzük és feltételezzük, hogy összes hatása állandó bejegyzésre került az adatbázisban. ezután egy [commit,t] bejegyzést tesz a log-ba. visszavonása (rollback): azon tranzakcióknál szükséges, amelyeknél van [start transaction,t] bejegyzés a log-ban, azonban nincs [commit,t] bejegyzés.

26 Atomosság (atomicity): a feldolgozás atomi egysége; vagy teljes egészében végrehajtódik, vagy egyáltalán nem. Konzisztenciamegőrzés (consistency preservation): Egy tranzakció konzisztenciamegőrző, ha teljes és önálló végrehajtása az adatbázist konzisztens állapotból konzisztens állapotba viszi át. Elkülönítés (isolation): Egy tranzakciónak látszólag más tranzakcióktól elkülönítve kell végrehajtódnia. Ez azt jelenti, hogy a tranzakció végrehajtása nem állhat kölcsönhatásban semelyik másik konkurensen végrehajtott tranzakcióval sem. Tartósság vagy állandóság (durability vagy permanency): Egy véglegesített tranzakció által az adatbázison véghezvitt módosításoknak meg kell őrződniük az adatbázisban. Ezeknek a módosításoknak semmilyen hiba miatt nem szabad elveszniük.

27 Az biztosításáért a DBMS konkurenciavezérlő és naplózó/helyreálĺıtó alrendszerei a felelősek.

Visszaálĺıthatóságon alapuló ütemezés 28 ütemezés (schedule vagy history) A különböző n lévő műveletek sorrendje, amikor a tranzakciókat összefésülve egy szálon hajtjuk végre. Az ütemezés a tranzakció műveletek egy olyan sorrendje, amely megfelel az egyenkénti tranzakcióbeli sorrendnek, azaz ha két, egyazon tranzakcióbeli műveletnél az egyik megelőzi a másikat, úgy ez a sorrend megmarad az összefésülés után is.

Visszaálĺıthatóságon alapuló ütemezés 29 Típusok: Visszaálĺıtható ütemezés. Amikor egyetlen egy olyan T tranzakció sem véglegesítődik addig, amíg nem véglegesítődik minden olyan T tranzakció, amely olyan elemet ír ki, amelyet T beolvas. Ekkor egyetlen tranzakciót sem szükséges visszaálĺıtani. Kaszkádmentes ütemezés. Amikor minden tranzakció csak olyan adatbázis elemet olvas be, amelyet egy már elfogadott tranzakció írt ki.

Szerializálhatóságon alapuló ütemezés 30 Szeriális ütemezés Egy S ütemezést szeriálisnak nevezünk, ha minden ütemezésbeli T tranzakcióra fennáll, hogy az összes T -beli művelet közvetlenül egymás után hajtódik végre az ütemezésben. Szerializálható ütemezés Egy S ütemezés szerializálható, ha ekvivalens ugyanazon tarnzakciók egy szeriális ütemezésével.

Szerializálhatóságon alapuló ütemezés 31 Fajtái: Eredmény ekvivalens ütemezés. Amikor a két ütemezés ugyanazt a végső adatbázis állapotot eredményezi. Konfliktus ekvivalens ütemezés. Amikor a két ütemezésben bármely két konfliktusos művelet (pl. ugyanazt az adatbázis elemet akarja felüĺırni két tranzakció) sorrendje ugyanaz. Konfliktus szerializálható ütemezés. Amikor az ütemezés konfliktus ekvivalens egy szeriális ütemezéssel.

Megjegyzések a szerializálhatóságról 32 1 A szerializálhatóság nem jelenti azt, hogy az ütemezés maga szeriális. 2 A szerializálhatóságból következik, hogy az ütemezés helyes. Ez azt jelenti, hogy az adatbázis konzisztens állapotban marad a tranzakciók végrehajtása után. 3 A szerializálhatóságot nehéz ellenőrizni, mivel nem könnyű előre meghatározni, hogy egy ütemező hogyan fésüli össze a műveleteket. 4 A gyakorlatban protokollokat használnak a szerializálhatóság biztosítására. 5 Egy ütemezés kezdete és vége nem meghatározható, ezért a teljes ütemezés ellenőrzését a véglegesített tranzakciókbeli műveletek ellenőrzésére redukálják.

Megjegyzések a szerializálhatóságról 33 6 A gyakorlatban a legtöbb DBMS-ben a kétfázisú zárolást (two phase locking) használják. 7 Egy gyengébb ekvivalencia ütemezések között az ún. nézet (view) ekvivalencia, melyet itt nem tárgyalunk. 8 Van algoritmus a konfliktus szerializálhatóság ellenőrzésére, amely a precedencia gráfon alapszik.

A konkurencia 34 Célja Példa Az elkülönítés kikényszerítése (pl. teljes kizárással) a konfliktusos tranzakciók között. Az adatbázis konzisztenciájának megőrzése a tranzakciók konzisztencia megőrző végrehajtása révén. Az olvasás-írás és írás-írás konfliktusok feloldása. Ha egy konkurens végrehajtási környezetben a T 1 konfliktusba kerül a T 2 -vel az A adatelem miatt, akkor a létező konkurencia dönt arról, ha T 1 -nek vagy T 2 -nek szüksége van A-ra, illetve ha más tranzakciókat vissza kell álĺıtani vagy várakoztatni kell.

A kétfázisú zárolás módszere 35 Két művelet: Lock(X) és Unlock(X) az X adatbázis elemen. A zárolás (Lock) művelet biztosítja az engedélyt (a) olvasásra, (b) egy adatelem írására egy tranzakció által. A feloldás (Unlock) művelet törli ezeket az engedélyeket az adatelemről. A két művelet atomi művelet. Két zárolási mód: (a) megosztás (shared lock) és (b) kizárás (write lock). Megosztás esetén egynél több ilyet jegyezhetünk be egy adatbázis elemre olvasás céljából, azonban ekkor kizárást már nem jegyezhetünk be semmilyen tranzakció által. Csak egy kizárás jegyezhető be egy adatbázis elemre egy időben és ekkor egyetlen tranzakció sem jegyezhet be megosztást erre az adatbázis elemre.

A kétfázisú zárolás módszere 36 A Lock Manager menedzseli a zárolásokat az adatelemeken egy zárolási tábla (lock table) segítségével tartva ezeket nyilván.