IPA過去問ドリル

平成23年度 特別 データベーススペシャリスト試験 午前Ⅱ 問15

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

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

出典:平成23年度 特別 データベーススペシャリスト試験 午前Ⅱ 問15

正解:イ

解説

ダーティリードとは,あるトランザクションが別のトランザクションによってまだコミットされていない更新結果を読み取ってしまう現象です。設問では,T1が行を更新した直後(未コミットの状態)にT2がその行を検索して値を読み取り,その後T1がロールバックされることで,T2が読み取った値は結局データベース上に存在しなかったことになるという状況が,ダーティリードに該当します。

選択肢ごとの解説

  • 誤り。この記述は,T1とT2双方が更新を行い,互いの更新が反映されない状態を述べたものであり,未コミットデータを読み取るダーティリードの説明ではありません。
  • 正しい。T1の未コミットの更新をT2が検索して読み取り,その後T1がロールバックされることで,T2が読んだ値が実際には存在しなかったことになるという記述は,ダーティリードの典型例です。
  • 誤り。これは,検索中に新たに条件を満たす行が挿入されることで結果が変化する現象であり,ファントムリード(幻読)と呼ばれるものです。
  • 誤り。これは,同じ行を複数回読み込む間に他のトランザクションの更新によって値が変わってしまう現象であり,反復不能読取り(non-repeatable read)と呼ばれるものです。
データベーススペシャリストの過去問を演習モードで解く