基本情報技術者試験 - 令和6年12月修了 - 問22
ロックの両立性に関する記述のうち,適切なものはどれか。
| ア | トランザクションT1が共有ロックを獲得している資源に対して,トランザクションT2は共有ロックと専有ロックのどちらも獲得することができる。 |
|---|---|
| イ | トランザクションT1,が共有ロックを獲得している資源に対して,トランザクションT2は共有ロックを獲得することはできるが,専有ロックを獲得することはできない。 |
| ウ | トランザクションT1,が専有ロックを獲得している資源に対して,トランザクションT2は専有ロックと共有ロックのどちらも獲得することができる。 |
| エ | トランザクションT1,が専有ロックを獲得している資源に対して,トランザクションT2は専有ロックを獲得することはできるが,共有ロックを獲得することはできない。 |
答え : イ
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
「ロック」とは,複数の処理(トランザクション)が同時に同じデータを操作しようとしたときに,データの矛盾が起きないように,一時的にそのデータへのアクセスを制限する仕組みです。ロックには大きく分けて,複数のトランザクションが同時に取得できる「共有ロック」(主にデータを読むためのロック)と,1つのトランザクションしか取得できない「専有ロック」あるいは「排他ロック」(主にデータを書き換えるためのロック)の2種類があります。
「両立性」とは,あるロックがすでに掛けられている資源に対して,別のトランザクションがどのようなロックを追加で取得できるかという相性のことです。共有ロックがすでに掛けられている資源に対しては,他のトランザクションはデータを読むだけの共有ロックであれば追加で取得できますが,データを書き換える専有ロックは取得できません。
これは,複数人が同時に閲覧することは問題なくても,誰かが閲覧している最中に別の誰かが書き換えてしまうと矛盾が生じるためです。従って,正解は「イ」です。「ア」「ウ」「エ」は,いずれも共有ロックと専有ロックの組み合わせの許可・不許可の関係を取り違えており,実際のロックの両立性のルールとは異なります。
分野 : テクノロジ系 › 技術要素 › データベース › トランザクション処理
解説 :
「ロック」とは,複数の処理(トランザクション)が同時に同じデータを操作しようとしたときに,データの矛盾が起きないように,一時的にそのデータへのアクセスを制限する仕組みです。ロックには大きく分けて,複数のトランザクションが同時に取得できる「共有ロック」(主にデータを読むためのロック)と,1つのトランザクションしか取得できない「専有ロック」あるいは「排他ロック」(主にデータを書き換えるためのロック)の2種類があります。
「両立性」とは,あるロックがすでに掛けられている資源に対して,別のトランザクションがどのようなロックを追加で取得できるかという相性のことです。共有ロックがすでに掛けられている資源に対しては,他のトランザクションはデータを読むだけの共有ロックであれば追加で取得できますが,データを書き換える専有ロックは取得できません。
これは,複数人が同時に閲覧することは問題なくても,誰かが閲覧している最中に別の誰かが書き換えてしまうと矛盾が生じるためです。従って,正解は「イ」です。「ア」「ウ」「エ」は,いずれも共有ロックと専有ロックの組み合わせの許可・不許可の関係を取り違えており,実際のロックの両立性のルールとは異なります。