データベース|令和5年度 ITパスポート試験 問66
トランザクション処理におけるコミットの説明として,適切なものはどれか。
- あるトランザクションが共有データを更新しようとしたとき,そのデータに対する他のトランザクションからの更新を禁止すること
- ✓ これが正解トランザクションが正常に処理されたときに,データベースへの更新を確定させること
- 何らかの理由で,トランザクションが正常に処理されなかったときに,データベースをトランザクション開始前の状態にすること
- 複数の表を,互いに関係付ける列をキーとして,一つの表にすること
解説
正常に終わったときに、更新を確定させるのがコミットです。
トランザクションは、いくつかの更新をひとまとまりとして扱い、全部そろって成立するか、まったく行われなかったことにするかの、どちらかにする仕組みです。処理が最後までうまく進んだときに、それまでの更新をデータベースに確定させる操作をコミットといいます。コミットを終えて初めて、その内容はほかの利用者からも見えるようになり、途中で電源が落ちても失われません。逆に途中で問題が起きたときは、開始前の状態へ戻すことになります。よって適切なのは、正常に処理されたときにデータベースへの更新を確定させること、という説明です。
ほかの選択肢はなぜ違うのか
- あるトランザクションが更新しようとしたデータに対して、ほかからの更新を禁止することは、排他制御の説明です。同時に触れて食い違いが生じるのを防ぐ仕組みであって、更新を確定させる操作ではありません。
- 正常に処理されなかったときに、データベースを開始前の状態にすることは、ロールバックの説明です。確定させるコミットとは向きが逆で、なかったことにする側の操作になります。確定させるのか、なかったことにするのか。二つは対になる操作なので、向きで覚えると取り違えません。
- 複数の表を、互いに関係付ける列をキーとして一つの表にすることは、表を結合する操作の説明です。データを取り出すときの操作であって、更新を確定させるかどうかの話ではありません。
この問題に関係する言葉
- コミット
- ロールバック
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
- 排他制御同じデータを同時に更新しても、矛盾が起きないようにする仕組みです。先の処理が終わるまで、後の処理を待たせて防ぎます。
出典:令和5年度 ITパスポート試験 問66
同じ単元をまとめて解くならデータベースへ。
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)