修了試験 2021-12-12実施分 基本情報技術者試験 問28
データベースの排他制御におけるロック獲得の可能性のうち,適切なものはどれか。
正答1
解説
正解は1です。 データベースの排他制御で、共有ロックと専有ロックが同時に獲得できるかを問う問題です。 共有ロック(Sロック)は読取りのためのロックで、ほかのトランザクションの読取りは許可し、更新を禁止します。 専有ロック(Xロック)は更新のためのロックで、ほかのトランザクションの読取りも更新も禁止します。 【選択肢別解説】 1:○ 共有ロック同士はどちらも読取りだけなので、データの矛盾は起きません。 共有ロックが獲得されている資源に、別のトランザクションが共有ロックを獲得できます。 2:× 共有ロックが獲得されている資源は、ほかのトランザクションが読んでいる最中です。 ここで専有ロックを認めて更新すると読取り結果が不正確になるので、専有ロックは獲得できません。 3:× 専有ロックが獲得されている資源は、更新中です。 更新途中のデータを読ませないため、共有ロックも獲得できません。 4:× 専有ロックが獲得されている資源に、別のトランザクションが専有ロックを獲得することはできません。 同時に更新すると、データの不整合が起きるからです。 【ポイント】 4つの組合せのうち、同時に獲得できるのは「共有ロックと共有ロック」だけです。 専有ロックが関わる組合せは、すべて待ちになります。まとめて解く
修了試験 2021-12-12実施分を通しで解く(80問)→