この問題は本試験の過去問ではありません。当サイトが出題傾向の分析に基づいて作成したオリジナル問題です。
第3問
論点:トランザクション管理と排他制御
関係データベースのトランザクション管理に関する記述の正誤の組み合わせとして、最も適切なものを下記の解答群から選べ。 a 共有ロックをかけた資源に対しては、他の処理による読み取りは許されるが、書き込みは待たされる。 b コミットとは、処理が途中で失敗したときに、変更を全て取り消して開始前の状態に戻すことである。 c デッドロックとは、複数の処理が互いに相手の持つロックの解除を待ち合う状態のことである。 d ロールフォワードとは、未完了のトランザクションの更新を取り消して整合性を回復する処理である。
- ア a:正 b:正 c:正 d:誤
- イ a:正 b:誤 c:正 d:正
- ウ a:正 b:誤 c:正 d:誤
- エ a:正 b:誤 c:誤 d:誤
- オ a:誤 b:誤 c:正 d:誤
▼ 解答・解説を見る
正解:ウ
解答:ウ
トランザクション管理は「コミット/ロールバック」「共有ロック/専有ロック」「ロールフォワード/ロールバック」といった対になる用語のすり替えで問われる。用語と中身をペアで押さえる。
- a(○):共有ロック(読み取りロック)は、読むだけなら複数の処理が同時にかけられ、他者の読み取りは許すが書き込みは待たせる。正しい。なお、読み取りも書き込みも待たせるのは専有ロック(排他ロック)である。
- b(×):処理が途中で失敗したときに変更を全て取り消して開始前の状態に戻すのはロールバック。コミットは、処理が全部うまくいったので変更を確定してデータベースに反映することであり、説明が入れ替わっている。
- c(○):デッドロックとは、複数の処理が互いに相手の持つロックの解除を待ち合い、どちらも先へ進めなくなる膠着状態をいう。正しい。
- d(×):未完了のトランザクションの更新を取り消して整合性を回復するのはロールバック(後退復旧)。ロールフォワード(前進復旧)は、完了済みトランザクションの更新をログから再適用して復旧する処理であり、説明が入れ替わっている。
したがって a:正、b:誤、c:正、d:誤。よって ウ。
なぜこの論点を予想したか
過去19年の出題実績を論点別に集計すると、データベース〈第4章〉は延べ95回で19年すべてに出題があり、テキストも「ほぼ毎年2〜3問」とする。第4章の対応過去問表では、トランザクション管理はR02第7問(ACID特性)とH24第9問(排他制御・ロック/デッドロック)が挙がるにとどまり、R03〜R07の5年間は出題が確認できない。同章の近年の出題は正規化(R05・R06・R07)とSQL(R05第9問・R07第12問)に偏っており、第4章から複数問出る年にはトランザクション管理が補充される可能性が高い。