排他制御とは?はいたせいぎょ
排他制御とは、同じデータへ複数の処理が同時に触れても矛盾が生じないよう、先に触れた側が終わるまで他方を待たせる制御。対象にロックを掛けて実現し、読取り専用の共有ロックは同時に複数掛けられるが、更新用の専有ロックは1つしか掛けられない。
最終更新:2026-10-06
この語が出る過去問を解く →背景
残高のように読んで計算して書き戻す処理は、途中に別の更新が割り込むと片方の更新が消えてしまう。この更新喪失を防ぐには、処理の単位でデータを占有させるしかない。運用ではロック待ちの長期化がそのまま応答遅延のインシデントになるため、遅いという申告を受けたときの定番の切り口になる。規模が大きくなるほどロックの粒度を細かくして待ちを減らす設計が要るが、細かくすればデッドロックの経路も増えるという緊張関係がある。
具体例
JR東日本の指定席予約のように同一の座席へ同時に申込みが来る仕組みでは、先に処理を始めた側がロックを取り、もう一方は待たされるか取得に失敗する。夜間バッチとオンラインの処理時間が重なると、同じ表を奪い合ってロック待ちが表面化する。
試験での引っ掛け
ロックを掛ければ安全、では終わらない。互いに相手の解放を待って動かなくなるデッドロックが起こりうる。共有ロックは同時取得できるが専有ロックはできない、という可否を逆に覚えやすい点も狙われる。
関連用語
出た過去問
出典:令和7年度 春期 ITサービスマネージャ試験 午前Ⅱ 問23(IPA)
DBMSにおいて、複数のトランザクション処理プログラムが同一データベースを同時に更新する場合、論理的な矛盾を生じさせないために用いる技法はどれか。
正解:排他制御
要点:同時更新による矛盾を防ぐのはロックによる排他制御
複数のトランザクションが同一データを同時に更新すると、更新の消失などの矛盾が生じ得る。これを防ぐのが排他制御で、対象データにロックをかけて他のトランザクションからの競合するアクセスを待たせることで、同時実行しても直列に実行したのと同じ結果(直列化可能性)を保証する。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。