次の方法で共有


ACID 属性

ACID は、重要なアプリケーションにおいてトランザクションの果たす役割を示します。ACID はトランザクション処理に関する新しい用語であり、最小性 (atomicity)、一貫性 (consistency)、独立性 (isolation)、および永続性 (durability) を意味します。

これら 4 つの特性によって、多数の可変要素があるときに管理負荷を軽減することを目的とする、"オール オア ナッシング" な作業単位としてのトランザクションの役割が強化され、トランザクションの予測可能な動作が保証されます。

最小性

トランザクションは、アプリケーションの BEGIN TRANSACTION ステートメントと END TRANSACTION ステートメントの間で一連の操作が発生する 1 つの作業単位です。トランザクションは一度だけ実行され、最小の単位です。このため、トランザクション全体が行われるか、何も行われないかのいずれかになります。

トランザクションに関連付けられた操作は、通常は共通の目的を共有し、相互に依存しています。これらの操作のサブセットだけを実行しても、トランザクション全体の目的を正しく達成できないことがあります。トランザクションが最小単位であることによって、操作のサブセットだけが処理される危険性がなくなります。

一貫性

トランザクションでは、一貫したデータの状態を他の一貫した状態に変換することによってデータの一貫性が維持されます。このため、トランザクションは整合性の 1 つの単位となります。

一貫性を維持するには、トランザクションによってまとめられるデータがセマンティクスによって維持される必要があります。一貫性を維持するためにアプリケーション開発者が行う必要がある作業もあります。アプリケーション開発者は、既知のすべての整合性制約がアプリケーションによって強制適用されるようにする必要があります。たとえば、お金を転送するアプリケーションの開発では、転送中に小数点を自由に動かすことができないようにする必要があります。

独立性

トランザクションは独立した単位です。並行するトランザクションのそれぞれが、システム内で唯一実行されているトランザクションであるかのように動作できます。

独立性を確保するには、複数のトランザクションが同時に実行される場合でも、各トランザクションが、データ ストアを操作している唯一のトランザクションになる必要があります。1 つのトランザクションが、他のトランザクションの中間段階に関与しないようにする必要があります。

トランザクションがシリアル化できるときに、最高のレベルの独立性が実現されます。このレベルでは、複数のトランザクションを同時実行して得られる結果は、各トランザクションを連続的に実行したときに得られる結果と同じです。高い独立性レベルを実現するために同時実行できるトランザクションの数が制限されることがあるため、アプリケーションによっては、スループットを向上させる代わりに独立性のレベルを下げます。

永続性

トランザクションは回復の単位でもあります。トランザクションが成功すると、コミット直後にコンピュータがクラッシュしても、データの更新が持続されます。特別なログ記録によって、システムの再起動時に終了していない操作を完了させることができるため、トランザクションの永続性が高まります。

参照

トランザクション処理の基本