コンテンツへスキップ
uencoder

ACID

ACID はリレーショナルトランザクションの四性質:原子性(全実行または全ロールバック)、一貫性(制約保持)、隔離性(並行互不干渉)、永続性(コミット後不消失)。

目的

障害と並行性下でもトランザクションが正確かつ信頼できることを保証し、リレーショナルデータベースの中核的約束である。

メカニズム

原子性:undo log で全実行または全ロールバック。一貫性:トランザクション前後で制約を満たす。隔離性:ロック/MVCC で並行トランザクションを直列と等価に。永続性:redo log/WAL でコミット後永続ストレージへ書き込む。隔離レベルは弱→強:読み取り未コミット→読み取りコミット済→反復可能読み取り→直列化。

ユースケース

  • 金融送金トランザクション
  • オーダーと在庫引き当て
  • 複数テーブルのリレーショナル更新
  • 強い整合性が必要なビジネス

例

  • 入力
    BEGIN; UPDATE...; INSERT...; COMMIT
    Output
    Atomic commit or rollback

    All or nothing

よくあるエラー

Long transactions holding locks cause blocking
Shorten transactions; use optimistic locking

関連用語

References