平成25年度 春期 データベーススペシャリスト試験 午前Ⅱ 問19
テクノロジ/データベーストランザクション管理の直列化可能スケジュールを説明したものはどれか。
出典:平成25年度 春期 データベーススペシャリスト試験 午前Ⅱ 問19
- アデッドロックの発生を最小限に抑えるために,可能な限りトランザクションを直列に実行するスケジュール
- イトランザクションの前後関係を考慮しながら,処理時間が最短になるようにトランザクションを直列に実行するスケジュール
- ウトランザクションを順番に実行した場合と同じ結果をもつように,並行実行するスケジュール
- エ読取り専用トランザクションは並行実行するが,更新を行うトランザクションは直列に実行するスケジュール
正解:ウ
解説
直列化可能スケジュール(serializable schedule)とは,複数のトランザクションを何らかの順序で1件ずつ逐次的(直列)に実行した場合と同じ結果が得られるように,それらのトランザクションを並行実行するスケジュールのことをいう。同時実行制御(ロックなど)の目的は,性能向上のためにトランザクションを並行実行しながらも,その実行結果が直列実行した場合と矛盾しないことを保証することにある。
選択肢ごとの解説
- ア誤り。デッドロックの発生を抑えるために可能な限り直列に実行するという方針は,実際の運用上の一つの選択肢ではあり得るが,直列化可能スケジュールという概念そのものの定義ではない。
- イ誤り。処理時間が最短になるようにトランザクションを直列に実行するという説明は,性能最適化に関する記述であり,直列化可能スケジュールの定義とは異なる。
- ウ正しい。トランザクションを何らかの順番で逐次的に実行した場合と同じ結果になるように,複数のトランザクションを並行実行するスケジュールが,直列化可能スケジュールの定義である。
- エ誤り。読取り専用トランザクションだけを並行実行し,更新を行うトランザクションを直列に実行するという方式は,直列化可能性を実現するための一つの具体的な実装方針ではあり得るが,直列化可能スケジュールそのものの定義ではない。