スポンサーリンク

問題の解答・解説ページ

このページは解説の閲覧モードです。
実力試しをしたい方は、下のボタンからクイズに挑戦してください!

この問題をクイズ形式で解く
問題 No.2404
データベースのトランザクション管理において、複数のトランザクションを並行実行した際に、あるトランザクションが途中で変更した不完全なデータを別のトランザクションが読み取ってしまうことで生じる問題を防ぐなど、トランザクション間の独立性を確保する制御方式として一般的に用いられる仕組みはどれか。

【正解の解説】

排他制御

人気ラーメン店の食券売機やトイレの個室に入る時を想像してください。一人が中にいる間は「使用中」の鍵をかけて他の人が入れなくするように、データベースでもデータを書き換えている最中は他の人がそのデータを触れないようロックをかけるのが排他制御の役割です。これにより、データの整合性をしっかりと保つことができます。

スポンサーリンク

【その他の選択肢の解説】

コミット

コミットは作業の「保存ボタン」を押すようなもので、問題文にあるような「データの競合を防ぐ制御方式」そのものではありません。排他制御によって安全性が確保されたデータ処理の最後に、変更内容を正式にデータベースへ書き込んで確定させるために使われる手順の名前です。

デッドロック

二人が互いに相手の持っている荷物を「先に返してよ」と言い合って身動きが取れなくなる状態に似ています。これは排他制御を行った結果として偶然起きてしまう「トラブル(現象)」の名前であり、独立性を確保するための「制御方式そのもの」を指す言葉ではありません。

ロールバック

ゲームでセーブせずに強力なボスに負けた時、直前のセーブデータからやり直す「ロード」のような機能です。不完全なデータを安全に取り消すための「リカバリーの仕組み」であり、そもそも不完全なデータの読み取りを防ぐために最初からアクセスを制限する排他制御とは役割が異なります。