表ロックと行ロックの排他制御

正解の理由 RDBMSにおける粒度(表レベル・行レベル)とロックモード(共有ロック: S、専有ロック: X)の排他制御規則を確認します。 行レベルのロック: トランザクション $X$ が表 $A$ の特定行 $a$ に共有ロックを獲得している場合、階層的ロックモデルにより表 $A$ 全体には意図共有ロック(ISロック)がかかります。 表全体の専有ロック: トランザクション $Y$ が表 $A$ 全体に対して専有ロック(Xロック)を獲得しようとする場合、表 $A$ のすべての行が解放されている必要があります(XロックはISロックやSロックと両立・共存できません)。 したがって、$X$ が特定行 $a$ に対して共有ロックを保持している間は、$Y$ は表 $A$ 全体に対する専有ロックを獲得することはできません(イが正解です)。 各選択肢の解説 特定行 $a$ への共有ロックは、別の独立した行 $b$ への専有ロックをブロックしません。$Y$ は行 $b$ に対する専有ロックを獲得可能です。 正しい記述です。表内の特定行にロックが存在する場合、表全体に対する専有ロックは獲得できません。 表全体への共有ロックと専有ロックは競合(排他)するため、$Y$ は専有ロックを獲得できません。 表全体に専有ロックがかかっている場合、他トランザクションはその表内のいかなる行に対してもロックを獲得できません。

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

出典2021r03a_db_am2_問14
ア
X が A 表内の特定行 a に対して共有ロックを獲得しているときは,Y は A 表内の別の特定行 b に対して専有ロックを獲得することができない。
イ
X が A 表内の特定行 a に対して共有ロックを獲得しているときは,Y は A 表に対して専有ロックを獲得することができない。
ウ
X が A 表に対して共有ロックを獲得しているときでも,Y は A 表に対して専有ロックを獲得することができる。
エ
X が A 表に対して専有ロックを獲得しているときでも,Y は A 表内の特定行 a に対して専有ロックを獲得することができる。