2.1 Datenbanksysteme
2.1.3 Das Transaktionskonzept
Bezüglich der Ausführung von Transaktionen garantiert das Datenbanksystem die Einhaltung des sogenannten Transaktionskonzeptes [Gr81, HR83, Hä88a, We88]. Dies betrifft die automatische Gewährleistung der folgenden vier kennzeichnenden ACID-Eigenschaften (Atomicity, Consistency, Isolation, Durability) von Transaktionen:
- 1. Atomarität ("Alles oder nichts")
Änderungen einer Transaktion werden entweder vollkommen oder gar nicht in die Datenbank eingebracht. Diese Eigenschaft ermöglicht eine erhebliche Vereinfachung der Anwendungsprogrammierung, da Fehlersituationen während der Programmausführung (z.B. Rechnerausfall) nicht im Programm abgefangen werden müssen. Das Transaktionssystem sorgt dafür, daß die Transaktion in einem solchen Fall vollständig zurückgesetzt wird, so daß keine unerwünschten "Spuren" der Transaktion in der Datenbank verbleiben. Der Programmierer kann somit bei der Realisierung von Anwendungsfunktionen von einer fehlerfreien Umgebung ausgehen.
- 2. Konsistenz
Die Transaktion ist die Einheit der Datenbank-Konsistenz. Dies bedeutet, daß bei Beginn und nach Ende einer Transaktion sämtliche physischen und logischen Integritätsbedingungen [SW85, Re87] erfüllt sind.
- 3. Isolation
Datenbanksysteme unterstützen typischerweise eine große Anzahl von Benutzern, die gleichzeitig auf die Datenbank zugreifen können. Trotz dieses Mehrbenutzerbetriebes wird garantiert, daß dadurch keine unerwünschten Nebenwirkungen eintreten (z.B. gegenseitiges Überschreiben derselben Datenbankobjekte). Vielmehr bietet das DBS jedem Benutzer bzw. Programm einen "logischen Einbenutzerbetrieb", so daß parallele Datenbankzugriffe anderer Benutzer unsichtbar bleiben. Auch hierdurch ergibt sich eine erhebliche Vereinfachung der Programmierung.
- 4. Dauerhaftigkeit
Die Dauerhaftigkeit von erfolgreich beendeten Transaktionen wird garantiert. Dies bedeutet, daß Änderungen dieser Transaktionen alle erwarteten Fehler (insbesondere Rechnerausfälle, Externspeicherfehler und Nachrichtenverlust) überleben.
Eigenschaften 1 und 4 werden vom Datenbanksystem durch geeignete Logging- und Recovery-Maßnahmen [Re81, HR83] eingehalten. Nach einem Rechnerausfall wird insbesondere der jüngste transaktionskonsistente Datenbankzustand hergestellt. Dazu erfolgt ein Zurücksetzen aller Transaktionen, die aufgrund des Rechnerausfalles nicht zu Ende gekommen sind (Undo-Recovery); für erfolgreiche Transaktionen wird eine Redo-Recovery vorgenommen, um deren Änderungen in die Datenbank einzubringen (falls erforderlich).
Zur Gewährung der Isolation im Mehrbenutzerbetrieb (Eigenschaft 3) sind geeignete Verfahren zur Synchronisation (Concurrency Control) bereitzustellen. Das allgemein akzeptierte Korrektheitskriterium, zumindest in kommerziellen Anwendungen, ist dabei die Serialisierbarkeit [BHG87]. Obwohl ein großes Spektrum von Synchronisationsverfahren zur Wahrung der Serialisierbarkeit vorgeschlagen wurde, verwenden existierende Datenbanksysteme nahezu ausschließlich Sperrverfahren [Gr78, Pe87, BHG87, Cl92, GR93] zur Synchronisation. Lese- und Schreibsperren werden dabei üblicherweise bis zum Transaktionsende gehalten, um Serialisierbarkeit zu gewährleisten und Änderungen einer Transaktion nicht vor deren Commit (erfolgreichem Ende) anderen Transaktionen zugänglich zu machen (striktes Zwei-Phasen-Sperrprotokoll). Für eine hohe Leistungsfähigkeit ist es wesentlich, eine Synchronisation mit möglichst wenig Sperrkonflikten und Rücksetzungen zu erreichen. Dies verlangt die Unterstützung feiner Sperrgranulate (z.B. einzelne DB-Sätze) innerhalb eines hierarchischen Verfahrens sowie ggf. Spezialprotokolle für spezielle Datenobjekte wie Verwaltungsdaten [Ra88b, GR93].
Die Konsistenzüberwachung (Eigenschaft 2) wird in derzeitigen Datenbanksystemen meist noch nicht im wünschenswerten Umfang unterstützt. Insbesondere die Einhaltung anwendungsbezogener (logischer) Integritätsbedingungen muß meist durch die Transaktionsprogramme gewährleistet werden. Da in der neuen Version des SQL-Standards (SQL92) umfassende Sprachmittel zur Definition von Integritätsbedingungen vorgesehen sind, ist in Zukunft jedoch mit einer Verbesserung der Situation zu rechnen.