平成28年度 秋期 応用情報技術者試験 午前 問30
テクノロジ/データベースDBMSをシステム障害発生後に再立上げするとき,ロールフォワードすべきトランザクションとロールバックすべきトランザクションの組合せとして,適切なものはどれか。ここで,トランザクションの中で実行される処理内容は次のとおりとする。 T1,T2:データベースに対するRead10回,Write20回 T3,T4:データベースに対するRead100回(Writeなし) T5,T6:データベースに対するRead20回,Write10回 図は,チェックポイントと障害発生までの各トランザクションの実行状況を示す。図中の●はコミットされたトランザクションを,●の無い線はコミットされていないトランザクションを示す。

出典:平成28年度 秋期 応用情報技術者試験 午前 問30
- アロールフォワード:T2,T5/ロールバック:T6
- イロールフォワード:T2,T5/ロールバック:T3,T6
- ウロールフォワード:T1,T2,T5/ロールバック:T6
- エロールフォワード:T1,T2,T5/ロールバック:T3,T6
正解:ア
解説
チェックポイント以前に既にコミット済みのT1は,障害時に何もする必要がありません。チェックポイント後にコミットされたT2とT5は,更新内容がディスクに反映されていない可能性があるためロールフォワード(redo)が必要です。障害発生時に未コミットのT3,T4,T6のうち,更新(Write)を行っているのはT6だけであり(T3,T4はRead100回のみで更新なし),更新を行っていない読取り専用のトランザクションは元に戻す必要がないため,ロールバック(undo)が必要なのはT6だけです。
選択肢ごとの解説
- ア正しい。ロールフォワードが必要なのはチェックポイント後にコミットされたT2,T5,ロールバックが必要なのは更新を伴い未コミットのままだったT6だけです(T3,T4は更新を行っていないため対象外,T1はチェックポイント前に既にコミット済みのため対象外)。
- イ誤り。T3はRead100回のみで更新(Write)を行っていない読取り専用トランザクションなので,未コミットであってもロールバックの対象にする必要はありません。
- ウ誤り。T1はチェックポイント前に既にコミットされているため,ロールフォワードの対象にする必要はありません。
- エ誤り。T1をロールフォワード対象にする必要がないことに加え,T3は更新を行っていないためロールバック対象にする必要もありません。