過去問解きまくり研究所 ホーム

平成23年度 特別 午前Ⅱ 問15

トランザクション処理

ダーティリードに関する問題

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

答えと解説を見る

✓ これが正解イトランザクション T1 が行を更新し,トランザクション T2 がその行を検索する。その後 T1 がロールバックされると,T2 はその行に存在しない値を読んだことになる。

解説

後でロールバックされる未コミットの値を読むのがダーティリードです。

ダーティリードは、他のトランザクションがまだコミットしていない更新の値を読んでしまう現象です。T1 が行を更新し、コミット前にその行を T2 が読むと、T2 は T1 の途中の値を受け取ります。その後 T1 がロールバックされると、その値はデータベースのどこにも残らず、T2 は存在しなかった値をもとに処理を進めたことになります。見分ける軸は、読んだ値の元になった更新が確定していたかどうかです。同じ行を読み直して値が変わる現象や、同じ条件で読み直して行が増える現象とは別のものです。未確定の値を読む、読み直すと値が変わる、読み直すと行が増える、の三つを並べて区別しておくと整理できます。

ほかの選択肢はなぜ違うのか

この問題の用語

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

同じ用語が出る問題

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)