令和3年度 秋期 データベーススペシャリスト試験 午前II 問14
2025年6月30日
【問題14】
RDBMSのロックに関する記述のうち,適切なものはどれか。ここで,X,Yはトランザクションとする。
XがA表内の特定行aに対して共有ロックを獲得しているときは,YはA表内の別の特定行bに対して専有ロックを獲得することができない。
XがA表内の特定行aに対して共有ロックを獲得しているときは,YはA表に対して専有ロックを獲得することができない。
XがA表に対して共有ロックを獲得しているときでも,YはA表に対して専有ロックを獲得することができる。
XがA表に対して専有ロックを獲得しているときでも,YはA表内の特定行aに対して専有ロックを獲得することができる。
【解説】
RDBMSのロックには、共有ロック(Shared Lock)と専有ロック(Exclusive Lock)があります。以下、各選択肢について説明します。
ア: XがA表内の特定行aに対して共有ロックを獲得しているときは,YはA表内の別の特定行bに対して専有ロックを獲得することができない。
誤り。共有ロックは、同じリソースに対して複数のトランザクションが並行して読み取りを行うことを許可します。他の行(b)に対する専有ロックの取得は可能です。
イ: XがA表内の特定行aに対して共有ロックを獲得しているときは,YはA表に対して専有ロックを獲得することができない。
正しい。共有ロックを持つトランザクションが存在する場合、その表全体に対する専有ロックは獲得できません。
ウ: XがA表に対して共有ロックを獲得しているときでも,YはA表に対して専有ロックを獲得することができる。
誤り。共有ロックが存在する場合、他のトランザクションは専有ロックを獲得できません。
エ: XがA表に対して専有ロックを獲得しているときでも,YはA表内の特定行aに対して専有ロックを獲得することができる。
誤り。専有ロックが存在する場合、そのリソース(表全体または行)に対して他のトランザクションがロックを獲得することはできません。
【答え】
イ: XがA表内の特定行aに対して共有ロックを獲得しているときは,YはA表に対して専有ロックを獲得することができない。
出典:令和3年度 秋期 データベーススペシャリスト試験 午前II 問14