令和7年度 秋期 午前Ⅱ 問12
トランザクション処理
ロールフォワードに関する問題
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
解説
T2・T5 はロールフォワード、更新した未コミットの T6 はロールバックです。
チェックポイントでは更新内容がデータベースに書き出されるので、それより前にコミットした T1 は回復処理の対象外です。チェックポイントのあとに障害発生までにコミットした T2 と T5 は、更新がデータベースに書かれていないおそれがあるので、ログを使ってロールフォワードします。障害発生時にコミットしていない T3、T4、T6 のうち、取り消す必要があるのはデータベースを更新したものだけです。T3 と T4 は Read だけで Write がないので戻す更新がなく、Write のある T6 だけをロールバックします。見分ける軸は、コミットした時点とチェックポイントの前後、そして Write の有無の二つです。
ほかの選択肢はなぜ違うのか
- イロールフォワード:T2,T5 / ロール…:ロールフォワードの対象は合っていますが、ロールバックに T3 を含めている点が違います。T3 は Read だけで、データベースを更新していないので、取り消すべき更新がなく、ロールバックの対象になりません。
- ウロールフォワード:T1,T2,T5 / …:T1 をロールフォワードに含めている点が違います。T1 はチェックポイントより前にコミットしているので、その更新はチェックポイントの時点でデータベースに書き出されており、ログから反映し直す必要はありません。
- エロールフォワード:T1,T2,T5 / …:T1 をロールフォワードに含め、Read だけの T3 をロールバックに含めている点が違います。チェックポイント前にコミットした更新は反映済みであり、更新していないトランザクションには取り消すものがありません。
この問題の用語
- DBMSデータベースを管理するソフト。複数の処理が同じデータを同時に更新しても矛盾しないよう、排他制御などを行います。
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
- データベースたくさんのデータを決まった形で貯め、探したり書き換えたりできるようにした仕組み。多くの人が同時に使うことを前提にしています。
出典:令和7年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問12
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問18:ブロックチェーンに関する問題(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問17:デッドロックに関する問題(DBMS)
- 令和7年度 秋期 午前Ⅱ 問16(トランザクション)
- 令和7年度 秋期 午前Ⅱ 問2:概念データモデルの説明(DBMS)
- 令和5年度 秋期 午前Ⅱ 問15:ロールフォワードに関する問題(DBMS)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)