テクノロジ系応用問題

関係データベースで複数のトランザクションが同時に実行されるとき、トランザクションAが更新したデータをトランザクションBがコミット前に読み取り、その後Aがロールバックした場合、Bが読み取ったデータはどのような問題を引き起こすか。

A.ファントムリード(幻読み)が発生し、Bの結果セットに存在しない行が含まれる。
✗ ファントムリードは、同一トランザクション内で同じ検索を繰り返したとき新しい行が現れる問題であり、これとは異なります。
B.ダーティリード(汚れ読み)が発生し、Bが存在しなかったことになるデータを読んでいる。← 正解
✓ 正解です。コミットされていないデータを読み取り、その後ロールバックされた場合をダーティリードといいます。
C.ノンリピータブルリード(反復不能読み取り)が発生し、Bが同じクエリで異なる値を取得する。
✗ ノンリピータブルリードは、同一トランザクション内で同じ行を2回読んだとき値が変わる問題であり、この状況とは異なります。
D.デッドロックが発生し、両トランザクションが互いのロック解放を待ち続ける。
✗ デッドロックはお互いがロックを保持し合って待ち続ける状態であり、ここで説明されている問題とは異なります。

応用情報技術者試験 の問題一覧