データベースのトランザクションT2の振る舞いのうち、ダーティリード(dirty read)に関する記述はどれか。
ア |
トランザクションT1が行を検索し、トランザクションT2がその行を更新する。
その後T1は先に読んだ行を更新する。その後にT2が同じ行を読んでも、先のT2による更新が反映されない値を得ることになる。 |
イ |
トランザクションT1が行を更新し、トランザクションT2がその行を検索する。
その後T1がロールバックされると、T2はその行に存在しない値を読んだことになる。 |
ウ |
トランザクションT2がある条件を満たす行を検索しているときに、トランザクションT1がT2の検索条件を満たす行を挿入する。
その後T2が同じ条件でもう一度検索を実行すると、前回は存在しなかった行を読むことになる。 |
エ |
トランザクションT2が行を検索し、トランザクションT1がその行を更新する。
その後T2が同じ行を検索した場合、同じ行を読んだにもかかわらず、異なる値を得ることになる。 |
答え イ
【解説】
ア |
「ACID特性」のうちの独立性(Isolation)の問題ですが、ダーティリードとは異なります。 |
イ |
ダーティリードについての説明です。 |
ウ |
通常の処理で問題ありません。 |
エ |
通常の処理で問題ありません。 |
【キーワード】
・ダーティリード
【キーワードの解説】
- ダーティリード(dirty read)
トランザクション処理において、あるトランザクションがデータの更新をしている最中に、他のトランザクションからデータを読み出すことができてしまう現象のことです。
これはトランザクション処理において、更新されるデータは更新が完了しなくてはデータを見ることができない、トランザクション処理における機能の条件である「ACID特性」のうちの一貫性(Consistency)が実現できていないことになります。
もっと、「ダーティリード」について調べてみよう。
戻る
一覧へ
次へ
|