logo

DBMS の ACID プロパティ

取引 データベースの内容にアクセスし、場合によっては変更する単一の論理的な作業単位です。トランザクションは、読み取りおよび書き込み操作を使用してデータにアクセスします。
データベース内の一貫性を維持するために、トランザクションの前後で特定のプロパティに従います。これらはと呼ばれます プロパティ。

これらの概念をマスターし、次のような試験で優れた成績を収めたいと考えている人向け ゲート 、 私たちの ゲートコース データベース管理システムの詳細な調査を提供します。基礎から応用までを網羅し、高得点と実践に不可欠な理解を徹底します。

原子性:

これは、トランザクション全体が一度に実行されるか、まったく実行されないことを意味します。中間は存在しません。つまり、トランザクションは部分的に発生しません。各トランザクションは 1 つの単位とみなされ、完了するまで実行されるか、まったく実行されません。これには次の 2 つの操作が含まれます。
アボート : トランザクションが中止されると、データベースに加えられた変更は表示されません。
専念 : トランザクションがコミットされると、加えられた変更が表示されます。
原子性は「全か無かの法則」としても知られています。



次のトランザクションを考えてみましょう T からなる T1 そして T2 : 口座から100円送金 バツ アカウントへ そして

完了後にトランザクションが失敗した場合 T1 しかし完了する前に T2 .(たとえば、その後 書き込み(X) しかしその前に 書き込み(Y) )、その金額が差し引かれます。 バツ しかし追加されていない そして 。これにより、データベースの状態が不整合になります。したがって、データベースの状態の正確性を保証するには、トランザクション全体を実行する必要があります。

一貫性:

これは、トランザクションの前後でデータベースの一貫性を保つために整合性制約を維持する必要があることを意味します。データベースの正確性を指します。上の例を参照すると、
取引前後の合計金額を維持する必要があります。
合計 Tの前 発生する = 500 + 200 = 700
合計 T が発生した後 = 400 + 300 = 700
したがって、データベースは、 一貫性のある 。不整合が発生する場合 T1 完了しますが、 T2 失敗します。その結果、T は不完全になります。

分離:

このプロパティにより、データベース状態の不整合を引き起こすことなく、複数のトランザクションを同時に実行できるようになります。トランザクションは干渉することなく独立して発生します。特定のトランザクションで発生した変更は、そのトランザクションの特定の変更がメモリに書き込まれるかコミットされるまで、他のトランザクションには表示されません。このプロパティにより、トランザクションを同時に実行すると、トランザクションが何らかの順序で連続的に実行された場合と同等の状態になることが保証されます。
させて バツ = 500、 そして = 500。
2 つのトランザクションを考えてみましょう T そして T.

仮定する T まで実行されました 準備ができて) その後 て」 が始まります。その結果、演算のインターリーブが発生します。 て」 の正しい値を読み取ります バツ しかし、間違った値 そして そして合計は次のように計算されます
T'': (X+Y = 50, 000+500=50, 500)
したがって、トランザクション終了時の合計と一致しません。
T: (X+Y = 50,000 + 450 = 50,450)
これにより、50 ユニットが失われ、データベースの不整合が発生します。したがって、トランザクションは分離して実行する必要があり、変更はメイン メモリに加えられた後にのみ表示される必要があります。

耐久性:

このプロパティにより、トランザクションの実行が完了すると、データベースの更新と変更がディスクに保存および書き込まれ、システム障害が発生した場合でも保持されることが保証されます。これらの更新は永続的なものとなり、不揮発性メモリに保存されます。したがって、取引の効果が失われることはありません。

いくつかの重要な点:

財産 財産を維持する責任
原子性 トランザクションマネージャー
一貫性 アプリケーションプログラマー
分離 同時実行制御マネージャー
耐久性 リカバリマネージャー

プロパティは全体として、各トランザクションが単一の単位として機能する操作のグループであり、一貫した結果を生成し、他の操作から分離して動作し、永続的に保管されます。

ACID プロパティは、データベース管理システム (DBMS) におけるトランザクションの信頼性と一貫性を定義する 4 つの主要な特性です。 ACID は、Atomicity、Consistency、Isolation、Durability の頭字語です。これらの各プロパティについて簡単に説明します。

  1. アトミック性: アトミック性により、トランザクションが単一の分割不可能な作業単位として扱われることが保証されます。トランザクション内のすべての操作が正常に完了するか、どれも正常に完了しません。トランザクションの一部が失敗した場合、トランザクション全体が元の状態にロールバックされ、データの一貫性と整合性が確保されます。
  2. 一貫性: 一貫性により、トランザクションによってデータベースがある一貫した状態から別の一貫した状態に移行することが保証されます。データベースは、トランザクションの実行前と実行後の両方で一貫した状態にあります。データの一貫性を確保するには、一意キーや外部キーなどの制約を維持する必要があります。
  3. 分離: 分離により、複数のトランザクションが相互に干渉することなく同時に実行できるようになります。各トランザクションは、完了するまで他のトランザクションから隔離する必要があります。この分離により、ダーティ読み取り、反復不能読み取り、およびファントム読み取りが防止されます。
  4. 耐久性: 耐久性により、トランザクションがコミットされると、その変更は永続的になり、その後のシステム障害が発生しても存続することが保証されます。トランザクションの変更はデータベースに永続的に保存され、システムがクラッシュした場合でも変更はそのまま残り、復元できます。

全体として、ACID プロパティは、DBMS におけるデータの一貫性、整合性、信頼性を確保するためのフレームワークを提供します。これにより、システム障害、ネットワークの問題、その他の問題が存在する場合でも、トランザクションが信頼性が高く一貫した方法で実行されることが保証されます。これらの特性により、DBMS は現代の組織でデータを管理するための信頼性の高い効率的なツールとなっています。

DBMS における ACID プロパティの利点:

  1. データの一貫性: ACID プロパティにより、トランザクションの実行後もデータの一貫性と正確さが確保されます。
  2. データの整合性: ACID プロパティは、データベースへの変更が永続的で失われることがないことを保証することで、データの整合性を維持します。
  3. 同時実行制御: ACID プロパティは、トランザクション間の干渉を防止することで、同時に発生する複数のトランザクションを管理するのに役立ちます。
  4. リカバリ: ACID プロパティにより、障害またはクラッシュが発生した場合、システムは障害またはクラッシュの時点までデータをリカバリできます。

DBMS の ACID プロパティの欠点:

  1. パフォーマンス: ACID プロパティは、データの一貫性と整合性を確保するために追加の処理を必要とするため、システムにパフォーマンスのオーバーヘッドを引き起こす可能性があります。
  2. スケーラビリティ: ACID プロパティは、複数のトランザクションが同時に発生する大規模な分散システムでスケーラビリティの問題を引き起こす可能性があります。
  3. 複雑さ: ACID プロパティを実装すると、システムの複雑さが増す可能性があり、多大な専門知識とリソースが必要になります。
    全体として、DBMS の ACID プロパティの利点は欠点を上回ります。データに対する信頼性の高い一貫したアプローチを提供します
  4. 管理し、データの整合性、正確性、信頼性を確保します。ただし、場合によっては、ACID プロパティの実装のオーバーヘッドにより、パフォーマンスとスケーラビリティの問題が発生する可能性があります。したがって、ACID プロパティの利点とシステムの特定のニーズおよび要件のバランスをとることが重要です。