检查给定调度的视图可串行化性(DBMS)
dbmsdatabasebig data analytics更新于 2026/1/13 1:22:17
如果一个调度被视为等同于串行调度,则该调度具有视图可串行化性。如果满足以下三个规则,则该调度是视图可串行化的 −
规则 1 − 如果 Ti 先读取数据,则 Tj 随后在给定调度中写入相同的数据。事务组合(读写操作)必须遵循此顺序。
规则 2 − 如果 Ti 先写入数据,则 Tj 随后在给定调度中读取相同的数据。事务组合(写入读操作)必须遵循此顺序。
规则 3 − 如果 Ti 写入数据,则 Tj 随后最终写入数据。在事务组合(写-写操作)中必须遵循此顺序。
问题
检查调度 W3(X)、R2(X)、W2(Y)、R1(Z)、W3(Y)、W1(Y) 的视图可串行化性。
解决方案
我们有三个事务,因此事务组合如下 −
<T1, T2, T3>
<T1, T3, T2>
<T2, T1, T3>
<T2, T3, T1>
<T3, T1, T2>
<T3, T2, T1>
这里,
规则 1 − T2 先读取数据,之后 T2 写入相同的数据。因此,我们保留所有交易组合。
规则 2 − T3 先写入数据,之后 T1 读取相同的数据 Z,这意味着交易顺序必须是"t3 后接 T1"。因此,删除以下"T3 不允许 T1"的组合,即 T1 先于 T3 发生。
<T1, T2, T3>
<T1, T3, T2>
<T2, T1, T3>
规则 3 − T1 最后写入数据,这意味着 T1 必须出现在最后。因此,请删除以下"T1 未出现在最后"的组合。
<T3, T1, T2>
因此,满足视图可序列化性要求的剩余两个组合是 −
<T2, T3, T1>
<T3, T2, T1>
结论
给定的调度是视图可序列化的。

