平成27年度 秋期 午前 問30
データベース
トランザクションに関する問題
チェックポイントを取得する DBMS において,図のような時間経過でシステム障害が発生した。前進復帰(ロールフォワード)によって障害回復できるトランザクションだけを全て挙げたものはどれか。
〔図〕(左から右へ時間が進む。チェックポイントと,その後のシステム障害発生の 2 本の縦線がある)
T1 開始 ─ コミット … 2 本ともチェックポイントより前 T2 開始 ─────────────────→ … 開始はチェックポイント前・コミットせず障害発生 T3 開始 ───────────→ … 開始はチェックポイント後・コミットせず障害発生 T4 開始 ─────── コミット … 開始はチェックポイント前・コミットはその後で障害前 T5 開始 ─── コミット … 開始・コミットともチェックポイント後で障害前
- アT1
- イT2 と T3
- ウT4 と T5
- エT5
答えと解説を見る
✓ これが正解ウT4 と T5
解説
コミットがチェックポイントより後の更新をやり直します。
設問は、チェックポイントを取得する DBMS で障害が起きたとき、前進復帰で回復できるトランザクションを選ばせています。五つのトランザクションを見分けるのに必要な問いは二つだけです。一つ目は、障害の時点でコミットを終えていたかどうかです。前進復帰は、コミット済みの更新をログからやり直す操作なので、終えていないものは初めから対象になりません。二つ目は、その更新がチェックポイントの時点で磁気ディスクへ書き出されていたかどうかです。チェックポイントでは、それまでの更新が主記憶からディスクへ書き出されるので、そこまでに済んでいた分は障害の後もそのまま残っています。この二つを当てると、コミットを済ませていて、しかもそのコミットがチェックポイントより後にあるものだけが残ります。開始がチェックポイントより前であっても、コミットが後なら更新はまだ書き出されていないので、やり直しが必要です。見るべきなのは開始の位置ではなくコミットの位置で、そこがこの設問の狙いです。
ほかの選択肢はなぜ違うのか
- アT1:このトランザクションはチェックポイントの時点より前に終わっており、更新はすでに磁気ディスクへ残っています。障害の後も内容が失われないので、手当てそのものが不要な側です。
- イT2 と T3:どちらも障害の時点で終わっておらず、途中まで書いた更新が中途半端に残っている恐れがあります。ログをさかのぼって取り消すロールバックの対象で、やり直す側ではありません。
- エT5:コミットの位置で選ぶという見方は合っていますが、拾い上げるものが一本足りません。開始がチェックポイントより前であっても、終えたのが後であれば更新はディスクに届いておらず、同じ扱いになります。
この問題の用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
- DBMSデータベースを管理するソフト。複数の処理が同じデータを同時に更新しても矛盾しないよう、排他制御などを行います。
出典:平成27年度 秋期 応用情報技術者試験 午前 問30
同じ用語が出る問題
- 令和7年度 秋期 午前 問29:多版同時実行制御に関する問題(トランザクション)
- 令和6年度 秋期 午前 問31:チェックポイントに関する記述(DBMS)
- 令和6年度 秋期 午前 問27:ロールバックに関する問題(トランザクション)
- 令和6年度 春期 午前 問25:ストアドプロシージャの利点(DBMS)
- 令和5年度 秋期 午前 問30:ロールフォワードに関する問題(DBMS)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)