ACID特性の一貫性や独立性を保つための機能に、排他制御があります。皆さんが日頃、表計算ソフトなどによってファイルを操作するとき、誰かが開いていると、読み取り専用でしか開けないと思います。これは、複数の人で同じデータを更新すると、不整合が起きるからです。そこで、誰がデータを操作しているときに、他の人のデータ操作を制限する仕組みがロックです。ロックには、
共有ロックと専有ロックがあります。

専有ロック
文字通り、一人でロックを専有します。ロックされている間は、他の人が書き込むことはもちろん、読むこともできません。複数人による操作でデータの不整合を無くすために、データに書き込みをする場合は、専有ロックがかかります。

共有ロック
データを読むときに使用します。複数人が同時にロックをかけることができます(つまり、ロックを共有できるので、「共有ロック」と言います)。

応用情報技術者試験を勉強する成子 

読むだけなのにロックをかけるのはなぜですか?




他の人にデータを読んでいることを伝えるためです。
こうすることで、専有ロックをかけられてしまう(=つまり、読めなくなる)ことを防ぎます。
ロック
共有ロック中は、他のトランザクションからの共有ロックのみが可能です。専有ロック中は、他のトランザクションからの一切のロックができません。
その関係を表にすると、以下になります。

         他のTRからの共有ロック   他のTRからの専有ロック
共有ロック中       ◎               ×
専有ロック中         ×             ×
※TR=トランザクション

過去問を見てみましょう。
H25春AP午前
問31 トランザクションの同時実行制御に用いられるロックの動作に関する記述のうち,適切なものはどれか。

ア 共有ロック獲得済の資源に対して,別のトランザクションからの新たな共有ロックの獲得を認める。
イ 共有ロック獲得済の資源に対して,別のトランザクションからの新たな専有ロックの獲得を認める。
ウ 専有ロック獲得済の資源に対して,別のトランザクションからの新たな共有ロックの獲得を認める。
工 専有ロック獲得済の資源に対して,別のトランザクションからの新たな専有ロックの獲得を認める。

正解は、アです。

スポンサードリンク