正答2
解説
正解は2です。
RDBMS(関係データベース管理システム)のロックには、読取り用の共有ロックと、更新用の専有ロックがあります。
共有ロック同士は両立しますが、専有ロックはほかのロックと両立しません。
表と行という粒度の違うロックでは、対象が重なるかどうかで判断します。
【選択肢別解説】
1:× 行aと行bは別の行なので、ロックの対象が重なりません。
Xが行aに共有ロックを掛けていても、Yは行bに専有ロックを獲得できます。
2:○ 表全体への専有ロックは、表内のすべての行を対象に含みます。
行aにXの共有ロックがあるので両立せず、Yは表に専有ロックを獲得できません。
3:× 同じ表に対する共有ロックと専有ロックは両立しません。
Xが共有ロック中は、Yは表に専有ロックを獲得できません。
4:× 表全体に専有ロックがあると、表内の行もすべて専有されています。
Yは行aに専有ロックを獲得できません。
【ポイント】
共有ロック同士だけが両立し、専有ロックはどのロックとも両立しません。
粒度の異なるロックは、範囲が重なれば同じ規則が適用されます。