Hi,
Transaktionen werden zwar ganz oder gar nicht ausgeführt, aber atomar sind sie nicht, atomar heißt doch das die Transaktion nicht unterbrochen wird - und das muss man bei pg extra einstellen (siehe auch 12.2. Transaction Isolation) oder hab ich was falsch verstanden?
Äh, jein, oder ja, oder nein, oder such dir was aus.
Also für die eigentliche Transaktion gilt: Ganz oder gar nicht, soweit ist sie atomar. Atomar hat NICHTS mit Unterbrechung oder Nicht-Unterbrechung zu tun, dafür ist der Scheduler zuständig. Atomizität garantiert dir lediglich, dass entweder alle oder keine Änderung ankommt.
Das andere ist wirklich die Isolation: Durch die von dir verlinkten Einstellungen bestimmst du das Verhalten vom Rest des Systems während deine Transaktion läuft. Soll heißen: Darf eine andere Transaktion schon Daten lesen während deine eine kurz unterbrochen ist (und damit möglicherweise auf Daten arbeiten, die nach einem ROLLBACK nicht mehr da sind) und wenn sie das darf auf welche Datensätze darf sie denn eigentlich.
Am sichersten ist natürlich Serialisable, damit kommt es nicht zu inhaltlichen Unterbrechungen weil man keine Transaktion an die Daten einer anderen dran lässt. Aber das bremst das System enorm aus, weil man Satz 1 nicht lesen darf während man Satz 5 aktualisiert.
MfG
Rouven
-------------------
"I wish it need not have happened in my time" - "So do I, and so do all who live to see such times. But that is not for them to decide. All we have to decide is what to do with the time that is given us." -- J.R.R. Tolkien: "The Lord Of The Rings: The Fellowship Of The Ring"