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

図の説明テキスト
トランザクションごとのRead回数とWrite回数を示す表。
| トランザクション | データベースに対する 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: チェックポイント後に開始し、障害発生時点まで継続している。
凡例: - 右端に黒丸のない直線は「コミットされていないトランザクションを示す。」
- 右端に黒丸のある直線は「コミットされたトランザクションを示す。」
解答・解説を読む
正解: 選択肢ア
DBMSの障害回復処理について
システム障害発生時のデータベースの回復には、チェックポイントとトランザクションの完了状態に応じてロールフォワードとロールバックが行われます。
ロールフォワード(前進復帰): チェックポイント以降、障害発生前までにコミット(完了)したトランザクションが対象です。ログファイルを用いて、障害直前の完了状態まで処理を再現します。
ロールバック(後退復帰): 障害発生時に実行中(未完了)だったトランザクションが対象です。ログファイルを用いて、トランザクション開始前の状態に処理を取り消します。
対象外(回復不要): チェックポイント取得時点ですでに完了しているトランザクションは、データがデータベースに安全に書き込まれているため、回復処理の対象外となります。
各選択肢の解説
各トランザクションの状態と適切な回復処理の組合せは以下の通りです。
ア: 正解です。T2およびT5は障害発生前に処理が完了しているためロールフォワードの対象となります。T6は障害発生時点で実行中(未完了)であるためロールバックの対象となります。
イ: T3がロールバック対象に含まれています。正解の組合せから推察すると、T3はチェックポイント前に完了しているなど、実行中ではないため回復対象外です。したがって誤りです。
ウ: T1がロールフォワード対象に含まれています。T1はチェックポイント取得前に完了しており既にデータベースへ反映済みのため、ロールフォワードは不要であり誤りです。
エ: 回復不要であるT1をロールフォワード対象とし、対象外であるT3をロールバック対象としているため誤りです。