RDBMSのロックに関する記述のうち、適切なものはどれか。ここで、X,Yはトランザクションとする。
選択肢
- アXがA表内の特定行aに対して共有ロックを獲得しているときは、YはA表内の別の特定行bに対して専有ロックを獲得することができない。
- イXがA表内の特定行aに対して共有ロックを獲得しているときは、YはA表に対して専有ロックを獲得することができない。
- ウXがA表に対して共有ロックを獲得しているときでも、YはA表に対して専有ロックを獲得することができる。
- エXがA表に対して専有ロックを獲得しているときでも、YはA表内の特定行aに対して専有ロックを獲得することができる。
正解と解説
正解:イ XがA表内の特定行aに対して共有ロックを獲得しているときは、YはA表に対して専有ロックを獲得することができない。
ロックには表単位と行単位のように粒度の違いがあり、粒度をまたいだ整合も取られる。ある行が共有ロックされている状態でその表全体に専有ロックを許すと、ロック中の行まで書き換えられてしまうので許可されない。よってイが適切である。
選択肢ごとの解説
- アロックは行単位で管理されるので、別の行に対する専有ロックは互いに干渉せず獲得できる。
- イ正解。表内の1行が共有ロックされていれば、その表全体への専有ロックは獲得できない。
- ウ共有ロックと専有ロックは両立しないため、同じ表に対して同時には獲得できない。
- エ表全体が専有ロックされていれば、その中の個々の行に対する専有ロックも獲得できない。
同じ分野の他の問題
- DBMSにおいて、トランザクション間でデッドロックが発生していることを検出するために使用するものはどれか。2016年度 春期 午前II 問13
- トランザクションA〜Gの待ちグラフにおいて、永久待ちの状態になっているトランザクション全てを列挙したものはどれか。ここで…2024年度 秋期 午前II 問13
- 複数のバッチ処理を並行して動かすとき、デッドロックの発生をできるだけ回避したい。バッチ処理の設計ガイドラインのうち、適切…2022年度 秋期 午前II 問13
- t1〜t10の時刻でスケジュールされたトランザクションT1〜T4がある。時刻t10でT1がcommitを発行する直前の、…2019年度 春期 午前II 問10
- DBMSにおいて、デッドロックを検出するために使われるデータ構造はどれか。2018年度 春期 午前II 問16
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。