平成28年度秋期 問30 / 80

平成28年度 秋期 応用情報技術者試験 午前 問30

DBMSをシステム障害発生後に再立上げするとき,ロールフォワードすべきトランザクションとロールバックすべきトランザクションの組合せとして,適切なものはどれか。ここで,トランザクションの中で実行される処理内容は次のとおりとする。

トランザクション データベースに対するRead回数とWrite回数
T1,T2 Read 10,Write 20
T3,T4 Read 100
T5,T6 Read 20,Write 10

問題の図

ロールフォワード ロールバック
ア T2,T5 T6
イ T2,T5 T3,T6
ウ T1,T2,T5 T6
エ T1,T2,T5 T3,T6

キーボード:1〜4 で解答 → 次の問題 ← 前の問題

正解と解説を見る

正解:ア

システム障害からの回復では,チェックポイント時点のデータベースを基に次のように処理します。

  • ロールフォワード: チェックポイント以降,障害発生までにコミットされたトランザクションは,更新後ログを使って更新を再実行します。
  • ロールバック: 障害発生時点でコミットされていないトランザクションは,更新前ログを使って更新を取り消します。

各トランザクションを見ると次のとおりです。

  • T1: チェックポイント前にコミット済みで,更新はチェックポイントでデータベースに反映済みなので処理不要です。
  • T2,T5: チェックポイント以降にコミットされ,Writeがあるのでロールフォワードが必要です。
  • T3,T4: 未コミットですが,Readだけで更新がないため,ロールバックは不要です。
  • T6: 未コミットで,Writeがあるためロールバックが必要です。

  • ア: ロールフォワード T2,T5/ロールバック T6
    正しい。チェックポイント以降にコミットされた更新トランザクションT2,T5をロールフォワードし,未コミットの更新トランザクションT6をロールバックします。

  • イ: ロールフォワード T2,T5/ロールバック T3,T6
    誤り。T3はReadだけでデータベースを更新していないため,ロールバックは不要です。

  • ウ: ロールフォワード T1,T2,T5/ロールバック T6
    誤り。T1はチェックポイント前にコミットされており,その更新はチェックポイントでデータベースに書き込まれているため,ロールフォワードは不要です。

  • エ: ロールフォワード T1,T2,T5/ロールバック T3,T6
    誤り。T1のロールフォワードとT3のロールバックはいずれも不要です。


答え

ア: ロールフォワード T2,T5/ロールバック T6

出典:平成28年度 秋期 応用情報技術者試験 午前 問30

平成28年度秋期の他の問題