TL;DR
Atomicity(原子性)、Consistency(一貫性)、Isolation(独立性)、Durability(永続性)の頭文字。データベースのトランザクションが持つ性質の組で、並行して動かしたときや、エラーや電源断が起きたときでも、データの正しさを保つためのものである。
仕組み
PostgreSQL の用語集では 4 つの性質を次のように説明している。
- 原子性: トランザクションの操作は、すべてが 1 つの単位として完了するか、何も行われないかのどちらかになる。実行中に障害が起きても、復旧後に途中までの結果は見えない
- 一貫性: データベースのデータは常に整合性制約を満たしている。コミット前に一時的に制約を破ってもよいが、コミットの時点で解消されていなければ、そのトランザクションは自動でロールバックされる
- 独立性: トランザクションの結果はコミットするまで並行する他のトランザクションから見えない
- 永続性: コミットしたトランザクションの変更は、その後システムが障害で止まっても失われない