基本情報技術者試験 - 令和5年12月修了 - 問22
| ア | あるトランザクションが共有ロックを獲得している資源に対して,別のトランザクションが共有ロックを獲得することは可能である。 |
|---|---|
| イ | あるトランザクションが共有ロックを獲得している資源に対して,別のトランザクションが専有ロックを獲得することは可能である。 |
| ウ | あるトランザクションが専有ロックを獲得している資源に対して,別のトランザクションが共有ロックを獲得することは可能である。 |
| エ | あるトランザクションが専有ロックを獲得している資源に対して,別のトランザクションが専有ロックを獲得することは可能である。 |
答え : ア
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
データベースの排他制御では,複数のトランザクション(一連の処理のまとまり)が同時に同じデータにアクセスしようとする際に,データの整合性を保つために「ロック」という仕組みを使います。ロックには主に,複数のトランザクションが同時に取得できる「共有ロック」と,一つのトランザクションだけが取得できる「専有ロック」(排他ロック)があります。
共有ロックは,データを参照するだけの処理(読み取り)を想定したもので,複数のトランザクションが同時にデータを読み取ることは問題にならないため,ある資源に共有ロックがかかっていても,別のトランザクションがさらに共有ロックを獲得することは可能です。従って,正解は「ア」です。
「イ」は,共有ロックがかかっている資源に対して別のトランザクションが専有ロックを獲得できるとしていますが,専有ロックはデータの更新を想定したものであり,他のトランザクションが読み取り中のデータを同時に更新すると不整合が生じるため,共有ロックと専有ロックは同時に成立しません。
「ウ」と「エ」も同様に,専有ロックがかかっている資源に対して,別のトランザクションが共有ロックや専有ロックを獲得できるとしていますが,専有ロックは他のいかなるロックとも同時に成立しないため,いずれも誤りです。
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
データベースの排他制御では,複数のトランザクション(一連の処理のまとまり)が同時に同じデータにアクセスしようとする際に,データの整合性を保つために「ロック」という仕組みを使います。ロックには主に,複数のトランザクションが同時に取得できる「共有ロック」と,一つのトランザクションだけが取得できる「専有ロック」(排他ロック)があります。
共有ロックは,データを参照するだけの処理(読み取り)を想定したもので,複数のトランザクションが同時にデータを読み取ることは問題にならないため,ある資源に共有ロックがかかっていても,別のトランザクションがさらに共有ロックを獲得することは可能です。従って,正解は「ア」です。
「イ」は,共有ロックがかかっている資源に対して別のトランザクションが専有ロックを獲得できるとしていますが,専有ロックはデータの更新を想定したものであり,他のトランザクションが読み取り中のデータを同時に更新すると不整合が生じるため,共有ロックと専有ロックは同時に成立しません。
「ウ」と「エ」も同様に,専有ロックがかかっている資源に対して,別のトランザクションが共有ロックや専有ロックを獲得できるとしていますが,専有ロックは他のいかなるロックとも同時に成立しないため,いずれも誤りです。