12.2.3 并发调度的可串行性

2025-07-26 22:43:12 更新

数据库系统必须控制事务的并发执行以保证数据库处于一致性状态。




1

可串行化的调度(serializability schedule)

多个事务的并发执行是正确的,当且仅当其结果与某一次序串行执行它们时的结果相同

可串行性是并发事务正确性的准则

当且仅当某并发调度是可串行化的,才认为是正确调度。

2

冲突可串行化

冲突(conflict):当I和J是不同事务在相同数据项上操作的命令,且至少有一个是write命令时,则称I和J是冲突的。

若I和J分别访问不同数据项,则交换I和J的执行次序不会影响调度执行结果。

若I和J访问相同的数据项,则I和J的执行次序可能会影响调度执行结果。

等价调度:若I和J是调度S的两条连续命令,I和J分属不同事务且不冲突,则可以交换执行顺序得到新调度S*,称S和S*等价

冲突等价(conflict equivalent):如果调度S经过一系列非冲突命令交换成S*,则称S与S*是冲突等价的。

冲突可串行化(conflict serializable):若调度S与一个串行调度S*冲突等价,则S是冲突可串行化的。



冲突可串行化判定(环检测算法)

如果调度S的优先图中有环,则调度S是冲突不可串行化的;

如果图中无环,则调度S是冲突可串行化的。

步骤:首先需要构造有向图,然后调用环检测算法进行判定。