スタートページWeb教材一覧データベース

ACID特性


ACID特性とは

信頼性のあるトランザクションシステムが持つべき要件としてACID特性があります。ACIDとは
  Atomicity:原子性(不可分性)
  Consistency:一貫性
  Isolation:独立性(隔離性)
  Durability:耐久性(永続性)
の頭文字をとったものです。

Atomicity

トランザクションの更新処理がすべて完全に処理されるか,全く処理されない(全体が取り消される)かのどちらかの結果になることを保証する特性です。
 例えば、「倉庫Aから倉庫Bに商品を10個送る」というトランザクションは
  1 倉庫Aの在庫を10個減じる
  2 倉庫Bの在庫を10個増やす
の二つの処理はセットになっており、分けることができない(不可分)ことから原子性といいます。
 Atomicityとは、「1と2の両方が実行される」か、「どちらも実行されない」のどちらかだけで、「一方だけが実行されることはない」ことを保証することです。

Consistency

トランザクションの実行前後でデータの整合性が保たれ、矛盾の無い状態が継続される特性です。
  倉庫Aには10個の在庫がなく、出荷することができない
  倉庫Bでは在庫が多く、10個増やすだけのスペースがない
のどちらかであれば、この処理はできなくなります。
 Consistencyとは、トランザクションに関係するすべての条件が満足されることを保証する特性です。

2相コミットメントは、AtomicityとConsistencyを満足させることだといえます。

Isolation

あるトランザクションの実行中に他のトランザクションによる影響を受けないこと、あるトランザクションが他の実行中のトランザクションに影響を与えないことを保証することです。すなわち他の処理と隔離され独立していることです。
 排他制御はIsolationを保証する手段だといえます。

Durability

トランザクションが完了したら、その結果は記録され、システムにトラブルが発生しても失われることがないという特性です。
 これを完全に保証することは困難ですが、ログを採取してバックアップとリカバリーすることがこれにあたります。


本シリーズの目次へ