令和5年度 秋期 午前 問30
データベース
ロールフォワードに関する問題
DBMS をシステム障害発生後に再立上げするとき,ロールフォワードすべきトランザクションとロールバックすべきトランザクションの組合せとして,適切なものはどれか。ここで,トランザクションの中で実行される処理内容は次のとおりとする。
〔トランザクションの処理内容〕
トランザクション | データベースに対する Read 回数 と Write 回数 T1, T2 | Read 10, Write 20 T3, T4 | Read 100 T5, T6 | Read 20, Write 10
〔時間の流れ〕
左から右へ時間が進む。途中に「チェックポイント」,右端に「障害発生」の縦線。 線の右端の ● はコミットされたことを示す(● が無い線はコミットされていない)。 T1 … 始まり ─── ● (チェックポイントより前にコミット) T2 … チェックポイント前に始まり ─── チェックポイントを越えた先で ● T3 … チェックポイントの後に始まり ─── 障害発生まで(● 無し) T4 … チェックポイント前に始まり ─── 障害発生まで(● 無し) T5 … チェックポイントの後に始まり ─── 障害発生より前で ● T6 … チェックポイントの後に始まり ─── 障害発生まで(● 無し)
- アロールフォワード T2, T5 / ロールバック T6
- イロールフォワード T2, T5 / ロールバック T3, T6
- ウロールフォワード T1, T2, T5 / ロールバック T6
- エロールフォワード T1, T2, T5 / ロールバック T3, T6
答えと解説を見る
✓ これが正解アロールフォワード T2, T5 / ロールバック T6
解説
書いていないトランザクションは回復の対象外です。
設問は、システム障害の発生後に DBMS を再立上げするとき、ロールフォワードすべきものとロールバックすべきものの組合せを問うています。確かめる点は二つあり、両方を見ないと外します。一つ目は処理内容の表です。読出しだけでデータベースを一度も書き換えていないものは、進めるものも戻すものもないので、回復の対象になりません。二つ目は時間の図です。チェックポイントは、それまでの更新内容をバッファからディスクへまとめて書き出す点なので、その前にコミットが済んでいるものは、すでに書き終わっています。したがって進めるのは、チェックポイントより後にコミットしたもの、すなわち T2 と T5 です。戻すのは、コミットしないまま障害を迎えたもののうち更新を行ったもの、すなわち T6 だけです。正解はこの組合せになります。
ほかの選択肢はなぜ違うのか
- イロールフォワード T2, T5 / ロー…:戻す側に T3 を加えた組合せです。T3 は読出しだけで、データベースへの書込みを一度も行っていません。書き換えていないものを始まる前の状態へ引き戻す作業は生じないので、この一つが余分になります。
- ウロールフォワード T1, T2, T5 …:進める側に T1 を加えた組合せです。T1 はチェックポイントより前にコミットを終えており、その時点で更新内容はディスクへ書き出されています。障害で失われていないため、進め直す対象にはなりません。
- エロールフォワード T1, T2, T5 …:進める側に T1 を、戻す側に T3 を加えた組合せで、上の二つの取り違えを同時に含んでいます。チェックポイントが何をする点なのかと、処理内容の表の読み方の、どちらも外した形になっています。
この問題の用語
- DBMSデータベースを管理するソフト。複数の処理が同じデータを同時に更新しても矛盾しないよう、排他制御などを行います。
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
- データベースたくさんのデータを決まった形で貯め、探したり書き換えたりできるようにした仕組み。多くの人が同時に使うことを前提にしています。
出典:令和5年度 秋期 応用情報技術者試験 午前 問30
同じ用語が出る問題
- 令和7年度 秋期 午前 問29:多版同時実行制御に関する問題(トランザクション)
- 令和6年度 秋期 午前 問31:チェックポイントに関する記述(DBMS)
- 令和6年度 秋期 午前 問27:ロールバックに関する問題(トランザクション)
- 令和6年度 春期 午前 問25:ストアドプロシージャの利点(DBMS)
- 令和5年度 春期 午前 問27:ストアドプロシージャに関する問題(DBMS)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)