DBMS におけるトランザクション管理: ACID プロパティとは何ですか?
データベーストランザクションとは何ですか?
A データベーストランザクション は、1 つ以上のデータベース アクセス操作を伴う DBMS 内の処理の論理単位です。簡単に言えば、データベース トランザクションは、あらゆる企業の実際のイベントを表します。
トランザクションの開始ステートメントと終了ステートメントの間に行われるすべてのタイプのデータベース アクセス操作は、DBMS では単一の論理トランザクションと見なされます。トランザクション中は、データベースは不整合です。データベースがコミットされると、状態は 1 つの整合状態から別の整合状態に変わります。

データベーストランザクションに関する事実
- トランザクションは、実行によってデータベースの内容が変更される場合もあれば変更されない場合もあるプログラム単位です。
- DBMS におけるトランザクションの概念は、単一のユニットとして実行されます。
- データベース操作がデータベースを更新せず、データを取得するだけの場合、このタイプのトランザクションは読み取り専用トランザクションと呼ばれます。
- トランザクションが成功すると、データベースが XNUMX つの CONSISTENT STATE から別の CONSISTENT STATE に変更される可能性があります。
- DBMSトランザクションはアトミック、一貫性、独立性、耐久性を備えていなければならない
- トランザクション前にデータベースが不整合な状態にあった場合、トランザクション後もデータベースは不整合な状態のままになります。
トランザクションで同時実行性が必要なのはなぜですか?
データベースは、アクセスされる共有リソースです。 多くのユーザーとプロセスによって同時に使用されます。 たとえば、銀行システム、鉄道および航空の予約システム、株式市場の監視、スーパーマーケットの在庫、チェックアウトなどです。
同時アクセスを管理しないと、次のような問題が発生する可能性があります。
- ハードウェア障害とシステムクラッシュ
- 同じトランザクションの同時実行、 デッドロック、またはパフォーマンスが遅い
トランザクションの状態
DBMS におけるトランザクション概念のさまざまな状態を以下に示します。
都道府県 | 取引の種類 |
---|---|
アクティブな状態 | 実行プロセスが開始されると、トランザクションはアクティブ状態になります。この状態では、読み取りまたは書き込み操作を実行できます。 |
部分的にコミット | トランザクションは、トランザクションの終了後に部分的にコミットされた状態になります。 |
コミットされた状態 | トランザクションが状態にコミットされると、その実行はすでに正常に完了しています。 さらに、その変更はすべてデータベースに永続的に記録されます。 |
失敗した状態 | いずれかのチェックが失敗した場合、またはトランザクションがアクティブ状態の間に中止された場合、トランザクションは失敗したとみなされます。 |
終了状態 | システムを離れる特定のトランザクションを再開できない場合、トランザクションの状態は終了状態になります。 |
勉強しましょう 状態遷移図 これは、トランザクションがこれらのさまざまな状態間をどのように移動するかを強調しています。
- トランザクションが実行状態になるとアクティブになり、READ または WRITE 操作を発行できるようになります。
- READ および WRITE 操作が完了すると、トランザクションは部分的にコミットされた状態になります。
- 次に、一部の回復プロトコルでは、システム障害によってトランザクションの変更を永続的に記録できなくなることがないようにする必要があります。 このチェックが成功すると、トランザクションはコミットされ、コミットされた状態になります。
- チェックが失敗した場合、トランザクションは失敗状態になります。
- トランザクションがアクティブ状態にある間に中止された場合、トランザクションは失敗状態になります。データベースへの書き込み操作の影響を元に戻すには、トランザクションをロールバックする必要があります。
- 終了状態とは、トランザクションがシステムから終了することを指します。
ACID プロパティとは何ですか?
ACIDプロパティ トランザクション処理中にデータベースの整合性を維持するために使用されます。 DBMS の ACID は Aトミシティ、 C粘り強さ、 I孤独、そして D耐久性。
- Atom氷性: トランザクションは単一の操作単位です。トランザクションは完全に実行するか、まったく実行しないかのどちらかです。部分的な実行はできません。
- 一貫性: トランザクションが実行されると、一貫した状態から別の状態に移行する必要があります。
- アイソレーション: トランザクションは他のトランザクションから分離して実行する必要があります (ロックなし)。同時トランザクション実行中は、同時に実行されたトランザクションの中間トランザクション結果を相互に利用できるようにしないでください。(レベル 0,1,2,3、XNUMX、XNUMX、XNUMX)
- 耐久性:· トランザクションが正常に完了した後は、データベース内の変更が保持される必要があります。 システム障害が発生した場合でも。
DBMS の ACID プロパティの例
以下は DBMS の ACID プロパティの例です。
Transaction 1: Begin X=X+50, Y = Y-50 END Transaction 2: Begin X=1.1*X, Y=1.1*Y END
トランザクション 1 は、アカウント X からアカウント Y に $50 を送金しています。
トランザクション 2 では、各アカウントに 10% の利息が入金されます。
両方のトランザクションが一緒に送信された場合、トランザクション 1 がトランザクション 2 より前に実行されるか、またはその逆であるという保証はありません。 順序に関係なく、結果はトランザクションが次々に連続して発生したものでなければなりません。
取引の種類
応用分野に基づく
- 非分散型と分散型
- 補償取引
- トランザクションのタイミング
- オンラインとバッチ
アクションに基づく
- XNUMXステップ
- 制限付き
- アクションモデル
構造に基づく
- フラットまたはシンプルなトランザクション: 開始操作と終了操作の間で実行される一連の基本操作で構成されます。
- ネストされたトランザクション: 他のトランザクションを含むトランザクション。
- ワークフロー
スケジュールとは何ですか?
スケジュールは、複数の並列トランザクションを XNUMX つのグループとして作成し、それらを XNUMX つずつ実行するプロセスです。 各トランザクションで命令が表示される順序を保持する必要があります。 XNUMX つのトランザクションが同時に実行される場合、XNUMX つのトランザクションの結果が他のトランザクションの出力に影響を与える可能性があります。
例:
Initial Product Quantity is 10 Transaction 1: Update Product Quantity to 50 Transaction 2: Read Product Quantity
トランザクション 2 の前にトランザクション 1 が実行されると、製品数量に関する古い情報が読み取られます。 したがって、スケジュールが必要になります。
データベースでは並列実行は避けられません。ただし、同時に実行されるトランザクション間に同値関係がある場合には並列実行が許可されます。この同値関係には 3 つのタイプがあります。
結果の同等性:
2 つのスケジュールが実行後に同じ結果を表示する場合、それは結果同等スケジュールと呼ばれます。ある値に対しては同じ結果を提供し、別の値セットに対しては異なる結果を提供する場合があります。たとえば、1 つのトランザクションは製品の数量を更新し、他のトランザクションは顧客の詳細を更新します。
同等性を表示
ビューの等価性は、両方のスケジュールのトランザクションが同様のアクションを実行するときに発生します。たとえば、1 つのトランザクションが製品テーブルに製品の詳細を挿入し、別のトランザクションがアーカイブ テーブルに製品の詳細を挿入します。トランザクションは同じですが、テーブルは異なります。
競合の等価性
この場合、XNUMX つのトランザクションが同じデータセットを更新/表示します。 実行順序が出力に影響するため、トランザクション間に競合が発生します。
直列化可能性とは何ですか?
直列化可能性は、トランザクションが次々に実行される直列スケジュールと出力が等しい同時スケジュールを検索するプロセスです。 スケジュールの種類に応じて、次の XNUMX 種類のシリアル化可能性があります。
- 紛争
- 表示
製品概要
- トランザクション管理は、1つ以上のデータベースアクセス操作を伴うDBMSの処理の論理単位です。
- トランザクションは、実行によってデータベースの内容が変更される場合も変更されない場合もあるプログラム単位です。
- 同時アクセスを管理しないと、ハードウェア障害やシステムクラッシュなどの問題が発生する可能性があります。
- アクティブ、部分的にコミット済み、コミット済み、失敗、終了は重要なトランザクション状態です。
- の ACID プロパティの完全な形式 DBMS is Atom氷性、一貫性、分離性、耐久性
- XNUMX つの DBMS トランザクション タイプは、アプリケーション領域、アクション、構造に基づくものです。
- スケジュールは、複数の並列トランザクションを XNUMX つのグループとして作成し、それらを XNUMX つずつ実行するプロセスです。
- 直列化可能性は、トランザクションが次々に実行される直列スケジュールと出力が等しいコンカレント スケジュールを検索するプロセスです。