トランザクションの直列化可能性(serializability)の説明はどれか【午前2 解説】
要点まとめ
- 結論:直列化可能性とは、複数トランザクションの同時実行結果が逐次実行と同じになる性質です。
- 根拠:これにより、並行処理の整合性が保たれ、データベースの一貫性が維持されます。
- 差がつくポイント:直列化可能性は単なる逐次実行ではなく、同時実行の結果が逐次実行と等価であることを理解することが重要です。
正解の理由
選択肢エは「複数のトランザクションが同時実行された結果と、逐次実行された結果とが同じになる」と述べています。
これは直列化可能性の定義そのものであり、複数トランザクションの並行実行がデータの整合性を損なわず、逐次実行と同等の結果を保証することを意味します。
したがって、エが正解です。
よくある誤解
直列化可能性は単にトランザクションを順番に実行することではなく、同時実行の結果が逐次実行と同じになることを指します。
また、2相コミットや隔離性水準の高さとは直接の関係がありません。
解法ステップ
- 問題文のキーワード「直列化可能性(serializability)」の意味を確認する。
- 直列化可能性は「同時実行の結果が逐次実行と同じになること」と理解する。
- 各選択肢を直列化可能性の定義と照らし合わせる。
- 定義に合致する選択肢を選ぶ。
選択肢別の誤答解説
- ア: 2相コミットは分散トランザクションのコミット手法であり、直列化可能性の説明ではありません。
- イ: 隔離性水準が低い状態はトランザクション間の干渉が起こる可能性があり、直列化可能性とは逆の状態です。
- ウ: トランザクションを一つずつ順に実行するのは逐次実行であり、直列化可能性の「同時実行の結果が逐次実行と同じ」という意味とは異なります。
- エ: 同時実行の結果が逐次実行と同じになることを示し、直列化可能性の正しい説明です。
補足コラム
直列化可能性はデータベースの並行制御における最も強い整合性保証の一つです。
これを実現するためにロック制御やタイムスタンプ制御などの技術が用いられます。
また、隔離性の最高レベルである「直列化可能隔離レベル」はこの概念に基づいています。
FAQ
Q: 直列化可能性と逐次実行はどう違いますか?
A: 逐次実行はトランザクションを一つずつ順番に実行することですが、直列化可能性は同時実行の結果が逐次実行と同じになることを意味します。
Q: 2相コミットは直列化可能性と関係ありますか?
A: 2相コミットは分散トランザクションのコミット手法であり、直列化可能性の保証とは直接関係ありません。
関連キーワード: トランザクション、直列化可能性、並行制御、データベース整合性、隔離性、2相コミット