Databases Reference
In-Depth Information
UPDATE konto
SET stand = stand + 100
WHERE konto_nr =22
und
UPDATE konto
SET stand = stand - 100
WHERE konto_nr = 11
Die Transaktionsmerkmale stellen sich an diesem Beispiel wie folgt dar:
Konsistenz : Zwischen der ersten und der zweiten Anweisung ist die Datenbank
in einem inkonsistenten Zustand. Die Bank hat in ihrem Gesamtsaldo 100,-
Euro zu viel. Nach der Ausführung der gesamten Transaktion ist die Daten-
bank wieder konsistent.
Atomarität : Die beiden Buchungen werden komplett oder gar nicht ausgeführt.
Dauerhaftigkeit : Nach der zweiten Buchung werden die neuen Kontostände
gespeichert. Die Änderungen können nun nicht mehr verloren gehen.
Isoliertheit/Serialisierbarkeit : Wenn während dieser Transaktion ein zweiter
Buchungsvorgang beginnt, der das Konto 22 betrifft, muss dessen Stand am
Ende denselben Wert haben, als wenn die Buchungen nacheinander stattgefun-
den hätten (in diesem Fall wäre die Reihenfolge beliebig).
Gefahren für die Konsistenz
Ursachen für die unvollständige Bearbeitung von Transaktionen können sein:
Programmfehler in Applikationen, die z.B. zu Endlosschleifen mit Überlauf des
Stacks führen
Betriebssystembedingte Fehler, z.B. unerlaubt hoher Verbrauch an Ressourcen
wie Hauptspeicher, Plattenspeicher, Puffer
Zusammenbruch des Datenbanksystems
Hardware-Fehler, z. B. Zerstörung eines Datenträgers
Stromausfall
Der gleichzeitige Zugriff mehrerer Benutzer auf dieselben Daten
Das in solchen Fällen stets entstehende Problem, dass Daten unbrauchbar werden,
kann in zwei Varianten auftreten:
Die gesamte Datenbank ist durch einen Hardware-Fehler oder aufgrund eines
nicht reversiblen Betriebssystemfehlers physisch zerstört. In dieser Situation ist
nichts anderes möglich als die Wiederherstellung aus einer - hoffentlich nicht
weit zurückliegenden - Datensicherung.
Die Datenbank ist nicht physisch zerstört, aber ihr Inhalt ist inkonsistent
geworden, weil eine Reihe zusammenhängender Operationen nicht vollständig
ausgeführt wurde.
Search WWH ::




Custom Search