令和元年度 秋期 ITサービスマネージャ試験 午前Ⅱ 問21
テクノロジ/データベーストランザクションT1,T2の同時実行制御が適切に行われない場合に起こり得る,レコードX,Yの変更消失問題(lost update anomaly)に該当する処理はどれか。
出典:令和元年度 秋期 ITサービスマネージャ試験 午前Ⅱ 問21
- アT1がXとYを参照しながら値の集計を行っている最中に,T2がXを更新した。
- イT1がXを更新した後,コミットする前に,T2がXを参照したが,T1がロールバックした。
- ウT1がXを追加した後,コミットする前に,T2がXを参照し,その値を使ってYを更新した。
- エT1とT2がXをほぼ同時に参照し,その値に基づいてXをT1,T2の順番に更新した。
正解:エ
解説
変更消失問題(lost update anomaly)は,複数のトランザクションが同じレコードをほぼ同時に参照し,その参照した値に基づいて更新を行うことで,先に行われた更新が後続の更新によって上書きされて消えてしまう問題です。T1とT2がXをほぼ同時に参照し,その参照値に基づいてT1,T2の順にXを更新すると,T1による更新内容がT2の更新によって上書きされ,消失します。
選択肢ごとの解説
- ア誤り。T1が集計処理中にT2がXを更新する状況は,T1の集計結果に不整合が生じる“ダーティリード”や“ノンリピータブルリード”に類する問題であり,変更消失問題そのものではありません。
- イ誤り。T1がロールバックした場合,T2が参照したXの値は無効になりますが,これは他のトランザクションが未コミットのデータを読む“ダーティリード”の問題であり,変更消失問題ではありません。
- ウ誤り。T2がT1の未コミットの値を参照して更新に使う状況は,未コミットのデータへの依存(ダーティリード)に関する問題であり,変更消失問題そのものではありません。
- エ正しい。T1とT2がXをほぼ同時に参照し,その値に基づいて順に更新すると,先の更新(T1の更新結果)が後の更新(T2の更新)によって上書きされ,消失します。これが変更消失問題です。