平成25年度 春期 午前 問30
データベース
排他制御のロック獲得の可能性
データベースの排他制御のロック獲得の可能性のうち,適切なものはどれか。
- アあるトランザクションが共有ロックを獲得している資源に対して,別のトランザクションが共有ロックを獲得することは可能である。
- イあるトランザクションが共有ロックを獲得している資源に対して,別のトランザクションが専有ロックを獲得することは可能である。
- ウあるトランザクションが専有ロックを獲得している資源に対して,別のトランザクションが共有ロックを獲得することは可能である。
- エあるトランザクションが専有ロックを獲得している資源に対して,別のトランザクションが専有ロックを獲得することは可能である。
答えと解説を見る
✓ これが正解アあるトランザクションが共有ロックを獲得している資源に対して,別のトランザクションが共有ロックを獲得することは可能である。
解説
読むための共有ロックどうしだけが同時に成り立ちます。
排他制御で使う二種類のロックは、目的が違います。共有ロックは値を読むために掛けるもので、同じ資源を同時に何人が読んでも互いの邪魔になりません。専有ロックは値を書き換えるために掛けるもので、書き換えの途中にある中途半端な状態を他へ見せないよう、あとから来たトランザクションを待たせます。先に取ったものとあとから取ろうとするものの組合せは全部で四通りあり、表に並べると成り立つのは一通りだけです。判定の軸は一つで、その組合せに書き換えの側が一方でも混じっているかどうかです。混じっていれば、あとから来たほうは相手が終わるまで待つことになります。混じっていない組合せ、つまり読む者どうしだけが同時に進めます。
ほかの選択肢はなぜ違うのか
- イあるトランザクションが共有ロックを獲得し…:誰かが値を読んでいる最中に書換えを始めれば、読んでいる側は途中で内容の変わったデータを受け取ってしまいます。この組合せでは、あとから来たほうが待たされます。
- ウあるトランザクションが専有ロックを獲得し…:書換えの途中にある確定していない内容を他が読むことになり、正しくない値が外へ出てしまいます。書き終わるまで、読もうとする側は待つことになります。
- エあるトランザクションが専有ロックを獲得し…:二つの処理が同じ資源を同時に書き換えれば、あとから書いたほうが先の結果を上書きして消してしまいます。四つの組合せの中で最も強く互いを排除しあう形です。
この問題の用語
- 排他制御同じデータを同時に更新しても、矛盾が起きないようにする仕組みです。先の処理が終わるまで、後の処理を待たせて防ぎます。
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
- データベースたくさんのデータを決まった形で貯め、探したり書き換えたりできるようにした仕組み。多くの人が同時に使うことを前提にしています。
出典:平成25年度 春期 基本情報技術者試験 午前 問30
同じ用語が出る問題
- 令和6年度 科目A 問7:原子性に関する問題(トランザクション)
- 令和5年度 科目A 問7:ACIDに関する問題(トランザクション)
- 平成29年度 春期 午前 問28(排他制御)
- 平成28年度 春期 午前 問30:トランザクションに関する問題(排他制御)
- 平成24年度 春期 午前 問33:DBMSの排他制御に関する記述(排他制御)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)