Transaktionsverwaltung

Slides:



Advertisements
Ähnliche Präsentationen
Kapitel 15 Verteilte Datenbanken
Advertisements

Mehrbenutzersynchronisation
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Rücksetzen Bisher betrachtetes Scheduling gewährleistet Isolation, d.h. Serialisierbarkeit, setzt jedoch voraus, dass Transaktionen abgebrochen und rückgesetzt.
C Tutorium – Semaphoren –
Transaktionsverwaltung
© A. Kemper / A. Eickler1 Fehlerbehandlung (Recovery) 1.Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion Wirkung muss zurückgesetzt.
1 Fehlerbehandlung (Recovery) 1.Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion Wirkung muss zurückgesetzt werden R1-Recovery.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
1 Fehlerbehandlung (Recovery) 1.Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion Wirkung muss zurückgesetzt werden R1-Recovery.
FH-Hof Deadlocks Richard Göbel. FH-Hof Deadlock - Definition Menge von Prozessen ist an einem Deadlock beteiligt: wenn jeder Prozess in dieser Menge auf.
Gottfried Vossen 5. Auflage 2008 Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Kapitel 22: Grundlagen der Crash Recovery.
Transaktionen in verteilten Datenbanken
Datenbanksysteme für FÜ WS 2004/2005 Transaktionen 1 Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz.
Datenbanksysteme für FÜ SS 2000 Seite Worzyk FH Anhalt Transaktionen und Parallelverarbeitung Eigenschaften von Transaktionen Konsistenz Isolation.
Kapitel 13: Mehrbenutzersynchronisation
Kapitel 14: Recovery Oliver Vornberger
1 Kapitel 12: Transaktionsverwaltung Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück Osnabrück
1 Kapitel 12: Transaktionsverwaltung. 2 Transaktion Bündelung mehrerer Datenbankoperationen Mehrbenutzersynchronisation Recovery.
15.1 Synchronisation nebenläufiger Prozesse
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel.
Synchronisation paralleler Transaktionen AIFB SS Synchronisationsverfahren 4.4 Synchronisationsverfahren (1/18) Sperrmodi und Sperrobjekte Sperrprotokoll.
Einige Begriffe zum Anfang.... Transaktionsprozedur: Folge primitiver Operationen als Einheit der Konsistenz und der Robustheit. Transaktion (TA): Ausführung.
Transaktion 1Transaktion 2... Transaktion n Synchronisation durch Scheduler Datenbasis-Verwalter lokaler Schedule 1lokaler Schedule n konfliktserialisierbarer.
4.4.2 Sperrverfahren (9/18) Regeln für das Setzen von Sperren
Recovery AIFB SS Einbringstrategie der Pufferverwaltung(1/4) Die bestimmt, wann geänderte Seiten in die Datenbank eingebracht werden. Sie.
Recovery AIFB SS (1/8) Sicherungspunkte (Checkpoints) (1/8) (1) Transaktions-Orientierte Sicherungspunkte Transaction-Oriented Checkpoint.
Ausführungsmodell Zustandsübergang einer Transaktion aus Nutzersicht:
Implementierung von S2PL (1) Scheduler als Verwalter von Sperren auf Datenelementen sowie Warteschlangen für Sperren (Sperren-Verwalter). Transaktion 1Transaktion.
Modellierung von Transaktionen Zur Formalisierung der ACID-Garantien muss Verhalten von Transaktionen modelliert werden. Folge aus der Forderung nach lokaler.
Synchronisation paralleler Transaktionen AIFB SS Konzept der Transaktion 4.2 Konzept der Transaktion (1/4) Eine Transaktion ist ein in sich geschlossener,
Betriebliche Informationssysteme Prof. Dr. Michael Löwe
Gottfried Vossen 5. Auflage 2008 Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Kapitel 21: Concurrency Control.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Globale Transaktions-Verwaltung
Mehrbenutzersynchronisation
WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #11 Transaktionsverwaltung.
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #6 Fehlerbehandlung.
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #10 Transaktionsverwaltung.
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #12 Mehrbenutzersynchronisation.
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #7 Mehrbenutzersynchronisation (Teil 1)
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #12 Mehrbenutzersynchronisation.
Synchronisation paralleler Transaktionen AIFB SS Serialisierbarkeitsprinzip 4.3 Serialisierbarkeitsprinzip (11/13) Vermutung: Eine Schedule S.
Festschreibe-Protokoll (1) Globales Zwei-Phasen-Festschreibe-Protokoll (2- Phasen-Commit, 2PC): Phase 1: –Koordinator benachrichtigt Ressourcen, dass Commit.
Transaktion Huang Zhenhao FU Shuai.
Thread Synchronisation in JAVA
Vorlesung #12 Mehrbenutzersynchronisation
Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung Prof. Dr. Manfred Gruber FH München.
Vorlesung Datenbanksysteme WS 2.0 Christoph Koch (Subject: DBVO:...
ADAT©2004,2006 Dipl. - Ing. Walter SabinSeite: 48 Version 1.0a Recovery Wiederherstellung eines konsistenten Datenbankzustandes nach Fehlersituationen.
Lokales 2-Phasen-Festschreibe- Protokoll Segment-Verwalter führt commit(T i ) in zwei Phasen aus: Phase 1: Sicherstellung der Wiederholbarkeit. –Für jedes.
Übung: Transaktionale Systeme (Zusammenfassung der Vorlesungsinhalte)
Transaktionen Dr. Heidrun Bethge Datenbanken II.
Mehrbenutzerzugriff auf GIS-Daten
Mehrbenutzersynchronisation
Transaktionsverwaltung
Synchronisation paralleler Transaktionen  AIFB SS Sperrverfahren Sperrverfahren (13/18) Behandlung von Konflikten bei der Sperrvergabe.
Recovery    AIFB SS (1/6) Durchführung der Recovery-Maßnahmen(1/6) Transaktions-Fehler (TF) T1 T2 T3 Zeitt Transaktion T2 wird vom.
Serialisierbarkeitsprinzip Isolationsprinzip scheint zunächst streng serielle Abwicklung der Transaktionen zu fordern: r 1 (x) r 1 (y)... w 1 (z) c 1 r.
Synchronisation paralleler Transaktionen  AIFB SS Synchronisationsverfahren 4.4 Synchronisationsverfahren (1/3) Typen von Synchronisationsverfahren.
Vs Verteilte Transaktionen Situation:Fragmentierung: Ein Datenbestand ist über mehrere Stationen verteilt (z.B. verteilte Datenbank, verteiltes Dateisystem,...)
6.3 Verteilte Transaktionen
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #12 Mehrbenutzersynchronisation.
Prof. Dr. T. Kudraß1 Transaktionsmanagement - Einführung.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
6.3 Verteilte Transaktionen
WS 2001/2002 Mehrbenutzerzugriff auf GIS-Daten
Vorlesung #7 Fehlerbehandlung
Vorlesung #10 Fehlerbehandlung
 Präsentation transkript:

Transaktionsverwaltung Kapitel 12 Transaktionsverwaltung

 Lernziele Begriff und Eigenschaften von Transaktionen Mehrbenutzer-Synchronisation Theorie der Serialisierbarkeit Zwei-Phasen-Sperrprotokolle Deadlocks und deren Vermeidung Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Transaktionsverwaltung  Beispiel einer typischen Transaktion in einer Bankanwendung: Lese den Kontostand von A in die Variable a : read(A,a); Reduziere den Kontostand um 50 EUR: a:= a – 50; Schreibe den neuen Kontostand in die Datenbasis: write(A,a); Lese den Kontostand von B in die Variable b: read(B,b); Erhöhe den Kontostand um 50 EUR: b := b + 50; Schreibe den neuen Kontostand in die Datenbasis: write(B, b); Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Operationen auf Transaktions-Ebene In den klassischen Transaktionssystemen: begin of transaction (BOT): Mit diesem Befehl wird der Beginn einer eine Transaktion darstellende Befehlsfolge gekennzeichnet. commit: Hierdurch wird die Beendigung der Transaktion eingeleitet. Alle Änderungen der Datenbasis werden durch diesen Befehl festgeschrieben, d.h. sie werden dauerhaft in die Datenbank eingebaut. abort: Dieser Befehl führt zu einem Selbstabbruch der Transaktion. Das Datenbanksystem muss sicherstellen, dass die Datenbasis wieder in den Zustand zurückgesetzt wird, der vor Beginn der Transaktionsausführung existierte. Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Abschluss einer Transaktion Für den Abschluss einer Transaktion gibt es zwei Möglichkeiten: Den erfolgreichen Abschluss durch ein commit. Den erfolglosen Abschluss durch ein abort. Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Eigenschaften von Transaktionen: ACID Atomicity (Atomarität) Alles oder nichts ! Consistency Konsistenter DB-Zustand muss in konsistenten Zustand übergehen ! Isolation Jede Transaktion hat die DB „für sich allein“ Durability (Dauerhaftigkeit) Änderungen erfolgreicher Transaktionen dürfen nie verloren gehen Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Transaktionsverwaltung in SQL commit work Die in der Transaktion vollzogenen Änderungen werden – falls keine Konsistenzverletzung oder andere Probleme aufgedeckt werden – festgeschrieben. Schlüsselwort work ist optional rollback work Alle Änderungen sollen zurückgesetzt werden. Anders als der commit-Befehl muss das DBMS die „erfolgreiche“ Ausführung eines rollback-Befehls immer garantieren können. Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Transaktionsverwaltung in SQL Beispielsequenz auf Basis des Universitätsschemas: INSERT INTO Vorlesungen values (5275, 'Kernphysik', 3, 2141); INSERT INTO Professoren values (2141, 'Meitner', 'C4', 205); COMMIT Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Fehler bei unkontrolliertem Mehrbenutzerbetrieb I Verlorengegangene Änderungen (lost update) write(A,a2) a2 := a2 * 1.03 read(A,a2) T2 write(B,b1) b1 := b1 + 300 read(B,b1) write(A,a1) a1 := a1 – 300 read(A,a1) T1 9. 8. 7. 6. 5. 4. 3. 2. 1. Schritt Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Fehler bei unkontrolliertem Mehrbenutzerbetrieb II Abhängigkeit von nicht freigegebenen Änderungen write(A,a2) a2 := a2 * 1.03 read(A,a2) T2 abort . . . read(B,b1) write(A,a1) a1 := a1 – 300 T1 9. 8. 7. 6. 5. 4. 3. 2. 1. Schritt read(A,a1) Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Fehler bei unkontrolliertem Mehrbenutzerbetrieb III Phantomproblem T1 T2 select sum(KontoStand) from Konten insert into Konten values (C,1000,...) select sum(Kontostand) Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Historie ist „äquivalent“ zu einer seriellen Historie Serialisierbarkeit Historie ist „äquivalent“ zu einer seriellen Historie dennoch parallele (verzahnte) Ausführung möglich Serialisierbare Historie von T1 und T2 Schritt T1 T2 1. BOT 2. read(A) 3. 4. read(C) 5. write(A) 6. write(C) 7. read(B) 8. write(B) 9. commit 10. 11. 12. Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Serielle Ausführung von T1 vor T2, also T1 | T2 Schritt T1 T2 1. BOT 2. read(A) 3. write(A) 4. read(B) 5. write(B) 6. commit 7. 8. read(C) 9. write(C) 10. 11. 12. Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Nicht serialisierbare Historie Schritt T1 T3 1. BOT 2. read(A) 3. write(A) 4. 5. 6. 7. read(B) 8. write(B) 9. commit 10. 11. 12. Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Zwei verzahnte Überweisungs-Transaktionen Schritt T1 T3 1. BOT 2. read(A,a1) 3. a1 := a1 – 50 4. write(A,a1) 5. 6. read(A,a2) 7. a2 := a2 – 100 8. write(A,a2) 9. read(B,b2) 10. b2 := b2 + 100 11. write(B,b2) 12. commit 13. read(B,b1) 14. b1 := b1 + 50 15. write(B,b1) 16. Ist nicht serialisierbar, obwohl dies im konkreten Fall nicht zum Konflikt führt. Letzteres kann die DB aber nicht beurteilen. Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Eine Überweisung (T1) und eine Zinsgutschrift (T3) Schritt T1 T3 1. BOT 2. read(A,a1) 3. a1 := a1 – 50 4. write(A,a1) 5. 6. read(A,a2) 7. a2 := a2 * 1.03 8. write(A,a2) 9. read(B,b2) 10. b2 := b2 * 1.03 11. write(B,b2) 12. commit 13. read(B,b1) 14. b1 := b1 + 50 15. write(B,b1) 16. Dieselbe r/w-Konstellation, diesmal zum Konflikt führend. Die DB greift zur Kontrolle nur auf die r/w-Struktur zu, nicht auf die Semantik der Anwendung! Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Theorie der Serialisierbarkeit Ziel: „Formale“ Beschreibung einer Transaktion Operationen einer Transaktion Ti ri(A) zum Lesen des Datenobjekts A, wi(A) zum Schreiben des Datenobjekts A, ai zur Durchführung eines aborts, ci zur Durchführung des commit. Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Theorie der Serialisierbarkeit Konsistenzanforderung einer Transaktion Ti entweder abort oder commit aber nicht beides! Falls Ti ein abort durchführt, müssen alle anderen Operationen pi(A) vor ai ausgeführt werden, also pi(A) <i ai. Analoges gilt für das commit, d.h. pi(A) <i ci falls Ti „committed“. Wenn Ti ein Datum A liest und auch schreibt, muss die Reihenfolge festgelegt werden, also entweder ri(A) <i wi(A) oder wi(A) <i ri(A). Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Theorie der Serialisierbarkeit II Historie ri(A) und rj(A): In diesem Fall ist die Reihenfolge der Ausführungen irrelevant, da beide TAs in jedem Fall denselben Zustand lesen. Diese beiden Operationen stehen also nicht in Konflikt zueinander, so dass in der Historie ihre Reihenfolge zueinander irrelevant ist. ri(A) und wj(A): Hierbei handelt es sich um einen Konflikt, da Ti entweder den alten oder den neuen Wert von A liest. Es muss also entweder ri(A) vor wj(A) oder wj(A) vor ri(A) spezifiziert werden. wi(A) und rj(A): analog wi(A) und wj(A): Auch in diesem Fall ist die Reihenfolge der Ausführung entscheidend für den Zustand der Datenbasis; also handelt es sich um Konfliktoperationen, für die die Reihenfolge festzulegen ist. Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Der Datenbank-Scheduler Tn ...... Transaktions-Manager TM Scheduler Recovery-Manager Puffer-Manager Daten-Manager Datenbank Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Aufgabe des Schedulers Reihung der Operationen verschiedener Transaktionen, so dass die Historie mindestens serialisierbar und meistens auch ohne kaskadierendes Rollback rücksetzbar ist. Verschiedene Ansätze möglich: sperrbasierte Synchronisation (am meisten benutzt) Zeitstempel-basierte Synchronisation optimistische Synchronisation (bei vorwiegend lesenden Zugriffen) Pessimistische Synchronisation Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Sperrbasierte Synchronisation Sichert Serialisierbarkeit zu Zwei Sperrmodi S (shared, read lock, Lesesperre): X (exclusive, write lock, Schreibsperre): Verträglichkeitsmatrix (auch Kompatibilitätsmatrix genannt) NL S X  - Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Zwei-Phasen-Sperrprotokoll (2PL): Definition Jedes Objekt, das von einer Transaktion benutzt werden soll, muss vorher entsprechend gesperrt werden. Eine Transaktion fordert eine Sperre, die sie schon besitzt, nicht erneut an. Eine Transaktion muss die Sperren anderer Transaktionen auf dem von ihr benötigten Objekt gemäß der Verträglichkeitstabelle beachten. Wenn die Sperre nicht gewährt werden kann, wird die Transaktion in eine entsprechende Warteschlange eingereiht – bis die Sperre gewährt werden kann. Jede Transaktion durchläuft zwei Phasen: Eine Wachstumsphase, in der sie Sperren anfordern, aber keine freigeben darf und eine Schrumpfphase, in der sie ihre bisher erworbenen Sperren freigibt, aber keine weiteren anfordern darf. Bei EOT (Transaktionsende) muss eine Transaktion alle ihre Sperren zurückgeben. Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Zwei-Phasen Sperrprotokoll: Grafik #Sperren Wachstum Schrumpfung Zeit Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Verzahnung zweier TAs gemäß 2PL T1 modifiziert nacheinander die Datenobjekte A und B (z.B. eine Überweisung) T2 liest nacheinander dieselben Datenobjekte A und B (z.B. zur Aufsummierung der beiden Kontostände). Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Verzahnung zweier TAs gemäß 2PL Schritt T1 T2 Bemerkung 1. BOT 2. lockX(A) 3. read(A) 4. write(A) 5. 6. lockS(A) T2 muss warten 7. lockX(B) 8. read(B) 9. unlockX(A) T2 wecken 10. 11. lockS(B) 12. write(B) 13. unlockX(B) 14. 15. commit 16. unlockS(A) 17. unlockS(B) 18. Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Strenges Zwei-Phasen Sperrprotokoll 2PL schließt kaskadierendes Rücksetzen nicht aus Erweiterung zum strengen 2PL: alle Sperren werden bis EOT gehalten damit ist kaskadierendes Rücksetzen ausgeschlossen Verhindert allerdings keine Deadlocks #Sperren Wachstumsphase EOT Zeit Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Verklemmungen (Deadlocks) Ein verklemmter Schedule Schritt T1 T2 Bemerkung 1. BOT 2. lockX(A) 3. 4. lockS(B) 5. read(B) 6. read(A) 7. write(A) 8. lockX(B) T1 muss warten auf T2 9. lockS(A) T2 muss warten auf T1 10. ...  Deadlock Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Verklemmungen a: können entdeckt und dann aufgelöst b: oder gleich vermieden werden. Beides ist u.U. teuer. Mögliche Techniken: Ad a: 1. Time-Out 2. Zyklenerkennung Ad b: 3. Preclaiming 4. Zeitstempel Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Erkennen von Verklemmungen 1. Brute-Force-Methode: Time-Out Nach gewisser Wartezeit (z.B. 1 sec) wird Transaktion zurückgesetzt Nachteil: Falls Zeit zu kurz, werden zu viele Transaktionen zurückgesetzt, die nur auf Resourcen (CPU etc.) warten. Falls Zeit zu lang, werden zu viele Verklemmungen geduldet. Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Erkennen von Verklemmungen 2. Zyklenerkennung durch Tiefensuche im Wartegraph ist aufwendiger, aber präziser Bsp.: Wartegraph mit zwei Zyklen: T1  T2  T3  T4  T1 T2  T3  T5  T2 Beide Zyklen können durch Rücksetzen von T3 „gelöst“ werden. T1 T2 T5 T4 T3 Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Vermeiden von Verklemmungen 3. Preclaiming in Verbindung mit dem strengen 2 PL-Protokoll #Sperren BOT EOT Zeit Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

ist in der Praxis häufig nicht einzusetzen: Preclaiming ist in der Praxis häufig nicht einzusetzen: Man weiss i.A. apriori nicht genau, welche Sperren benötigt werden, z.B. bei if...then...else im Anwendungsprogramm. Daher müssen normalerweise mehr Sperren als nötig „auf Verdacht“ reserviert werden, was zu übermäßiger Resourcenbelegung und Einschränkung der Parallelität führt. Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Vermeiden von Verklemmungen 4. Verklemmungsvermeidung durch Zeitstempel Jeder Transaktion wird ein eindeutiger Zeitstempel (TS) zugeordnet ältere TAs haben einen kleineren Zeitstempel als jüngere TAs TAs dürfen nicht mehr „bedingungslos“ auf eine Sperre warten. Zwei Varianten: wound-wait Strategie T1 will Sperre erwerben, die von T2 gehalten wird. Wenn T1 älter als T2 ist, wird T2 abgebrochen und zurückgesetzt, so dass T1 weiterlaufen kann. Sonst wartet T1 auf die Freigabe der Sperre durch T2. wait-die Strategie Wenn T1 älter als T2 ist, wartet T1 auf die Freigabe der Sperre. Sonst wird T1 abgebrochen und zurückgesetzt. Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung

Fazit Bei Mehrbenutzerbetrieb kann es zu Deadlocks und Fehlern kommen Um das zu vermeiden gibt es Transaktionen Transaktionen gehorchen dem ACID Prinzip Diese werden von der Datenbank mit Hilfe von Locks realisiert Für die genaue Ausführung gibt es verschiedene Scheduler mit verschiedenen Vor- und Nachteilen State-of-the-art sind Timeouts und Zeitstempel Datenbanken für Mathematiker, WS 11/12 Kapitel 12: Transaktionsverwaltung