直列化可能性とは?ちょくれつかかのうせい
直列化可能性とは、複数のトランザクションを同時に走らせた結果が、それらを何らかの順序で1つずつ実行した結果のいずれかと一致する性質。同時実行制御が守るべき正しさの基準であり、これが保証されていれば、同時に走らせたことによるデータの矛盾は起きない。
最終更新:2026-10-06
この語が出る過去問を解く →背景
性能のために処理を同時に走らせると、互いの途中状態を読み書きして矛盾が生じる。かといって完全に1件ずつ順番に処理すれば安全だが遅すぎる。この対立を「順番に流したのと同じ結果になっていればよい」と結果の側で条件を定め、その範囲で並行を許す形に置き換えたのがこの基準。隔離水準を下げる判断のとき、何を捨てているのかを測る物差しにもなる。
具体例
在庫を引き当てるT1と、同じ商品を補充するT2を同時に流したとき、最終の在庫数が「T1→T2」または「T2→T1」で流した場合のどちらかと一致すれば直列化可能。両方が更新前の値を読んで書き戻し、片方の更新が消える結果は該当しない。
試験での引っ掛け
実際に開始・終了した順序どおりの結果である必要はなく、何らかの逐次順序と等価であればよい。結果の順序が実時間の順序と一致しないことを、それだけで誤りと判断しがちな点が問われる。
関連用語
出た過去問
出典:令和5年度 春期 ITサービスマネージャ試験 午前Ⅱ 問23(IPA)解説で登場
2相ロッキングプロトコルに従うトランザクションで発生する可能性のある現象はどれか。
正解:デッドロック
要点:2相ロックは直列化可能性を保証するが、デッドロックは防げない
2相ロッキングプロトコルは、ロックを取得する成長相と解放する縮退相に分け、いったん解放を始めたら新たなロックを取らない方式である。これにより直列化可能性(順番に実行したのと同じ結果になる性質)が保証され、ロストアップデートやノンリピータブルリードといった不整合は防げる。さらにロックをコミットまで保持する形(厳格な2相ロッキング)にすれば、ダーティリードも防げる。しかし複数トランザクションが互いの保持するロックを待ち合う状態は避けられず、デッドロックは発生し得る。
出典:令和7年度 春期 ITサービスマネージャ試験 午前Ⅱ 問23(IPA)解説で登場
DBMSにおいて、複数のトランザクション処理プログラムが同一データベースを同時に更新する場合、論理的な矛盾を生じさせないために用いる技法はどれか。
正解:排他制御
要点:同時更新による矛盾を防ぐのはロックによる排他制御
複数のトランザクションが同一データを同時に更新すると、更新の消失などの矛盾が生じ得る。これを防ぐのが排他制御で、対象データにロックをかけて他のトランザクションからの競合するアクセスを待たせることで、同時実行しても直列に実行したのと同じ結果(直列化可能性)を保証する。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。