welches Programm - Deines oder die Datenbank selber ... im ersteren Fall sollte nichts passieren ... im zweiten Fall eigentlich auch nicht ... in beiden Fällen sollte das Transaktions-Konzept eine fehlerhaften Zustand der DB verhindern
ja das ist so eine Sache, prinzipiell sollte es gewährleistet sein.
Das Betriebssystem und Festplatten-Caches können da nochmal einen Strich durch die Rechnungen machen, wenn diese melden es wurde alles geschrieben, dies wird aber erst im Hintergrund gemacht (Write-Back-Cache).
Bricht dieses Schreiben dann auf Grund eines Power-Failures ab, ist auch die Datenbank in einem inkonsistenten Zustand, da das Transaktionskonzept von der Korrektheit der Rückgabe der Schreiboperation ausgeht.
Das ist auch der Grund warum bei InnoDB-Datenbanken (MySQL) der Festplatten-Cache deaktiviert werden sollte und man lieber auf den Write-Back-Cache von Raid-Controllern mit extra Batteriesicherung setzen sollte.
Anmerkung: Dies ist natürlich ein Worst-Case sollte aber noch Erwähnung finden, dass auch die Systeme die die Durability (ACI
D) gewährleisten sollen, nicht 100% perfekt sind.