Transaktion Huang Zhenhao FU Shuai Definiton: 'ununterbrechbare' Folge von DML-/DDL-Befehlen Eigenschaften: ACID Prinzip Atomicity: "Alles-oder-Nichts"-Eigenschaft Consistency: Erhalt der DB-Konsistenz Isolation: Logischer Einbenutzerbetrieb Durability: Überleben aller Änderungen trotz beliebiger(erwarteter) Fehler garantiert (Persistenz) • • • • • • • • Kommandos BOT = Begin of Transaktion (in SQL implizit) commit = Transaktion soll erfolgreich beendet werden abort= Transaktion soll abgebrochen werden Anomalien • • • • Lost Update zwei parallele Transaktionen ändern den gleichen Datensatz Dirty Read eine Transaktion liest Daten die von einer anderen Transaktion geschrieben, aber wieder rückgängig gemacht werden Non-Repeatable Read die gleiche Leseoperation innerhalb einer Transaktion liefert unterschiedliche Ergebnisse Phantom Reads eine Transaktion berechnet einen Wert basierend auf den aktuellen Daten, daraufhin werden neue Daten von einer weiteren Transaktion hinzugefügt und dann arbeitet die erste Transaktion weiter basierend auf den vorher ermittelten Werten Synchronisation Korrektheitskriterium (Ziel): • logischer Einbenutzerbetrieb, d.h. Vermeidung aller Mehrbenutzeranomalien Serialisierbarkeit •Die parallele Ausführung einer Menge von n Transaktionen ist serialisierbar, wenn es eine serielle Ausführung der selben Transaktionen gibt, die für einen Ausgangszustand der DB den gleichen Endzustand der DB wie die parallele Transaktionsausführung erzielt. Sperrverfahren Kompatibiltitätsmatrix: keine R X R + + - X + - - R: Lese- oder Read (R)-Sperren X: Schreib- oder exclusive (X)-Sperren "+" bedeutet: Sperre wird gewährt "-" bedeutet: Sperrkonflikt Optimierungen Reduzierung der Beeinträchtigungen: hierarchische Sperrverfahren reduzierte Konsistenzebene Zeitstempel Mehrversionen-Ansatz Optimistische Synchronisation Hierarchische Sperren • Sperrgranulate: Table Spaces, Tables, Rows. Sperrgranulat bestimmt Parallelität/Aufwand feines Granulat reduziert Sperrkonflikte, jedoch sind viele Sperren anzufordern und zu verwalten „Hierarchische Verfahren erlauben Flexibilität bei Wahl des Granulates Konsistenzebenen in SQL vier Konsistenzebenen (isolation levels) Durch verschiedene Konsistenzebene können verschiedene Anomalie zu eliminieren. Default: Serializable Zeitstempelverfahren • Zeitstempel: jedes Objekt hat zwei Zeitstempel 1. wann zuletzt gelesen 2. wann zuletzt geschrieben jede Transaktion hat einen Zeitstempel: wann begonnen Bei Zugriffswunsch werden die Zeitstempel verglichen nur, wenn Transaktion jünger ist, bei Lesewunsch jünger als der Schreibstempel bei Schreibwunsch jünger als der Schreib- und der Lesestempel darf sie zugreifen und den Objektstempel entsprechend setzen • • MVCC (Multi Version Concurrency Control) Snapshot Isolation Jede Connection entspricht „Snapshot Isolation“ von einem Zeitpunkt, wann die TA startet, diese ganze TA basiert auf „Snapshot Isolation“. Bevor das Ergebnis abgegeben wird, vergleichen dieses mit gegenwärtigem Datenbank Konflikte Zurücksetzen Vorteil: • kein Leser wartet auf einen Schreibe • kein Schreiber wartet auf einen Leser Nachteil: • Mehr Platzbedarf für neue Versionen • keine Serialisierbarkeit zu garantieren Optimistische Synchronisation Lesephase: • Jede TA führt bei Änderungen auf Kopie in Puffer durch, der für andere TA nicht zugänglich ist. Validierungsphase: • • Ob die beendigungswillige Transaktion mit paralleler Transaktion in Konflikt steht. mehr Rücksetzungen als bei Sperrverfahren, aber keine Deadlocks. Schreibphase: • Ausführung nach einer erfolgreichen Validierungsphase.