IPA過去問ドリル

平成26年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14

テクノロジ/データベース

データベースのトランザクションT2の振る舞いのうち,ダーティリード(dirty read)に関する記述はどれか。

出典:平成26年度 春期 データベーススペシャリスト試験 午前Ⅱ 問14

正解:イ

解説

ダーティリードとは,あるトランザクションが,まだコミットされていない(確定していない)他のトランザクションによる更新後のデータを読み取ってしまう事象である。その後,更新を行った側のトランザクションがロールバックされると,読み取った側のトランザクションは,実際にはデータベースに反映されなかった(存在しない)値を読んだことになる。

選択肢ごとの解説

  • 誤り。これは,一度読んだ行を再度読んだときに,他のトランザクションのコミット済みの更新が反映されず,古い値のままになっている事象であり,一般的なダーティリードの説明ではない(むしろ更新の見落としに関する説明であり,設問の主体であるT2がまだコミットされていないデータを読む状況とは異なる)。
  • 正しい。T1が行を更新し(未コミットの状態),T2がその未確定の更新後データを検索して読み取る。その後T1がロールバックされると,T2が読んだ値はデータベースに実際には存在しない(確定しなかった)値であったことになる。これはダーティリードそのものの説明である。
  • 誤り。これは,一度の検索条件による参照の間に,他のトランザクションが挿入した行が新たに出現する事象であり,ファントムリード(幻読)と呼ばれる事象の説明である。
  • 誤り。これは,同じ行を2回検索する間に,他のトランザクションのコミット済みの更新によって値が変わってしまう事象であり,反復不能読取り(非再現読取り)と呼ばれる事象の説明である。
データベーススペシャリストの過去問を演習モードで解く