13.2 Benutzerschnittstelle

Die weitgehende Kontrolle der Transaktionsausführung durch das DBS gestattet eine einfache Benutzerschnittstelle zur Transaktionsverwaltung. Benutzerseitig sind im wesentlichen nur die Transaktionsgrenzen bekanntzumachen, damit das DBS weiß, welche DB-Operationen als Ausführungseinheit zu behandeln sind. Hierzu stehen an der Anwendungsschnittstelle i. allg. drei Operationen zur Verfügung, nämlich Damit ergeben sich aus Benutzersicht drei Fälle hinsichtlich der Beendigung einer Transaktion, die in Abb. 13.2 veranschaulicht sind. Der Normalfall stellt die erfolgreiche durch Ausführung der COMMIT-Operation abgeschlossene Transaktionsausführung dar. Im Fehlerfall ist zu unterscheiden, zwischen der abnormalen Beendigung aufgrund einer expliziten ROLLBACK-Anweisung der Anwendung und der aufgrund eines Fehlers erzwungenen Rücksetzung der Transaktion. Eine Erweiterung der Benutzerschnittstelle - allerdings unter Abkehr vom Alles-oder-Nichts-Paradigma - ergibt sich bei Einführung transaktionsinterner Rücksetzpunkte (s. Abschnitt 16.2).

Abb. 13.3 zeigt den Kontrollfluß zwischen Anwendungsprogramm und DBS im Normalfall. Während der Ausführung der Transaktion sind Logging-Maßnahmen erforderlich, um zu Änderungsoperationen geeignete Informationen zu protokollieren, insbesondere um die Rücksetzbarkeit (Undo-Recovery) der Transaktion sicherzustellen. Weiterhin können bestimmte Integritätsbedingungen wie etwa Wertebereichsbeschränkungen von Attributen unmittelbar bei der Ausführung von Änderungsoperationen vom DBS geprüft werden. Besondere Bedeutung zur Transaktionsverwaltung kommt der Commit-Verarbeitung zu, die in zwei Phasen abläuft (Zwei-Phasen-Commit). Hierbei wird in Phase 1 zunächst geprüft, ob alle noch nicht direkt geprüften und von den vorgenommenen Änderungen betroffenen Integritätsbedingungen erfüllt sind. Ist dies der Fall, werden die für die Wiederholbarkeit der Änderungen (Redo-Recovery) erforderlichen Log-Daten gesichert. Danach ist das erfolgreiche Ende der Transaktion sichergestellt. In Phase 2 werden dann die vorgenommenen Änderungen in der Datenbank allgemein zugänglich gemacht (z. B. durch Freigabe von Sperren) und das erfolgreiche Transaktionsende der Anwendung bestätigt. Ein Zurücksetzen der Transaktion erfolgt, wenn die Transaktion durch einen Fehler vor oder während der Commit-Phase 1 unterbrochen wird oder die Verletzung einer Integritätsbedingung festgestellt wird.

Aufgabe der Transaktionsverwaltung des DBS ist es, die Abarbeitung der Transaktionen zu kontrollieren und die zur Wahrung der ACID-Eigenschaften benötigten Funktionen bereitzustellen. Dies erfordert Funktionen zur Synchronisation (Sicherstellung der Isolation), für Logging und Recovery (Atomarität und Dauerhaftigkeit) sowie zur Integritätskontrolle (Konsistenz). Zwischen diesen Funktionen bestehen zahlreiche Wechselwirkungen und Abhängigkeiten, die für korrekte und leistungsfähige Implementierungen zu beachten sind. Ebenso bestehen enge Abhängigkeiten zu anderen DBS-Komponenten wie Pufferverwaltung, Seitenzuordnungs- und Speicherungsstrukturen. Die enge Beziehung zwischen Logging und Recovery ist dabei offensichtlich, da zum Durchführen der Recovery (Fehlerbehandlung) ausreichende Log-Daten im Normalbetrieb zu sammeln sind. Die Diskussion der Commit-Verarbeitung verdeutlichte Abhängigkeiten zwischen Integritätskontrolle, Logging und Synchronisation (Sichtbarmachen von Änderungen). Auf weitere Abhängigkeiten wird bei der Behandlung der einzelnen Funktionen näher eingegangen, u. a. in Abschnitt 15.3


[2] In der DB-Sprache SQL92 [DATE97] erfolgt der Beginn einer Transaktion implizit bei Ausführung der ersten DB-Operation eines Benutzers. Zur Beendigung einer Transaktion stehen die Anweisungen COMMIT WORK und ROLLBACK WORK zur Verfügung.