SkillStack
テクノロジ系21 / 25問

システム監査技術者試験 令和4年度 秋期 午前II 問21

データベースのデータを更新するトランザクションが、実行途中で異常終了したとき、更新中のデータに対して行われる処理はどれか。

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】エ

異常終了したトランザクションは、処理が最後まで完了しておらず、コミットもされていません。そのため、途中までデータベースに反映された更新を取り消し、トランザクション開始前の整合性が保たれた状態へ戻す必要があります。この処理がロールバックです。ロールバックでは、更新ログに記録された更新前の情報を利用して、それまでの変更を逆向きに取り消します。したがって、エが正解です。

アの更新ログ情報を破棄するという説明は誤りです。ログを捨てても、既に更新されたデータが自動的に元へ戻るわけではありません。むしろ、更新を取り消すために更新ログが必要です。

イのロールフォワードは、障害によって失われた更新を、コミット済みのトランザクションのログから再実行する処理です。異常終了した未コミットのトランザクションを取り消す処理ではありません。

ウの異常終了時点までロールフォワードするという説明は誤りです。未完了の更新を再実行すると、不完全な状態を再現してしまいます。

【ポイント】 トランザクションには、全て実行するか全く実行しないという原子性があります。 未コミットの処理はロールバックし、コミット済みで失われた更新はロールフォワードすると整理してください。

出典:令和4年度 秋期 システム監査技術者試験 午前II 問21
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の25問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める