データベーススペシャリスト 平成23年特別 午前U 問13

午前U 問13

DBMSをシステム障害発生後に再立上げするとき,前進復帰(ロールフォワード)すべきトランザクションと後退復帰(ロールバック)すべきトランザクションの組合せとして,適切なものはどれか。ここで,トランザクションの中で実行される処理内容は次のとおりとする。
13.gif/image-size:406×333
  • [この問題の出題歴]
  • データベース H13春期 問39
  • データベース H18春期 問36
  • データベース H27春期 問14

分類

テクノロジ系 » データベース » トランザクション処理

正解

解説

DBMSではディスクに対する入出力効率を向上させるために、トランザクションの更新をメモリ上のバッファに記憶しておき、一定の間隔ごとにまとめてディスクに反映させるという方式をとっています。このディスクと同期を取るタイミングとチェックポイントといいます。トランザクションがコミットされたとき、ログファイルは同時に書き出されますがディスクへの反映はチェックポイントを待つことになります。

システム障害が発生すると、チェックポイント以降にコミットされたトランザクションがディスクに反映されていないため、更新後ログを使用して障害発生直前の状態まで前進復帰(ロールフォワード)を行います。また障害発生時にコミットされていないトランザクションは、ACID特性の原子性に基づき更新前ログを使用した後退復帰(ロールバック)でトランザクション開始時点の状態に戻します。
13_1.gif/image-size:440×113
図を見ると、チェックポイントからシステム障害までの間にコミットされているT2およびT5が前進復帰、障害発生時にトランザクション中のT3,T4,T6が後退復帰の対象であることになります。ただしT3,T4は"読込み"だけでデータベースの更新を伴わないため回復処理の対象から除外されます。
13_2.gif/image-size:433×94
以上より、前進復帰で回復するのが「T2,T5」、後退復帰でトランザクション開始前に戻すのが「T6」と判断できます。したがって正しい組合せは「ア」です。
© 2016-2019 データベーススペシャリストドットコム All Rights Reserved.

Pagetop