応用情報技術者試験 令和元年秋 午前問28 解説付き過去問
問題
RDBMSのロックに関する記述のうち、適切なものはどれか。
ここで、X,Yはトランザクションとする。
正解
解説
この問題はRDBMS(リレーショナルデータベース管理システム)におけるロックの挙動に関する理解を問うものです。ロックはデータベース内でのデータの整合性を保ちながら、複数のトランザクションが同時に行われることを可能にする重要な機能です。
- 共有ロックと専有ロックの基本
共有ロック(Sロック)は、複数のトランザクションがデータを同時に読み込むことを許可しますが、データの更新は許可しません。対して専有ロック(Xロック)は、そのデータに対する読み取りおよび書き込みを独占的に行うことができます。これにより、他のトランザクションはそのデータに対してはいかなる操作も行えなくなります。 - ロックの競合解決
選択肢の状況を考えると、トランザクションXが特定行aに共有ロックをかけている場合、この行は他のトランザクションによって読み取られることは可能ですが、書き込みを伴う専有ロックは許可されません。重要なのは、トランザクションYがA表全体に専有ロックを試みた場合、トランザクションXが既に行aに共有ロックを設定しているため、これはロックの競合を引き起こし、専有ロックの獲得は不可能になります。
したがって、正解は「XがA表内の特定行aに対して共有ロックを獲得しているときは、YはA表に対して専有ロックを獲得することができない」という選択肢です。これは共有ロックが設定された行に対して他のトランザクションが専有ロックを設定することはできないというロックの基本的なルールを反映しています。