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