IPA公式正解:イ XがA表内の特定行aに対して共有ロックを獲得しているときは,YはA表に対して専有ロックを獲得することができない。
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【イ】です。行aに共有ロックがかかっている場合、A表全体に対して専有ロック(排他ロック)を獲得しようとすると、行aを含む表全体を排他的に更新・変更することになるため競合し、専有ロックを獲得することはできません。
【詳細解説】■ 本問の核心・解法のポイント
RDBMSにおけるロックの共存性(コンパティビリティ)と粒度(階層関係)に関する問題です。
・共有ロック(Sロック):参照用。他からのSロックは許可するが、専有ロック(Xロック)は拒絶する。
・専有ロック(Xロック):更新用。他からのSロックもXロックも拒絶する。
また、粒度階層(表レベルと行レベル)において、表全体にロックをかける場合は、その表内のすべての行を対象としてロックをかけるのと同義になります。
・各選択肢の徹底解説:
・ア:行レベルロックの場合、行aと異なる別の行bであれば、互いに干渉しないためYは行bに専有ロックを獲得できます。
・イ:【選択肢イ★】Xが行aに共有ロックを保持している場合、Yが表A全体に専有ロックを獲得しようとすると行aに対する排他アクセスが必要となり競合するため、Yは表Aに対して専有ロックを獲得できません。
・ウ:表Aに対して共有ロックがかかっている場合、同じ表Aに対して専有ロックを重ねて獲得することはできません(SロックとXロックは互いに両立しない)。
・エ:表A全体に専有ロックがかかっている場合、表内のいかなる特定行に対しても他トランザクションはロック(共有・専有問わず)を獲得できません。
よって正解はイです。