ホーム > データベーススペシャリスト試験 > 2014年
データベーススペシャリスト試験 2014年 午前2 問11
トランザクションの直列化可能性 (serializability)が保証されている状態の説明はどれか。
ア:2相コミットが可能であり, 複数のトランザクションを同時実行できる。
イ:隔離性水準が低い状態であり, トランザクション間の干渉が起こり得る。
ウ:複数のトランザクションが同時実行された結果と, 逐次実行された結果とが同じになる。(正解)
エ:複数のトランザクションが, 一つずつ順にスケジュールされて実行される。
解説
トランザクションの直列化可能性 (serializability)が保証されている状態の説明はどれか【午前2 解説】
要点まとめ
- 結論:直列化可能性とは、複数トランザクションの同時実行結果が逐次実行結果と同じになることを指します。
- 根拠:これにより、並行処理の整合性が保たれ、データベースの一貫性が保証されます。
- 差がつくポイント:直列化可能性は「結果の等価性」に注目し、単に順番通り実行することとは異なる点を理解しましょう。
正解の理由
選択肢ウは「複数のトランザクションが同時実行された結果と、逐次実行された結果とが同じになる」と述べています。これは直列化可能性の定義そのものであり、複数トランザクションの並行実行がデータの整合性を損なわず、あたかも一つずつ順に実行されたかのような結果を保証する状態を示しています。したがって、正解はウです。
よくある誤解
直列化可能性は単にトランザクションを順番に実行することではなく、並行実行の結果が順序実行と同じになることを意味します。混同しやすいので注意が必要です。
解法ステップ
- 直列化可能性の定義を確認する:「並行実行の結果が逐次実行と同じになる」こと。
- 選択肢の内容を直列化可能性の定義と照らし合わせる。
- 「逐次実行された結果と同じになる」と明言している選択肢を探す。
- それが選択肢ウであることを確認し、正解とする。
選択肢別の誤答解説
- ア: 2相コミットは分散トランザクションのコミット手法であり、直列化可能性の説明ではありません。
- イ: 隔離性水準が低いとトランザクション間の干渉が起こり得るため、直列化可能性は保証されません。
- ウ: 直列化可能性の定義に合致し、正解です。
- エ: トランザクションを一つずつ順に実行するのは直列実行であり、直列化可能性の「可能性」を示すものではありません。
補足コラム
直列化可能性はデータベースのトランザクション制御における最も強い隔離レベルの一つであり、データの一貫性を保つために重要です。実際のシステムでは性能とのトレードオフで、直列化可能性を保証しない隔離レベルも使われます。
FAQ
Q: 直列化可能性と直列実行は同じですか?
A: 直列実行はトランザクションを順番に実行することですが、直列化可能性は並行実行の結果が直列実行と同じになることを指します。
A: 直列実行はトランザクションを順番に実行することですが、直列化可能性は並行実行の結果が直列実行と同じになることを指します。
Q: 2相コミットは直列化可能性を保証しますか?
A: いいえ。2相コミットは分散トランザクションのコミット手順であり、直列化可能性とは直接関係ありません。
A: いいえ。2相コミットは分散トランザクションのコミット手順であり、直列化可能性とは直接関係ありません。
関連キーワード: トランザクション制御, 直列化可能性, データベース, 隔離性, 並行制御