データベースのトランザクションT2の振る舞いのうち、ダーティリード(dirty read)に関する記述はどれか。
ア | トランザクションT1が行を検索し、トランザクションT2がその行を更新する。 その後T1は先に読んだ行を更新する。その後にT2が同じ行を読んでも、先のT2による更新が反映されない値を得ることになる。 |
イ | トランザクションT1が行を更新し、トランザクションT2がその行を検索する。 その後T1がロールバックされると、T2はその行に存在しない値を読んだことになる。 |
ウ | トランザクションT2がある条件を満たす行を検索しているときに、トランザクションT1がT2の検索条件を満たす行を挿入する。 その後T2が同じ条件でもう一度検索を実行すると、前回は存在しなかった行を読むことになる。 |
エ | トランザクションT2が行を検索し、トランザクションT1がその行を更新する。 その後T2が同じ行を検索した場合、同じ行を読んだにもかかわらず、異なる値を得ることになる。 |
答え イ
【解説】
ア | 「ACID特性」のうちの独立性(Isolation)の問題ですが、ダーティリードとは異なります。 |
イ | ダーティリードについての説明です。 |
ウ | 通常の処理で問題ありません。 |
エ | 通常の処理で問題ありません。 |
【キーワード】
・ダーティリード