Erste Seite Zurück Weiter Letzte Seite Übersicht Grafik
Notwendigkeit
z.B.: Geld"transaktion" (!) auf der Bank:
UPDATE konten
SET stand = stand - @Betrag
WHERE kontonr = @A;
UPDATE konten
SET stand = stand + @Betrag
WHERE kontonr = @E;
wird immer funktionieren, sofern keine Ausfälle auftreten.
Wenn nach Ausführung der 1. Zeile ein Stromausfall auftritt, hat das DBS Geld vernichtet.
Notizen:
So oder so ähnlich könnte die Geldtransaktion – die noch keine ist – codiert sein. Das erste Update-Statement vermindert ein imaginäres Auftraggeberkonto um einen Betrag, die zweite erhöht ein Empfängerkonto um eben diesen Betrag.
Dabei könnten natürlich eine ganze Reihe von Fehlern auftreten, die das DBMS tunlichst abgefangen sollte:
Vom Anwendungsprogramm erkannte logische Fehler (z.B. Konto nicht gedeckt), diesen Aspekt berücksichtigen wir hier nicht.
Vom System erkannte Fehler (z.B. zyklisches Warten mehrerer Programme auf die Freigabe einer Ressource)
Verlust des Hauptspeicherinhalts (z.B. Stromausfall)
Verlust der Daten des Plattenspeichers (z.B. Disk-Crash)
Tritt keiner der denkbaren Fehlerfälle auf, so wird der oben angeführte Code eigentlich immer funktionieren.