令和5年度 秋期 応用情報技術者試験 午前 問30
テクノロジデータベース
この問題は2023(R5)秋 応用情報技術者 午前に出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。
本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。
DBMSをシステム障害発生後に再立上げするとき,ロールフォワードすべきトランザクションとロールバックすべきトランザクションの組合せとして,適切なものはどれか。ここで,トランザクションの中で実行される処理内容は次のとおりとする。

図の説明テキスト
| トランザクション | データベースに対する Read 回数 と Write 回数 |
|---|---|
| T1, T2 | Read 10, Write 20 |
| T3, T4 | Read 100 |
| T5, T6 | Read 20, Write 10 |

図の説明テキスト
時間軸(右向きの矢印)に沿ったトランザクションT1〜T6の実行状況と、チェックポイント、障害発生のタイミングを示す図。
- T1: チェックポイント前に終了(コミット済)
- T2: チェックポイント前に開始し、障害発生前に終了(コミット済)
- T3: チェックポイント前に開始し、障害発生時点で未終了(未コミット)
- T4: チェックポイント後に開始し、障害発生時点で未終了(未コミット)
- T5: チェックポイント後に開始し、障害発生前に終了(コミット済)
- T6: チェックポイント後に開始し、障害発生時点で未終了(未コミット)
凡例:
- 右端に黒丸のない直線はコミットされていないトランザクションを示す。
- 右端に黒丸(●)のある直線はコミットされたトランザクションを示す。

図の説明テキスト
| ロールフォワード | ロールバック | |
|---|---|---|
| ア | T2, T5 | T6 |
| イ | T2, T5 | T3, T6 |
| ウ | T1, T2, T5 | T6 |
| エ | T1, T2, T5 | T3, T6 |
解答・解説を読む
正解: 選択肢ア
正解の根拠
DBMS(データベース管理システム)において、システム障害発生後にデータベースを矛盾のない状態に回復するためには、ロールフォワードとロールバックの2つの処理を適切に組み合わせる必要があります。
- ロールフォワード(前進復帰): 障害発生前にコミット(処理完了)済のトランザクションが対象です。ログファイルの更新後ジャーナルを用いて、完了したトランザクションの結果を再反映します。
- ロールバック(後退復帰): 障害発生時に実行中(未コミット)だったトランザクションが対象です。ログファイルの更新前ジャーナルを用いて、処理開始前の状態に戻します。
- 回復処理不要: チェックポイントより前に完了しているトランザクションは、すでにディスクへの書き込みが完了しているため、復旧処理は不要です。
本問の正解(ア)の構成から、各トランザクションの状態は以下のように判断できます。
- T2, T5: 障害発生前にコミット済であるためロールフォワードの対象
- T6: 障害発生時に実行中であったためロールバックの対象
各選択肢の解説
- ア(正解): ロールフォワード(T2, T5)、ロールバック(T6)の組み合わせであり、各トランザクションの状態と回復処理の原則に一致しています。
- イ: T3がロールバック対象に含まれていますが、対象外であるため誤りです。
- ウ: ロールフォワード対象にT1が含まれています。T1はチェックポイント前に完了しているトランザクションであり、回復処理は不要なため誤りです。
- エ: T1(回復処理不要)やT3が含まれている点で誤りです。