Transaktionsverwaltung

Transaktionsverwaltung

Transaktionen werden entweder ganz oder gar nicht ausgeführt (atomar). Wenn eine Transaktion scheitert wird der Status vor der Transaktion wieder zurückgesetzt.

Operationen auf Transaktionsebene #

  • BOT – begin of transaction – Mit dieser Operation wird der Beginn einer Befehlsfolge, die als Transaktion abgearbeitet werden soll, genkennzeichnet. (In SQL implizit, es gibt keinen BOT Befehl)
  • commit – In SQL COMMIT. Eine Transaktion wird beendet und alle Änderungen sollen dauerhaft in die Datenbank eingebaut. Dieser Befehl kann nur von den Benutzern des DBMS kommen. Das System committet (normalerweise) nichts automatisch.

  • abort – Eine Transaktion wird beendet und der Zustand vor der Transaktion wird auf den Zustand von BOT zurückgesetzt. Wird auch vom System intern verwendet um den Status widerherzustellen wenn etwas schief geht. abort kann von den Benutzern oder dem System intiiert werden.

Erweiterte Operationen auf Transaktionsebene #

  • define savepoint – Erlaubt es Sicherungspunkte zu erstellen zu denen wieder zurück gesprungen werden kann. Das DBMS muss sich alle Änderungen seit einem Sicherungspunkt merken, da es diese im falle eines Widerherstellens wieder rückgängig machen muss. Die Änderungen dürfen aber noch nicht in die Datanbank geschrieben werden, da die Transaktion immernoch durch ein abort abgebrochen werden kann.

  • backup transaction – Setzt die aktive Transaktion auf den letzten Sicherungspunkt zurück. Ob mehr als der nur letzte Sicherungspunkt gespeichert wird hängt von dem System ab.

Eigenschaften von Transaktionen: ACID #

  • Atomicity: Alles oder nichts.
  • Consistency: DB ist sowohl vorher als auch nacher in einem konsistenden Zustand.
  • Isolation: Jede Transaktion hat die “DB für sich allein”.
  • Durability: Änderungen erfolgreicher Transaktionen dürfen nie verloren gehen.

Winner und Loser Transaktionen #

Im falle eines Systemabsturzes (jeder Art) sind die Transaktionen die committet wurden die Winner und die, die zum Zeitpunkt des Absturzes noch liefen die Loser.

  • Für winner muss die Dauerhauftigkeit garantiert werden.
    • Entweder wurden die daten schon zurückgeschrieben und sind persistent
    • Oder es muss aus Protokolldaten ein redo konstruiert werden
  • Für loser muss das erfolgreiche undo garantiert werden

Transaktionsverwaltung in SQL #

  • commit work – Das Schlüsselword work ist optional. Die Transaktion soll committet werden. Es kann sein, dass ein commit fehlschlägt, durch Konsitenzverletzung oder andere Probleme.

  • rollback work – Die Änderungen sollen zurückgesetzt werden. Anders als beim commmit muss ein rollback immer erfolgreich ausgeführt werden.

Zustände von Transaktionen #

Calendar July 2, 2022 (Updated October 22, 2023)