トランザクション処理(全65問中12問目)
No.12解説へ
RDBMSのロックに関する記述のうち,適切なものはどれか。ここで,X,Yはトランザクションとする。
出典:令和元年秋期 問28
- XがA表内の特定行aに対して共有ロックを獲得しているときは,YはA表内の別の特定行bに対して専有ロックを獲得することができない。
- XがA表内の特定行aに対して共有ロックを獲得しているときは,YはA表に対して専有ロックを獲得することができない。
- XがA表に対して共有ロックを獲得しているときでも,YはA表に対して専有ロックを獲得することができる。
- XがA表に対して専有ロックを獲得しているときでも,YはA表内の特定行aに対して専有ロックを獲得することができる。
正解 イ問題へ
広告
解説
共有・専有の2種類のロックの違いを確認しておきましょう。
これを踏まえて各記述を検証すると以下のように判断できます。
- 共有ロック
- データを読込むときに使うロックで、資源がこの状態の場合は他のトランザクションによる更新処理ができなくなる(読込みは可能)。
- 専有ロック
- データを更新するときに使うロックで、資源がこの状態の場合は他のトランザクションによる読込みや更新ができなくなる。
これを踏まえて各記述を検証すると以下のように判断できます。
- 共有ロックが掛けられているのは行aなので、それとは別の行bに対する専有ロックは獲得可能です。
- 正しい。共有ロックが掛けられている行aは表Aの一部なので、表A全体に対する専有ロックは獲得できません。
- 共有ロックが掛けられている資源に対して、他のトランザクションが獲得可能なのは共有ロックのみです。
- A表には専有ロックが掛けられているので、A表の一部である行aに対するロックは獲得できません。
広告