問74
頻出度★☆☆
トランザクション処理に関する記述のうち, 適切なものはどれか。
この問題の解説と、これまでの解答の記録です。
トランザクション処理に関する記述のうち, 適切なものはどれか。
「トランザクションが正常に処理されなかったときに、開始前の状態に戻す」という説明は、コミットではなくロールバックの定義。コミットは逆に、トランザクションが正常に完了したときにその更新を確定させる操作なので、説明が入れ替わっており誤り。
「正常に処理されたときにデータベースの内容を確定させる」という説明は、排他制御ではなくコミットの定義。排他制御は同時アクセス時の競合を防ぐ仕組みで、内容の確定とは別物なので誤り。
「複数のトランザクションが同時に同一データを更新しようとしたときに、矛盾が起きないようにする」という説明は、ロールバックではなく排他制御(ロックなど)の定義。ロールバックは異常時に開始前の状態へ戻す操作なので、説明が入れ替わっており誤り。
正解 「エ」が正しい。ログ(ログファイル)とは、データベースに対して行われた更新の履歴(いつ・どのデータを・どう変えたか)を時系列で記録したファイルのこと。トランザクションが異常終了したり障害が起きたりした際、このログを使ってロールバック(更新前の状態に戻す)やロールフォワード(更新後の状態まで進める)を行い、データベースを正しい状態へ復旧できる。よって「データベースの更新履歴を記録したファイル」という説明は、ログの定義として適切。