ACID
ACID はリレーショナルトランザクションの四性質:原子性(全実行または全ロールバック)、一貫性(制約保持)、隔離性(並行互不干渉)、永続性(コミット後不消失)。
目的
障害と並行性下でもトランザクションが正確かつ信頼できることを保証し、リレーショナルデータベースの中核的約束である。
メカニズム
原子性:undo log で全実行または全ロールバック。一貫性:トランザクション前後で制約を満たす。隔離性:ロック/MVCC で並行トランザクションを直列と等価に。永続性:redo log/WAL でコミット後永続ストレージへ書き込む。隔離レベルは弱→強:読み取り未コミット→読み取りコミット済→反復可能読み取り→直列化。
ユースケース
- 金融送金トランザクション
- オーダーと在庫引き当て
- 複数テーブルのリレーショナル更新
- 強い整合性が必要なビジネス
例
- 入力
BEGIN; UPDATE...; INSERT...; COMMITOutputAtomic commit or rollbackAll or nothing
よくあるエラー
- Long transactions holding locks cause blocking
- Shorten transactions; use optimistic locking
関連用語
BASE
BASE は弱い一貫性の NoSQL モデルであり、基本的に利用可能・ソフト状態・結果整合性で、強い一貫性を可用性とスケーラビリティと引き換えにする。 用語集
CAP Theorem
CAP 定理とは、ネットワーク分断が発生した場合、分散システムは一貫性 (C) と可用性 (A) のどちらか一方しか満たせず、3 つを同時に成立させることはできないという定理である。 用語集
Isolation Level
分離レベル(Isolation Level)は、並行トランザクション間の可視性を定義する。リードアンコミッテッドからシリアライザブルまであり、高いレベルほど強い一貫性を与えるが並行性は下がる。 用語集
Transaction
トランザクションは、ACID 特性を満たす単一の論理単位として実行される操作のグループである。すべて実行されるか、まったく実行されないかのどちらかである。 用語集