检查给定调度(DBMS)的视图串行化


如果一个调度被视为等同于一个串行调度,则该调度具有视图串行化。如果满足以下三个规则,则调度是视图串行化的:

  • 规则 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 最初读取,然后该编号事务写入相同的数据。因此,我们保留所有事务组合。

规则 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>

结论

给定的调度是视图串行化的。

更新于: 2021-07-06

2K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告