令和6年度 秋期 データベーススペシャリスト試験 午前II 問12
テクノロジデータベース
この問題は2024(R6)秋 データベーススペシャリスト 午前IIに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。
本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。
二つのトランザクションが,同じデータに対して,更新,参照を行うときに発生し得るダーティリードの事象を記述したものはどれか。
解答・解説を読む
正解: 選択肢エ
ダーティリード(Dirty Read)とは、他のトランザクションがまだコミットしていない(確定していない)変更途中のデータを読み取ってしまう現象です。
トランザクションAがデータを更新し、まだコミットしていない状態のデータをトランザクションBが読み取った後、トランザクションAがロールバック(取り消し)された場合、トランザクションBは実際には存在しない無効なデータを読み取って処理を進めてしまうことになります。これにより、データの不整合が発生する可能性があります。
したがって、未コミットのデータを参照し、その後ロールバックされる事象を説明しているエが正解となります。
各選択肢の解説
- ア:ファントムリード(Phantom Read)の説明です。トランザクションAが処理を行っている最中に、トランザクションBが新しいデータを挿入(または削除)したことで、トランザクションAが再度同じ条件で検索した際に出現する行が増減してしまう現象です。
- イ:ノンリピータブルリード(Non-repeatable Read)の説明です。トランザクションAがデータを読み込んだ後、トランザクションBがそのデータを更新・コミットしたため、トランザクションAが再度同じデータを読み込んだ際に値が変わってしまう現象です。
- ウ:デッドロックの説明です。複数のトランザクションが互いに相手がロックしている資源の解放を待ち合い、処理が完全に停止してしまう現象です。
- エ:正解です。ダーティリードの説明です。