3.7.1 データベース システム - データベース制御技術: 同時実行制御、トランザクション、トランザクションの ACID 特性、トランザクションの同時実行によって引き起こされる問題、更新の消失、繰り返し不可能な読み取り、ダーティ データの読み取り、トランザクションの同時実行の問題を解決するためのブロッキング プロトコル

3.7.1 データベース システム - データベース制御技術: 同時実行制御、トランザクション、トランザクションの ACID 特性、トランザクションの同時実行によって引き起こされる問題、更新の消失、繰り返し不可能な読み取り、ダーティ データの読み取り、トランザクションの同時実行の問題を解決するためのブロッキング プロトコル

アプリケーションの設計および関連プロセスを実行する場合、データベースは不可欠です.データベース内のデータがアプリケーションの要件を満たすようにするには、主に同時実行制御、パフォーマンスの最適化、データベースの整合性、制約、セキュリティ制御、データベースのバックアップなどを制御する必要があります.そして回復。

事務

これは主にトランザクションの同時実行を目的としています。トランザクションは、データベース内の操作の基本単位であり、複数のアクションを含む一連の操作を定義します。この特性によれば、トランザクション自体は、すべて実行するか実行しないかのいずれかの特性を持っています。

データベース環境から見ると、トランザクションは作業の分割不可能な論理単位です。一般に、プログラムには複数のトランザクションを含めることができます。データの観点からは、トランザクションは基本単位として理解できます。

トランザクションの ACID プロパティ

トランザクションには、ACID 特性、原子性、一貫性、分離性、持続性があります。

原子性

アトミシティは、オペレーティング システムのプリミティブの概念に多少似ています。つまり、トランザクションに含まれるすべての操作がすべて成功する (成功はコミットの形式で送信される) か、すべてロールバックに失敗する (ロールバックが表される) ことを意味します。ロールバックによって (ロールバック データ、ロールバック ステータス、ロールバック ロックおよびロック解除)。これらの操作は全体であり、部分的に完了することはできません。

一貫性

一貫性: トランザクションがデータベースをある一貫性のある状態から別の一貫性のある状態に変更する必要があることを意味します。つまり、トランザクションは実行の前後で一貫した状態でなければなりません (中間プロセスは一貫していない可能性があります)。

隔離

分離: トランザクションの実行が他のトランザクションによって干渉されないことを意味します。つまり、トランザクション内で使用される操作とデータは、他の同時トランザクションから分離されます。

耐久性

耐久性 (永続性): トランザクションがコミットされると、データベース内のデータへの変更は永続的であり、どのような障害が発生しても影響はありません。

同時トランザクションから生じる問題

データベースの並行処理とは、複数のトランザクションが同時に実行される状況のことです. この同時操作は並行性の問題を引き起こす可能性があります.

失われた更新

写真の説明を追加してください
最初のトランザクション T1 はデータ A を変更して書き戻し、2 番目のトランザクション T2 も A を変更して書き戻します。この 2 つが正常にコミットできなかった場合、T2 の更新されたデータが T1 のデータを書き戻すことがわかります。上書き後は、T1 が何を書き込んだか分からない、つまり T1 が更新したデータが失われて消えてしまうことを更新の消失、変更の消失とも呼びます。

関連する問題は主に、両方に異なる書き戻しがあり、書き戻しプロセス中に上書きされるという事実に反映されています。

繰り返し不可能な読み取り

写真の説明を追加してください
最初のトランザクション T1 はデータ A と B を読み込んで変更し、それが正しいことを確認して書き戻し、2 番目のトランザクション T2 は A を変更して書き戻す. これらの 2 つが正常に送信されなかった場合、更新されたT2 のデータは T1 のデータで書き戻された内容を上書きします. 上書き後は T1 が何を書き込んだかを知ることはできません.つまり, T1 の更新されたデータは失われて消えてしまいます. このとき, A+B=100 をT1 のステップ③、2 回 読み取りデータが異なるため、T1 が A+B=70 を 2 回繰り返して読み取ることができないという問題が発生します。 、これは反復不可能な読み取りと呼ばれます)

ダーティデータの読み取り

写真の説明を追加してください

汚れたデータを読んでください。汚れたデータの定義は次のとおりです。多くの場合、汚れたもの、つまりゴミ、不要なもの、汚れたデータは不要なデータです。不要なデータとは?
これはロールバック操作になります. あるトランザクション T1 がデータを変更し, 変更されたデータは別のトランザクション T2 によって読み込まれます. このプロセスには問題がないように見えますが, T1 がロールバックし, T2 がかかる場合ガベージ データ (ダーティ データ) ロールバックする必要がある 70 に達した場合、このプロセスはダーティ データを読み取ることです。

トランザクションの同時実行性の問題を解決するには?

同時実行の問題を解決するには?関係する主なものは、ブロッキング プロトコルを追加することです。

ブロック契約には主に次のものが含まれます。

  • S ブロック: 読み取りロック、共有ロックとも呼ばれます。読み取りロック データを追加すると、共有できるロックの一種である読み取りロックを他のユーザーが追加できるようになります。通常、読み取り操作で使用されます。
  • X ブロック: 書き込みロック、排他ロック、排他ロックとも呼ばれます。データに書き込みロックを追加するプロセス中に、他のロックを追加することはできません。また、その逆も同様です。読み取りロックが追加され、書き込みロックが追加されると、追加は失敗します。読み取りロックがある場合、ロックは失敗します。
  • レベル 1 ブロッキング プロトコル
  • 二次ブロッキング プロトコル
  • レベル 3 ロックダウン プロトコル
  • 2 段階ロック プロトコル

一般的に言及されている封鎖プロセスでは、3 レベルの封鎖プロトコルが関与し、1 層から 3 層の進行があり、ますます複雑な問題を解決できます。

ロック プロトコルの最後の 2 つのフェーズは、ロックとロック解除のプロセス中の対応するアクションの単純な分割です. この期間が分割されると、ロック プロセスは上部セグメントに集中し、ロック解除動作は下部セグメントに集中します。 . . 、こうして 2 段階ロックと呼ばれる 2 つの部分を形成します。

現在、関係する主な内容は、1対3の封鎖協定の具体的なプロセスです。

ロックが原因でデッドロックが発生する可能性があります. デッドロックについては, 事前に防止することも, 手動で解除することもできます. 現在のところ, ソフトテストではデッドロックの調査内容はこの側面には関与していません.

ブロック契約

  • レベル 1 ブロッキング プロトコル。トランザクション T は、データ R を変更する前に X ロック (書き込みロック) をデータ R に追加する必要があり、トランザクションが終了するまで解放されません失われた変更から保護します
  • 二次ロックダウン プロトコル。第 1 レベルのブロッキング プロトコルとトランザクション T は、データ R を読み取る前に S ロック (読み取りロック) をデータ R に追加し、読み取り後に S ロックを解放できます変更の損失を防ぎ、ダーティデータを読み取ることができます
  • レベル 3 ロックダウン プロトコル。第 1 レベルのロック プロトコルとトランザクション T は、データ R を読み取る前に S lock をデータ R に追加し、トランザクションが終了するまで解放されません変更が失われるのを防ぎ、ダーティなデータの読み取りを防ぎ、データの (非) 反復可能な読み取りを防ぐことができます。
  • 2 段階ロック プロトコル。シリアライズ可能。デッドロックの可能性

レベル 1 ブロッキング プロトコル: 失われた更新への対処

写真の説明を追加してください
第 1 レベルのブロッキング プロトコルでは、ダーティ データの読み取りの問題を解決できないのはなぜですか?
読み取りロックがないため、他のトランザクションがデータを読み取る際の制限はありません。

第 2 レベルのブロッキング プロトコル: ダーティ データの読み取りの問題を解決する

写真の説明を追加してください
第 2 レベルのブロッキング プロトコルでは、ダーティ データの読み取りの問題を解決できないのはなぜですか?
読み取り後に読み取りロックを解放でき、トランザクションの完了を待つ必要がないため、他のトランザクションがダーティ データを読み取ることは避けられません。

3 レベルのブロッキング プロトコル: ダーティ データの読み取りの問題を解決する

写真の説明を追加してください

おすすめ

転載: blog.csdn.net/qq_41929714/article/details/130032826