DBMSのトランザクション管理に関する問題【午前2 解説】
要点まとめ
- 結論:同時実行制御の目的は、データベースの一貫性を保ちつつ複数トランザクションを並行処理することです。
- 根拠:トランザクション管理はACID特性を維持し、整合性を損なわずに効率的な処理を実現します。
- 差がつくポイント:ロック方式や隔離レベルの理解、ロックの粒度の意味を正確に把握することが重要です。
正解の理由
選択肢エは「同時実行制御の目的は、データベースの一貫性を保ちながら複数のトランザクションを並行に処理すること」と述べています。これはトランザクション管理の基本的な目的であり、ACID特性の中でも特に一貫性(Consistency)と独立性(Isolation)を維持しつつ、システムのスループットを高めるために不可欠です。したがって正解です。
よくある誤解
2相ロック方式は分散型だけでなく集中型でも使われます。ロックの粒度は「時間の長さ」ではなく「ロック対象の範囲」を指します。隔離性を下げるとスループットは通常向上します。
解法ステップ
- トランザクション管理の目的を確認する(ACID特性の理解)。
- 各選択肢の用語の意味を正確に把握する(2相ロック、ロック粒度、隔離性水準など)。
- 選択肢の記述が正しいかどうかを根拠に基づいて判断する。
- 一貫性と並行処理の関係を理解し、最も適切な選択肢を選ぶ。
選択肢別の誤答解説
- ア:2相ロック方式は分散型だけでなく集中型データベースでも広く使われるため誤りです。
- イ:ロックの粒度は「ロック対象の範囲(例:行単位、テーブル単位)」を指し、時間の長さではありません。
- ウ:隔離性水準を下げる(例:Read Uncommitted)とスループットは通常向上し、低下はしません。
- エ:同時実行制御の目的を正しく述べており、正解です。
補足コラム
トランザクションの同時実行制御は、データの整合性を保つためにロックやタイムスタンプ方式などが用いられます。2相ロック方式は、トランザクションのロック取得と解放を2段階に分けることでデッドロックを防止し、一貫性を保証します。また、ロックの粒度が細かいほど競合は減りますが、管理コストが増加します。隔離性水準は4段階あり、低いほどスループットは向上しますが、一貫性のリスクも高まります。
FAQ
Q: 2相ロック方式はどのようなデータベースで使われますか?
A: 集中型・分散型の両方で使われ、トランザクションの整合性を保つための基本的な制御方式です。
Q: ロックの粒度とは何ですか?
A: ロックの粒度はロック対象の範囲を指し、細かいほど競合が減りスループットが向上しますが管理コストが増えます。
Q: 隔離性水準を下げるとトランザクションのスループットはどうなりますか?
A: 通常はスループットが向上しますが、一貫性のリスクが増加します。
関連キーワード: トランザクション管理、同時実行制御、2相ロック方式、ロック粒度、隔離性水準、ACID特性