共有ロックとは?
共有ロックとは、データを読むために掛けるロック。同じデータに複数のトランザクションが同時に掛けられるが、専有ロックとは両立しない。
基本情報技術者試験の過去問では2回出題されています(2016年度〜2019年度)。
きょうゆうロック
共有ロックの意味
データを読むために掛けるロック。同じデータに複数のトランザクションが同時に掛けられるが、専有ロックとは両立しない。
共有ロックの具体例
参照だけの処理どうしは互いに待たされない。
共有ロックは試験でどう引っ掛けられる?
両立表の向きを取り違えないこと。共有×共有は両立、共有×専有と専有×専有は両立しない。また「読むだけだから安全」ではなく、2つのトランザクションが同じ行に共有ロックを掛けたまま双方が専有ロックへ昇格しようとすると互いに待ち合ってデッドロックになる(昇格デッドロック)。
共有ロックと関連する用語
共有ロックが出た過去問
DBMSにおいて,複数のトランザクション処理プログラムが同一データベースを同時に更新する場合,論理的な矛盾を生じさせないために用いる技法はどれか。
正解:排他制御
要点:同時更新の矛盾はロックによる排他制御で防ぐ
複数のトランザクションが同じデータを同時に更新すると、一方の更新がもう一方に上書きされるなどの矛盾が生じる。これを防ぐため、更新中のデータに施錠して他からの操作を待たせる仕組みが排他制御である。ロックの粒度や共有ロック・専有ロックの使い分けによって、矛盾を防ぎつつ並行性をなるべく損なわないよう調整する。
出典:平成28年度 春期 基本情報技術者試験 午前 問30(IPA)2相ロッキングプロトコルに従ってロックを獲得するトランザクションA、Bを図のように同時実行した場合に、デッドロックが発生しないデータ処理順序はどれか。ここで、r…
正解:①update X ②read W ③update Y ④update Z
要点:デッドロック回避の基本は、資源のロック順序を全体でそろえること
2相ロッキングでは獲得したロックをトランザクション終了まで解放しないため、2つのトランザクションが同じ2件のデータを互いに逆の順序でロックしようとするとデッドロックになる。トランザクションAはW、X、Y、Zの順に処理するので、Bも同じ相対順序でロックを取れば循環待ちは起きない。Wは共有ロックなので双方が同時に保持でき、待ちの原因にはならない点も判断材料になる。
出典:令和1年度 秋期 基本情報技術者試験 午前 問29(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。