直列化可能性とは?ちょくれつかかのうせい
直列化可能性とは、並行に実行した複数のトランザクションの結果が、それらを何らかの順序で1つずつ実行した結果と一致する性質。同時実行制御が守るべき正しさの基準であり、SQLの隔離性水準ではSERIALIZABLEが対応する。判定は先行グラフに閉路が無いことで行う。
最終更新:2026-10-06
この語が出る過去問を解く →背景
待たせなければ速いが、制御しなければ更新の消失や矛盾した読取りが起きる。そこで「速さ」と「正しさ」の折り合いを付けるために、逐次実行と同じ結果になるなら正しいと定義し直した。この基準があるおかげで、2相ロックのような具体的な方式を「直列化可能性を保証するか」で評価できる。隔離性水準を下げる設計判断も、どこまで崩してよいかをこの基準からの距離として説明できる。
具体例
在庫表の同じ行に対して、T1が受注引当で減算し、T2が返品で加算する。両者を同時に走らせた結果の在庫数が、T1→T2またはT2→T1の逐次実行と同じになれば直列化可能である。判定は、競合する操作の順序を辺として先行グラフを描き、閉路が無いかを見る。
試験での引っ掛け
「実際に開始・終了した順どおりになること」ではない。何らかの逐次順序と等価であればよく、時計上の順序と一致する必要はない。また2相ロックを守れば直列化可能だが、逆は成り立たない(直列化可能でも2相ロックに従わないスケジュールは存在する)。2相ロックはデッドロックを防いでもくれない。
関連用語
出た過去問
出典:平成29年度 春期 データベーススペシャリスト試験 午前Ⅱ 問15(IPA)
2相ロック方式に従うトランザクションに関する記述のうち、適切なものはどれか。
正解:トランザクションの競合直列可能性が保証される。
要点:2相ロックはロック獲得と解放の相を分け直列化可能性を保証
2相ロックは、ロックを獲得していく成長相と解放していく縮退相を分け、いったんロックを解放したら以後は新たなロックを獲得しない規約である。これにより並行実行の結果が何らかの直列実行と同じになること(競合直列可能性)が保証される。
出典:平成30年度 春期 データベーススペシャリスト試験 午前Ⅱ 問11(IPA)
トランザクションの直列化可能性(serializability)の説明はどれか。
正解:複数のトランザクションが同時実行された結果と、逐次実行された結果とが同じになる。
要点:同時実行の結果が逐次実行と一致する性質が直列化可能性
直列化可能性とは、複数のトランザクションを同時実行した結果が、それらを何らかの順序で1つずつ実行した場合の結果と一致する性質である。実際には並行して動かしながら、結果としては逐次実行と同じ正しさを保証する点が要点になる。
出典:令和2年度 10月試験 データベーススペシャリスト試験 午前Ⅱ 問11(IPA)
トランザクションの直列化可能性(serializability)の説明はどれか。
正解:複数のトランザクションが同時実行された結果と、逐次実行された結果とが同じになる。
要点:同時実行の結果が逐次実行と等価なら直列化可能
直列化可能性とは、複数のトランザクションを同時に実行した結果が、それらを何らかの順序で1つずつ実行した場合の結果と一致することをいう。同時実行の効率を保ちながら整合性を守るための基準であり、実際に順番に実行することを求めるものではない。したがってエが正しい。
出典:令和5年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問17(IPA)
二つのトランザクションT1とT2を並列に実行した結果が、T1の完了後にT2を実行した結果、又はT2の完了後にT1を実行した結果と等しい場合、このトランザクション…
正解:直列化可能性
要点:並行実行の結果が逐次実行と等価なら直列化可能
複数のトランザクションを並行実行した結果が、それらを何らかの順序で1つずつ実行した場合の結果と一致することを直列化可能性という。同時実行の性能を確保しつつ整合性を保つための基準であり、エが正しい。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。