检查给定调度的视图可串行化性(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>

结论

给定的调度是视图可序列化的。


相关文章