平成28年度 秋期 午前 問30
データベース
トランザクションの組合せ
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 T3, T6
- ウT1, T2, T5 T6
- エT1, T2, T5 T3, T6
答えと解説を見る
✓ これが正解アT2, T5 T6
解説
更新の有無・コミット・記録点の前後で分けます。
設問は、障害の後の再立上げで、ロールフォワードすべきトランザクションとロールバックすべきトランザクションの組合せを選ばせています。ふるいは三つあり、順に掛けます。まず、データベースを書き換えたかどうかを見ます。読み出すだけのものは、進め直す更新も取り消す更新も持たないので、どちらの対象にもなりません。次に、コミット済みかどうかを見ます。コミット済みの更新はログを使って進め直し、未コミットの更新は取り消して元に戻します。最後に、チェックポイントより前か後かを見ます。チェックポイントの時点までの更新は既に書き出されているので、それより前にコミットしたものを進め直す必要はありません。三つを順に当てると、進め直すのは T2 と T5、取り消すのは T6 になります。
ほかの選択肢はなぜ違うのか
- イT2, T5 T3, T6:取り消す側に、読み出すだけで一度も書き換えていないものを入れています。書き換えが無ければ元に戻すべき更新も存在しないので、そもそも回復の対象から外れます。
- ウT1, T2, T5 T6:進め直す側の顔ぶれが一つ多くなっています。チェックポイントよりも手前で終えた分はディスクへ反映済みなので、ログから重ねて適用しても手間が増えるだけです。
- エT1, T2, T5 T3, T6:上の二つの取り違えを両方とも抱えています。片方だけに気づいても正解には届かないので、三つのふるいを最後まで通し切る必要があります。
この問題の用語
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
- DBMSデータベースを管理するソフト。複数の処理が同じデータを同時に更新しても矛盾しないよう、排他制御などを行います。
- データベースたくさんのデータを決まった形で貯め、探したり書き換えたりできるようにした仕組み。多くの人が同時に使うことを前提にしています。
出典:平成28年度 秋期 応用情報技術者試験 午前 問30
同じ用語が出る問題
- 令和7年度 秋期 午前 問29:多版同時実行制御に関する問題(トランザクション)
- 令和6年度 秋期 午前 問31:チェックポイントに関する記述(DBMS)
- 令和6年度 秋期 午前 問27:ロールバックに関する問題(トランザクション)
- 令和6年度 春期 午前 問25:ストアドプロシージャの利点(DBMS)
- 令和5年度 秋期 午前 問30:ロールフォワードに関する問題(DBMS)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)