IPA過去問ドリル

平成29年度 春期 データベーススペシャリスト試験 午前Ⅱ 問18

テクノロジ/データベース

RDBMSのロックに関する記述のうち,適切なものはどれか。ここで,X,Yはトランザクションとする。

出典:平成29年度 春期 データベーススペシャリスト試験 午前Ⅱ 問18

正解:イ

解説

RDBMSのロックには,複数のトランザクションが同時に取得できる共有ロック(Sロック)と,一つのトランザクションしか取得できない専有ロック(Xロック)があります。ロックは行単位だけでなく表単位でも掛けることができ,表単位の専有ロックは,その表内のどの行に対するロック(共有・専有を問わず)とも両立しません。したがって,XがA表内の特定行に共有ロックを獲得している間は,YはA表全体に対する専有ロックを獲得できません。

選択肢ごとの解説

  • 誤り。Xが行aに共有ロックを獲得していても,Yが別の行bに対して専有ロックを獲得すること自体は,両者が異なる行を対象としている限り可能です(表単位ではなく行単位のロックであれば競合しません)。
  • 正しい。Xが表内の特定行aに共有ロックを獲得している場合,YはA表全体に対する専有ロック(表ロック)を獲得することはできません。表全体への専有ロックは,表内の既存のいかなるロックとも両立しないためです。
  • 誤り。Xが表全体に共有ロックを獲得している場合,表単位の共有ロックと専有ロックは両立しないため,YはA表に対する専有ロックを獲得することはできません。
  • 誤り。Xが表全体に専有ロックを獲得している場合,その表に対するいかなる追加のロック(行単位も含む)も他のトランザクションは獲得できないため,YはA表内の特定行aに対して専有ロックを獲得することはできません。
データベーススペシャリストの過去問を演習モードで解く