<テーマ:RDBMSのロック>
正解はこちら
解答:イ
[基礎知識・用語のまとめ]
RDBMSのロック・・・共有ロックは、データ参照時に獲得するロックです。共有ロック中に他のトランザクションが共有ロックを獲得することは可能ですが、専有ロックは獲得できません。専有ロックは、データ更新時に獲得するロックで、専有ロック中はすべて排他状態にあります。
[解法]
それぞれの選択肢を確認していくと以下のようになります。
ア→適切ではありません。「特定行aに対して」とあり、Xが共有ロックを獲得している行aとYが専有ロックを獲得したい行bとは行が違うので獲得は可能であるはずです。
イ→適切な記述です。「XがA表内の特定行aに対して共有ロックを獲得している」ので、YがA表(全体)に対して専有ロックを獲得することはできません。
ウ→適切ではありません。XがすでにA表に対して共有ロックを獲得しているので、YがA表に対して専有ロックを獲得することはできません。
エ→適切ではありません。XがA表に対して専有ロックを獲得しているので、YはA表に対しt共有ロックも専有ロックも獲得できず、特定行aに対しても専有ロックを獲得することはできません。
したがって、適切な記述は、選択肢「イ」になります。
[参考]
データベース全体のように広い範囲をいっぺんにロックすることを「ロック粒度が粗い」あるいは「ロック粒度が大きい」といい、逆に、レコード単位のように小さな範囲だけロックすることを「ロック粒度が細かい」あるいは「ロック粒度が小さい」という、、、らしい。
利用させていただきました素材へのリンク
うさちゃこちゃんねる様 https://www.youtube.com/channel/UCQcDdg4W6r5OfcB1JTcpABw
ここまで読んでくれてありがとう!!
感謝!
コメント