SAシステムアーキテクト試験 午前Ⅱ

令和5年度春期 システムアーキテクト 午前Ⅱ 問24

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

DBMS がトランザクションのコミット処理を完了するタイミングはどれか。

選択肢

  1. ア
    アプリケーションプログラムの更新命令完了時点
  2. イ
    チェックポイント処理完了時点
  3. ウ
    ログバッファへのコミット情報書込み完了時点
  4. エ
    ログファイルへのコミット情報書込み完了時点
解き方のヒントを見る

境界と整合性を見極める視点

処理を考えるときは、複数の操作をどのまとまりとして捉えるか、途中の状態と完了後の状態を分けて整理し、全体の整合性を保つ観点から設問の条件を慎重に確認します。

この問題で問われていること

一つの処理単位の始まりと終わりに注目し、途中で状態が変化する場面と、処理後に満たされるべき関係を区別して確認することに集中しましょう。

視点

境界を考える際は、操作の範囲、状態を確認する時点、関連するデータ同士の関係を順に整理します。個別の方式名や正解の挙動を先に当てはめず、設問が示す条件と処理のまとまりが矛盾しないかを確認することが大切です。

確認ポイント

  • 処理のまとまりがどこからどこまでかを確認する
  • 途中の状態と完了後の状態を混同していないかを見る
  • 関連するデータ間の整合性をどの時点で確認するか整理する
正解と解説を見る

正解

エ

解説

DBMSのコミット処理は、トランザクションの更新命令が終わった時点ではなく、コミット情報が障害後にも保持される記録へ書き込まれた時点で完了する。

理由

コミットは、トランザクションの更新結果を確定し、障害が発生しても確定済みの内容として扱える状態にする処理です。そのため、コミット情報が永続的なログファイルへ書き込まれた時点が完了の基準となる。

比較

更新命令の完了は処理要求が終わっただけであり、チェックポイントはデータベース全体の復旧効率に関する処理です。ログバッファへの書込みも一時的な記憶にとどまるため、コミット完了とはいえない。

選択肢ア

これは不正解だよ。アプリケーションプログラムの更新命令が完了しても、更新内容やコミット情報が障害後にも保持される記録へ保存されたとは限らない。命令完了は処理の入力や実行が終わった時点であり、トランザクションの確定を保証する時点ではない。

選択肢イ

これは不正解だよ。チェックポイント処理は、更新されたデータやログを整理して障害復旧を効率化するための処理であり、個々のトランザクションのコミット完了を示す時点ではない。コミットはチェックポイントの完了を待って成立するものではない。

選択肢ウ

これは不正解だよ。ログバッファはログ情報を一時的に保持するメモリ上の領域であり、そこへコミット情報を書き込んだだけでは、障害発生時にも情報が残るとは限らない。永続的な記録への保存が必要である。

選択肢エ(正解)

これは正解だよ。ログファイルは障害復旧に利用する永続的な記録であり、そこへコミット情報が書き込まれることで、トランザクションの確定内容を障害後にも確認できる。したがって、この書込み完了時点がコミット処理の完了となる。

学習のポイント

ログバッファとログファイルの役割、およびコミット完了の永続性を理解する。

出典:独立行政法人 情報処理推進機構(IPA)令和5年度春期 システムアーキテクト試験 午前Ⅱ 問24(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針