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