平成24年度 秋期 システムアーキテクト試験 午前Ⅱ 問22
テクノロジ/データベースRDBMS のロックに関する記述のうち,適切なものはどれか。ここで,X,Y はトランザクションとする。
出典:平成24年度 秋期 システムアーキテクト試験 午前Ⅱ 問22
- アX が A 表内の特定行 a に対して共有ロックを獲得しているときは,Y は A 表内の別の特定行 b に対して専有ロックを獲得することができない。
- イX が A 表内の特定行 a に対して共有ロックを獲得しているときは,Y は A 表に対して専有ロックを獲得することができない。
- ウX が A 表に対して共有ロックを獲得しているときでも,Y は A 表に対して専有ロックを獲得することができる。
- エX が A 表に対して専有ロックを獲得しているときでも,Y は A 表内の特定行 a に対して専有ロックを獲得することができる。
正解:イ
解説
RDBMSのロックでは,行に対する共有ロックであっても,同じ表に対して他のトランザクションが専有ロックを獲得する操作は,行レベルのロックと表レベルのロックの整合性を保つための意図ロック(インテントロック)の仕組みによって妨げられます。したがって,XがA表内の特定行aに共有ロックを獲得しているときは,YはA表全体に対する専有ロックを獲得することはできません。
選択肢ごとの解説
- ア誤り。行aへの共有ロックと,行aとは別の特定行bへの専有ロックは,対象となる行が異なるため,通常は両立可能です。
- イ正しい。行aへの共有ロックが存在する間は,表全体に対する専有ロックの獲得は,意図ロックの仕組みによって妨げられ,Yは取得できません。
- ウ誤り。Xが表に対して共有ロックを獲得している間は,Yが表に対して専有ロックを獲得することはできません(共有ロックと専有ロックは両立しません)。
- エ誤り。Xが表に対して専有ロックを獲得している間は,Yはその表内のいかなる行に対してもロックを獲得することはできません。