平成23年 春期 データベーススペシャリスト 午前II 問15

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

 ア  トランザクションT1が行を検索し、トランザクションT2がその行を更新する。
その後T1は先に読んだ行を更新する。その後にT2が同じ行を読んでも、先のT2による更新が反映されない値を得ることになる。
 イ  トランザクションT1が行を更新し、トランザクションT2がその行を検索する。
その後T1がロールバックされると、T2はその行に存在しない値を読んだことになる。
 ウ  トランザクションT2がある条件を満たす行を検索しているときに、トランザクションT1がT2の検索条件を満たす行を挿入する。
その後T2が同じ条件でもう一度検索を実行すると、前回は存在しなかった行を読むことになる。
 エ  トランザクションT2が行を検索し、トランザクションT1がその行を更新する。
その後T2が同じ行を検索した場合、同じ行を読んだにもかかわらず、異なる値を得ることになる。


答え イ


解説

 ア  「ACID特性」のうちの独立性(Isolation)の問題ですが、ダーティリードとは異なります。
 イ  ダーティリードについての説明です。
 ウ  通常の処理で問題ありません。
 エ  通常の処理で問題ありません。


キーワード
・ダーティリード

キーワードの解説
  • ダーティリード(dirty read)
    トランザクション処理において、あるトランザクションがデータの更新をしている最中に、他のトランザクションからデータを読み出すことができてしまう現象のことです。
    これはトランザクション処理において、更新されるデータは更新が完了しなくてはデータを見ることができない、トランザクション処理における機能の条件である「ACID特性」のうちの一貫性(Consistency)が実現できていないことになります。

もっと、「ダーティリード」について調べてみよう。

戻る 一覧へ 次へ