×
データベース
直列化可能性を達成するために、データベース管理システム(DBMS)は「排他制御(同時実行制御)」を行います。最も代表的なプロトコルが「2相ロック(2-Phase Locking:2PL)」です。これは、トランザクション中に必要なロックを獲得していく第1相(成長相)と、一度ロックを解放し始めたら二度と新たなロックを獲得しない第2相(縮退相)に処理を分けるルールです。2相ロックに従うことで、生成される実行スケジュールは必ず直列化可能になることが数学的に証明されています。また、トランザクションの独立性(アイソレーション)の度合いを示す「トランザクション隔離レベル」において、「SERIALIZABLE(直列化可能)」は最も厳しいレベルに位置付けられており、データの不整合(ダーティリード、ノンリピータブルリード、ファントムリード)をすべて完全に防ぎますが、並行処理の効率は最も低下します。

試験でのポイント