Suchen und Finden
Service
Infos und Kontakt
6 Transaktionsverarbeitung (S. 221-222)
6.1 Begriffserklärung
Der Begriff der Transaktion definiert eine logisch zusammenhängende Folge von Datenbankanweisungen, die eine Datenbank von einem konsistenten Zustand in einen anderen überführen soll. Vereinfacht gesagt stellt eine Transaktion sicher, dass eine Folge von Anweisungen vollständig und fehlerfrei ausgeführt wird. Ist das nicht möglich, beispielsweise, weil eine der Anweisungen nicht abgeschlossen werden konnte, wird die Datenbank auf den Zustand vor Beginn der Transaktion zurückgesetzt.
Der Transaktionsmanager einer Datenbank ist die für die Einhaltung dieser Grundsätze verantwortliche Instanz. Selbst im Falle eines Systemabsturzes hat dieser dafür Sorge zu tragen, dass die Datenbank beim erneuten Hochfahren wieder in einen konsistenten Zustand versetzt wird. Zu diesem Zweck werden alle zum Zeitpunkt des Absturzes offenen Transaktionen zurückgesetzt.
Das Lehrbuchbeispiel für die Erklärung von Transaktionen ist die Überweisung eines Betrages von einem Bankkonto auf ein anderes. Dieser Prozess erfordert im einfachsten Fall die beiden folgenden Schritte:
1. Lastschrift des Betrages auf Konto A
2. Gutschrift des Betrages auf Konto B
Der zu überweisende Betrag ist zunächst von dem einen Konto abzubuchen und anschließend auf dem anderen Konto gutzuschreiben. Nach dem Abschluss der Überweisung muss die Gesamtsumme der auf beiden Konten befindlichen Geldbeträge mit der Summe vor Beginn der Transaktion übereinstimmen. Schließlich wurde kein Geld eingezahlt oder abgehoben, sondern lediglich umgeschichtet. Wird nun eine der beiden Anweisungen nicht korrekt ausgeführt, befindet sich die Datenbank in einem inkonsistenten Zustand. Sofern die erste Anweisung nicht ausgeführt wurde, erhöht sich die Gesamtsumme zu Lasten der Bank. Wird hingegen die zweite Anweisung nicht ausgeführt, macht die Bank Gewinn, da die Geldmenge abgenommen hat, obwohl kein Geld ausgezahlt wurde. Um solche Inkonsistenzen zu vermeiden, werden Transaktionen eingesetzt. Sobald der Transaktionsmanager merkt, dass eine der beiden Anweisungen nicht ausgeführt wurde, werden alle innerhalb der Transaktion vorgenommenen Änderungen wieder zurückgesetzt, so dass der Ausgangszustand vor dem Beginn der Transaktion wieder erreicht wird.
Eine weitere Aufgabe des Transaktionsmanagers ist die Absicherung konkurrierender Datenbankzugriffe. Im Regelfall wird eine Datenbank nicht von einem einzelnen Nutzer verwendet, sondern steht einer Vielzahl von Anwendern im Mehrbenutzerbetrieb zur Verfügung. Um zu verhindern, dass versetzt eingegebene Anweisungen Einfluss auf die Anweisungen anderer Anwender haben, verhält sich die Datenbank jedem Nutzer gegenüber wie ein exklusiv zur Verfügung stehendes Arbeitsmittel. Änderungen, die keinen Einfluss aufeinander haben, beispielsweise, weil sie in verschiedenen Tabellen stattfinden, werden parallel ausgeführt. Änderungen, die sich gegenseitig beeinflussen, werden vom Transaktionsmanager über entsprechende Sperrmechanismen so verwaltet, dass eine synchrone Bearbeitung sichergestellt ist. In jedem Fall werden Zwischenzustände, also die Ergebnisse noch nicht vollständig abgeschlossener Transaktionen, außerhalb der Transaktion nicht sichtbar. Im anderen Fall wäre es in dem Beispiel möglich, nach Abschluss der ersten Anweisung eine Gesamtübersicht zu erzeugen, die im Ergebnis eine fehlerhafte Geldsumme ergeben würde.
Die zur Absicherung aller oben genannten Forderungen notwendigen Eigenschaften einer Transaktion lassen sich zusammenfassend mit dem so genannten ACID-Prinzip beschreiben:
Atomicity (Atomarität)
Eine Transaktion wird als eine Einheit betrachtet. Eine Teilung, also die Ausführung nur einzelner Teile, ist unzulässig. Kann eine Transaktion nicht vollständig abgeschlossen werden, sind alle durchgeführten Änderungen zurückzusetzen. Das gilt selbst für den Fall eines Systemabsturzes.
Consistency (Konsistenz)
Eine abgeschlossene Transaktion hinterlässt die Datenbank in einem konsistenten Zustand.
Isolation (Isolation)
Eine Transaktion läuft stets isoliert ab, das heißt, sie wird nicht durch die Änderungen anderer Transaktionen beeinflusst. Ebenso dürfen keine eventuell inkonsistenten Zwischenzustände für andere Transaktionen sichtbar sein.
Durability (Dauerhaftigkeit)
Sobald die Transaktion abgeschlossen wurde, dürfen die durchgeführten Änderungen auch im Falle eines Fehlers oder gar eines Systemabsturzes nicht mehr verloren gehen.
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion

























