令和3年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問14
テクノロジ/データベースRDBMS のロックに関する記述のうち,適切なものはどれか。ここで,X,Y はトランザクションとする。
出典:令和3年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問14
- アX が A 表内の特定行 a に対して共有ロックを獲得しているときは,Y は A 表内の別の特定行 b に対して専有ロックを獲得することができない。
- イX が A 表内の特定行 a に対して共有ロックを獲得しているときは,Y は A 表に対して専有ロックを獲得することができない。
- ウX が A 表に対して共有ロックを獲得しているときでも,Y は A 表に対して専有ロックを獲得することができる。
- エX が A 表に対して専有ロックを獲得しているときでも,Y は A 表内の特定行 a に対して専有ロックを獲得することができる。
正解:イ
解説
共有ロック(読取りロック)は,他のトランザクションによる同一資源への共有ロックの取得は許しますが,専有ロック(書込みロック)の取得は許しません。行レベルで共有ロックを取得している場合でも,表全体に対する意図共有ロックなどの仕組みによってその効果は表全体にも及ぶため,他のトランザクションはその表全体に対する専有ロックを取得することはできません。
選択肢ごとの解説
- ア誤り。XがA表内の特定行aに共有ロックを掛けていても,別の行bには影響しないため,YはA表内の行bに対して専有ロックを獲得できます。
- イ正しい。行レベルの共有ロックが存在する場合,表全体に対する専有ロックはその行のロックと両立しないため,YはA表全体に対する専有ロックを獲得することはできません。
- ウ誤り。共有ロックと専有ロックは互いに両立しないため,XがA表に共有ロックを獲得している間,YはA表に対して専有ロックを獲得することはできません。
- エ誤り。XがA表全体に専有ロックを獲得している場合,A表内のいかなる行に対しても他のトランザクションがロックを獲得することはできません。