ホームページ  >  記事  >  同時操作によって引き起こされる 3 つのタイプのデータの不整合は何ですか?

同時操作によって引き起こされる 3 つのタイプのデータの不整合は何ですか?

青灯夜游
青灯夜游オリジナル
2020-09-02 13:20:0120114ブラウズ

同時操作により、変更の損失、反復不可能な読み取り、「ダーティ」データの読み取りなどのデータの不整合が発生します。これら 3 つの現象が発生する理由は、同時操作によってトランザクションの分離が破壊されるためです。これらのデータの不一致に対処するための主なテクノロジーは、ブロッキング、タイムスタンプ、楽観的な制御方法です。

同時操作によって引き起こされる 3 つのタイプのデータの不整合は何ですか?

#同時操作によってどのようなデータの不整合が発生するか ( )

A.変更の損失、反復不可能な読み取り、ダーティ読み取り、デッドロック

B.反復不能読み取り、ダーティ読み取り、デッドロック

C.変更の損失、ダーティ読み取り、デッドロック

D.変更の損失、再現不可能な読み取り、ダーティ リード

正解: D

解答分析:

トランザクションは次によって制御されます。同時実行性 トランザクションの ACID 特性を保証する基本単位は、トランザクション処理における重要なタスクです。トランザクションの ACID 特性が損なわれる理由の 1 つは、データベース上で複数のトランザクションが同時に実行されることです。

同時操作によって引き起こされる主なデータの不一致には、変更の損失、反復不可能な読み取り、「ダーティ」データの読み取りが含まれます。

1. 変更の喪失

2 つのトランザクション T1 と T2 が同じデータを読み取り、変更しました。T2 によって送信された結果により、T1 によって送信された結果が破壊され、T1 の変更が失われます。典型的な例: 飛行機のチケットや電車のチケットの購入。

2. 反復不可能な読み取り

非反復読み取りとは、トランザクション T1 がデータを読み取った後、トランザクション T2 が更新操作を実行し、T1 が前の読み取りの結果を再現できなくなることを意味します。

(1) トランザクション T1 があるデータを読み込んだ後、トランザクション T2 がそのデータを変更し、再度トランザクション T1 がデータを読み込むと、異なる値が得られます。前回。

(2) トランザクション T1 が特定のデータを読み込んだ後、トランザクション T2 がそのデータを削除し、再度トランザクション T1 がデータを読み込むと、一部のレコードが謎に消えていることがわかります。

(3) トランザクション T1 が特定のデータを読み取った後、トランザクション T2 がいくつかの新しいレコードを挿入し、トランザクション T1 が再度データを読み取ると、さらにいくつかのレコードが見つかります。

後の 2 つの操作はファントム現象と呼ばれます。

3. 「ダーティ」データの読み取り

「ダーティ」データの読み取りには、トランザクション T1 が特定のデータを変更してディスクに書き戻すだけが必要です。トランザクション T2 が特定のデータを読み取った後、T1 はトランザクションをキャンセルします。このとき、T2 によって読み取られたデータはデータベース内のデータと不一致になります。これを「ダーティ」データの読み取りといいます。

上記の 3 つの現象が発生する理由は、同時操作によってトランザクションの分離が破壊されるためです。これらのデータの不一致に対処するための主なテクノロジーは、ブロッキング、タイムスタンプ、楽観的な制御方法です。

関連知識の詳細については、

PHP 中国語 Web サイト

をご覧ください。

以上が同時操作によって引き起こされる 3 つのタイプのデータの不整合は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。