WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R 0.006 Vorlesung #10 Transaktionsverwaltung.

Slides:



Advertisements
Ähnliche Präsentationen
Kapitel 15 Verteilte Datenbanken
Advertisements

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.
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
C Tutorium – Semaphoren –
Transaktionsverwaltung
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.
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
1 Fehlerbehandlung (Recovery) 1.Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion Wirkung muss zurückgesetzt werden R1-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 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.
Einige Begriffe zum Anfang.... Transaktionsprozedur: Folge primitiver Operationen als Einheit der Konsistenz und der Robustheit. Transaktion (TA): Ausführung.
Ausführungsmodell Zustandsübergang einer Transaktion aus Nutzersicht:
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
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #11 Transaktionsverwaltung.
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #3 Das relationale Modell (Teil 2)
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #6 Fehlerbehandlung.
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 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #9 Physische Datenorganisation.
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #12 Mehrbenutzersynchronisation.
Vorlesung #9 Fehlerbehandlung
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #8 Anfragebearbeitung.
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #3 Das relationale Modell (Teil 2)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
WS 2013/14 Datenbanksysteme Fr 17:00 – 18:30 R Vorlesung #3 Das relationale Modell (Teil 2)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #3 Das relationale Modell (Teil 2)
Transaktion Huang Zhenhao FU Shuai.
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Vorlesung #12 Mehrbenutzersynchronisation
Datenbanksysteme Technische Grundlagen Transaktions-Konzept, Mehrbenutzer-Synchronisation, Fehlerbehandlung Prof. Dr. Manfred Gruber FH München.
ADAT©2004,2006 Dipl. - Ing. Walter SabinSeite: 48 Version 1.0a Recovery Wiederherstellung eines konsistenten Datenbankzustandes nach Fehlersituationen.
Transaktionen Dr. Heidrun Bethge Datenbanken II.
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #3 Anfragebearbeitung (Teil 1)
Vorlesung #5 SQL (Teil 2).
Transaktionsverwaltung
Recovery    AIFB SS Grundlegende Annamen(1/2) Um den Erfolg der der Recovery-Maßnahmen zu gewährleisten, werden folgende Annahmen.
Semantische Integritätsbedingungen  AIFB SS Überwachung von Integritätsbedingungen (1/3) Dem DBMS muß mitgeteilt werden, wann eine Integritätsbedingung.
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
Recovery    AIFB SS (1/6) Durchführung der Recovery-Maßnahmen(1/6) Transaktions-Fehler (TF) T1 T2 T3 Zeitt Transaktion T2 wird vom.
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Abhängigkeiten zwischen Transaktionen (Fehlerklassen) u Lost-Update-Problem u Dirty Read.
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.
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
SQL Basics Schulung –
6.3 Verteilte Transaktionen
Vorlesung #7 Fehlerbehandlung
Transaktionsabbruch, System Crash, Media Failure
Vorlesung #7 Fehlerbehandlung
Vorlesung #7 Fehlerbehandlung
Vorlesung #10 Fehlerbehandlung
 Präsentation transkript:

WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #10 Transaktionsverwaltung

WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R © Bojan Milijaš, Vorlesung #10 - Transaktionsverwaltung2 Fahrplan Anforderungen an die Transaktionsverwaltung Behebung von Fehlersituationen (Recovery) Synchronisation Operationen auf der Transaktionsebe BOT (begin of transaction) COMMIT ABORT (auch ROLLBACK) Eigenschaften von Transaktionen (ACID Paradigma) Atomicity, Consistency, Isolation, Durability Transaktionsverwaltung in SQL Zustandsübergänge einer Transaktion Ausblick Vorlesung #12

WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R © Bojan Milijaš, Vorlesung #10 - Transaktionsverwaltung3 Einführung Konzept der Transaktion – einer der größten Beiträge der Datenbankforschung für andere Informatikbereiche Transaktion - Bündelung von mehreren Operationen, die in einem Mehrbenutzersystem ohne unerwünschte Einflüsse auf oder durch andere Transaktionen als eine Einheit fehlerfrei ausgeführt werden

WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R © Bojan Milijaš, Vorlesung #10 - Transaktionsverwaltung4 Transaktionsbegriff Transaktion ist eine Arbeitseinheit Alle Teiloperationen einer Transaktion werden als eine Einheit, voneinander ungetrennt und ununterbrechbar ausgeführt Deshalb spricht man von der atomaren Ausführung Transaktion ist eine Folge von Datenverarbeitungsbefehlen (Lesen, Verändern, Einfügen und Löschen), die atomar ausgeführt wird Eine Transaktion überführt die Datenbank von einem transaktionskonsistenten Zustand in den anderen (nicht notwendigerweise unterschiedlichen) transaktionskonsistenten Zustand

WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R © Bojan Milijaš, Vorlesung #10 - Transaktionsverwaltung5 Beispiel: Bankanwendung Es werden 50 von Konto A nach Konto B transferiert 1.Lese Kontostand A in die Variable a: read(A,a); 2.Reduziere den Kontostand um 50 : a:=a-50; 3.Schreibe den neuen Zustand in die Datenbasis: write(A,a); 4.Lese den Kontostand von B in die Variable b: read(B,b); 5.Erhöhe den Kontostand um 50 : b:=b+50; 6.Schreibe den neuen Kontostand in die Datenbasis: write(B,b);

WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R © Bojan Milijaš, Vorlesung #10 - Transaktionsverwaltung6 Beispiel: Bankanwendung (2) Wenn die Operationsfolge abgebrochen wäre, könnten inkonsistente Zustände entstehen. Beispiele: wenn das System nach dem Schritt 3 abstürzt, ist der Kontostand A um 50 vermindert, ohne dass Konto B um 50 jemals erhöht wurde wenn Konto B einem anderen Inhaber gehört und das Abheben von 50 zur Überschreitung des Dispositionskredit beim Konto A führt, müsste der gesamte Transfer rückgängig gemacht werden

WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R © Bojan Milijaš, Vorlesung #10 - Transaktionsverwaltung7 Beispiel: Bankanwendung (3) In einer SQL-Datenbank sieht es eigentlich so aus: -- Transferiere 50 von Konto A nach B UPDATE Konto SET Stand = Stand - 50 WHERE ID = 'A'; --> Unterbrechung auf --> Kosten des Inhabers UPDATE Konto SET Stand = Stand + 50 WHERE ID = 'B'; muss atomar ausgeführt werden

WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R © Bojan Milijaš, Vorlesung #10 - Transaktionsverwaltung8 Anforderungen Synchronisation sehr viele gleichzeitig nebenläufig ablaufende Transaktionen müssen abgearbeitet werden Konsistenzverletzungen durch unkontrollierte Nebenläufigkeiten müssen ausgeschlossen bleiben Recovery Abgeschlossene Transaktionen müssen auch nach jedem denkbaren Fehler in ihrer Wirkung erhalten bleiben und nicht erfolgreich abgeschlossene Transaktionen müssen vollständig zurückgesetzt werden

WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R © Bojan Milijaš, Vorlesung #10 - Transaktionsverwaltung9 Operationen auf der Transaktionsebene Aus der DBMS-Sicht gibt es nur zwei Operationen read() und write() Zusätzlich Transaktionsoperationen: Begin of Transaction (BOT) – oft implizit, durch die erste Operation angegeben Commit – Beendigung der Transaktionen. Alle Änderungen an der Datenbasis werden dauerhaft in die Datenbasis festgeschrieben. Abort bzw. Rollback – Selbstabbruch der Transaktion. DBMS muss sicherstellen, dass die Datenbank wieder in den Zustand vor Transaktionsbeginn zurückgesetzt wird.

WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R © Bojan Milijaš, Vorlesung #10 - Transaktionsverwaltung10 Operationen auf der Transaktionsebene (2)... zusätzlich gibt es bei weiterentwickelten DBMS-Systemen für lange Transaktionen zwei weitere Befehle define savepoint – Definition eines Sicherungspunktes, auf den sich eine noch aktive Transaktion zurücksetzen lassen kann. DBMS merkt sich alle Änderungen bis zum Savepoint, darf sie aber nicht commiten wegen möglichen Abort backup transaction – Rücksetzen der Transaktion auf den letzten Savepoint

WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R © Bojan Milijaš, Vorlesung #10 - Transaktionsverwaltung11 Abschluss einer Transaktion erfolgreich - COMMIT erfolglos - ABORT (explizit) oder irgendein Fehler (impliziter ABORT) BOT op 1... op n COMMIT; BOT op 1... op n ABORT; BOT op 1... op n ~~ Fehler ~~

WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R © Bojan Milijaš, Vorlesung #10 - Transaktionsverwaltung12 Wichtig! Eine Transaktion führt die Datenbank aus einem konsistenten Zustand in das andere konsistente Zustand Es wird entweder alles erfolgreich festgeschrieben oder alles zurückgesetzt. In DBMS-Jargon: alles wird commited oder alles wird zurückgerollt - komme was wolle) Während der Abarbeitung einer Transaktion darf es vorübergehend einzelne Teiloperationen geben, die die Konsistenz verletzen. Die Transaktion darf als eine Einheit nicht die Konsistenz verletzen. Was zählt ist die Transaktion als Ganzes, nicht einzelne Teiloperationen.

WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R © Bojan Milijaš, Vorlesung #10 - Transaktionsverwaltung13 ACID Paradigma Atomicity – die Transaktion gilt als eine Einheit, entweder werden alle Änderungen festgeschrieben oder gar keine. Consistency – eine Transaktion hinterlässt nach Ihrer Beendigung immer einen konsistenten Datenbankzustand. Sonst wird sie zurückgesetzt. Isolation – nebenlaufende Transaktionen beeinflussen sich nicht gegenseitig. Jede Transaktion wird so ausgeführt, als wäre sie die einzige in DBMS. Durability – die Wirkung einer erfolgreich abgeschlossener Transaktion bleibt dauerhaft in der Datenbank erhalten, trotz aller möglichen Fehler.

WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R © Bojan Milijaš, Vorlesung #10 - Transaktionsverwaltung14 Transaktionsverwaltung in SQL In SQL-92 Standard gibt es kein BOT, Transaktionen werden implizit mit der Ausführung der ersten Anweisung begonnen COMMIT [WORK] – Commit ROLLBACK [WORK] – Abort UPDATE Konto SET Stand = Stand - 50 WHERE ID = 'A'; UPDATE Konto SET Stand = Stand + 50 WHERE ID = 'B'; COMMIT;

WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R © Bojan Milijaš, Vorlesung #10 - Transaktionsverwaltung15

WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R © Bojan Milijaš, Vorlesung #10 - Transaktionsverwaltung16 Fazit und Ausblick Transaktionsbegriff wurde eingeführt und erläutert Transaktionsverwaltung besteht aus zwei großen Komponenten Recovery bzw. Fehlerbehandlung (wird kurz erwähnt, nächstes Semester vertieft) Mehrbenutzersynchronisation (Vorlesung #12)

WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #10 Ende