データベースのACID特性

データベースのACID特性について簡単にまとめます。

ただその前にACID特性が必要な理由についてファイルシステムとデータベースの違いについて解説します。

データベースはそもそもファイルの集まりですが、ファイルシステムとの違いはデータが整理・統合され重複を省いた無駄のない集まりとなったものになります。
具体的なファイルシステムとの違いは複数のプログラムで共有されるデータであること、プログラムがデータのデータの形式(ファイル形式)、位置についてはプログラムが意識する必要がないという部分があげられます。

複数のプログラムで共有するとは、ファイルシステムは複数のプログラムで1つのファイルにアクセスできないためプログラムごとにファイルとして専有のデータを扱うことになり、同じデータが重複することになります。この状況を回避するためにデータベースではDBMSが複数のプログラムからのアクセスを管理し、データについても正規化を行えるようにします。
またデータの形式、位置についてもファイルの場合だとファイル形式、ファイルの場所、何バイト目かなどデータベースの場合はプログラムが意識する必要がないためそれによりデータとプログラムの依存関係が減っています。

以上のようにデータベースには複数のプログラムから1つのデータにアクセスされるという性質があり、これを実現するのがトランザクションであり、ACID特性になります。

トランザクションの処理は連続する複数の処理が一体的に一つの処理となるものでトランザクションを実現するためのの特性がACID特性です。
ACID特性はAtomicity(原子性)、Consistency(一貫性)、Isolation(独立性)、Durability(永続性)の頭文字をとったものになっています。

Atomicityは連続する複数の処理が「すべて実行される」か「一つも実行されない」かのどちらかの状態になります。複数の処理を一つの処理としてその処理の整合性が保たれるようにします。

Consistencyはトランザクションの前後でデータの整合性が保たれ、矛盾のない状態が継続されるというものです。

Isolationはトランザクションの処理が外部から隠蔽され、他の処理に影響されない、影響を与えないというものです。実行中の処理は参照できず、結果だけが見ることができます。

Durabilityはトランザクションが正常に完了したらその結果は記録され、システム障害などが生じても失われることがないというものです。

この記事が気に入ったらサポートをしてみませんか?