ITサービスマネージャ 2025年 午前2 問23
問題文
DBMSにおいて、複数のトランザクション処理プログラムが同一データベースを同時に更新する場合、論理的な矛盾を生じさせないために用いる技法はどれか。
選択肢
ア:再編成
イ:正規化
ウ:整合性制約
エ:排他制御(正解)
🔒 解説は解答すると表示されます
排他制御【午前2解説】
正解の理由
複数のトランザクションが同じデータを同時に更新すると、更新内容が上書きされたり、処理途中の値を別のトランザクションが読み取ったりして、データに論理的な矛盾が生じることがあります。
このような問題を防ぐため、データへの同時アクセスを調整する技法が排他制御です。あるトランザクションがデータを更新している間、ほかのトランザクションによる更新を待たせるなどして、処理の整合性を保ちます。したがって、該当するのは エ です。
解法ステップ
- 問題文の「同時に更新する場合」に注目します。
- 問われているのは、同じデータへの同時アクセスを調整する方法だと判断します。
- 同時実行を制御する技法である「排他制御」を選びます。
選択肢別の誤答解説
-
ア:再編成
データベースの格納状態を整理し、アクセス効率などを改善する処理です。同時更新による矛盾を防ぐ技法ではありません。 -
イ:正規化
データの重複や更新時の不整合を減らすために、データベースの表を適切に分割・整理する設計手法です。同時実行を制御するものではありません。 -
ウ:整合性制約
主キー制約や外部キー制約など、データが満たすべき条件を定めるものです。制約に反するデータの登録を防げますが、トランザクション間の同時アクセスを調整する技法ではありません。 -
エ:排他制御
データへの同時アクセスを調整し、複数のトランザクションによる矛盾を防ぎます。この問題の状況に当てはまります。
よくある誤解
-
整合性制約と排他制御を混同する
整合性制約は「データが満たすべき条件」を定め、排他制御は「同時アクセスの順序や方法」を調整します。 -
正規化で同時更新の問題も解決できると考える
正規化はデータベースの論理設計に関する手法です。実行時の同時更新を直接制御するものではありません。 -
排他制御は読み取りにも関係すると見落とす
更新だけでなく、読み取りと更新が同時に行われる場合にも、データの一貫性を保つためにアクセスを制御することがあります。
補足コラム
排他制御では、データに対してロックを設定する方法がよく使われます。たとえば、更新するトランザクションが対象データを占有し、処理が終わるまで別のトランザクションによる更新を待たせます。
ただし、複数のトランザクションが互いに相手のロック解除を待つと、デッドロックが発生することがあります。排他制御は整合性の維持に重要ですが、待ち時間やデッドロックへの対策も必要です。
FAQ
Q. 排他制御は、データを同時に読み取る場合にも必要ですか?
A. 読み取りだけなら複数の処理を同時に実行できる場合があります。ただし、読み取り中に別の処理が更新すると問題が起きる可能性があるため、状況に応じて制御します。
A. 読み取りだけなら複数の処理を同時に実行できる場合があります。ただし、読み取り中に別の処理が更新すると問題が起きる可能性があるため、状況に応じて制御します。
Q. 排他制御とトランザクション管理は同じものですか?
A. 同じではありません。トランザクション管理は処理の一貫性を保つ仕組み全体に関わり、排他制御はその中で同時実行を調整する技法の一つです。
A. 同じではありません。トランザクション管理は処理の一貫性を保つ仕組み全体に関わり、排他制御はその中で同時実行を調整する技法の一つです。
関連キーワード: 排他制御、トランザクション、ロック、同時実行制御、デッドロック

\ せっかくなら /
ITサービスマネージャを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

