ソフトウェア開発技術者平成20年春期 午前問67

問67

DBMSをシステム障害発生後に再立上げするとき,前進復帰(ロールフォワード)すべきトランザクションと後退復帰(ロールバック)すべきトランザクションの組合せとして,適切なものはどれか。ここで,トランザクションの中で実行される処理内容は次のとおりとする。
67.png/image-size:375×311
  • 67a.png/image-size:200×119

            
  • [出題歴]
  • 応用情報技術者 R5秋期 問30
  • 応用情報技術者 H28秋期 問30
  • ソフトウェア開発技術者 H18春期 問68

分類

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

正解

解説

トランザクションがコミットされると、DBMSはその更新情報をメモリ上のバッファとログファイルに書き出します。ログファイルについてはディスクへ即時書出しされますが、メモリバッファの内容については入出力効率向上のために、一定の間隔ごとにまとめてディスクに反映する方式をとっています。このディスクと同期を取るタイミングを「チェックポイント」といいます。この仕組みによりチェックポイント以前にコミットしたトランザクションに関してはディスクへの反映が保証されます。

チェックポイント法が使用されているDBMSでは、システム障害の発生後、システムを復帰したときはデータベースがチェックポイントの状態に戻っています。このとき、ロールバックとロールフォーワードを組み合わせて、データベースを障害発生直前の状態に回復する処理が行われます。
ロールフォワード(前進復帰)
障害発生前にコミットしたトランザクションは、更新後ログを使って、コミットの内容を反映させる
ロールバック(後退復帰)
障害発生時にコミットされていないトランザクションは、更新前ログを使って、トランザクション開始時の状態に戻す
図を見ると、T1はチェックポイント前にコミットしているのでリカバリは不要、チェックポイントから障害発生までの間にコミットされているT2・T5がロールフォワード、障害発生時にトランザクション実行中のT3・T4・T6がロールバックの対象ということになります。しかし、トランザクションの処理内容を確認すると、T3・T4はデータベースへの書込み処理がありません。書込みが行われない場合、更新前後のデータを記録したログ(ジャーナルファイル)が生成されませんから、チェックポイントまで戻った後にこれを削除する必要がありません。したがって、T3とT4はロールバックの対象外となります。
67_2.png/image-size:433×94
以上のことから、前進復帰で回復するのが「T2,T5」、後退復帰でトランザクション開始前に戻すのが「T6」と判断できます。したがって「ア」が正しい組合せです。
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop