110 likes | 236 Views
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
E N D
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 allerMehrbenutzeranomalien • 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: 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 verglichennur, wenn Transaktion jünger ist, • bei Lesewunsch jünger als der Schreibstempel • bei Schreibwunsch jünger als der Schreib- und der Lesestempeldarf 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.