检查两个计划是否视图相等(DBMS)
有两种类型的可串行化,如下所示-
查看可序列化性
如果视图等同于串行调度,则调度是视图可串行化的。
它遵循的规则如下-
T1正在读取A的初始值,然后T2也读取A的初始值。
T1是T2写入的读取值,然后T2也读取T1写入的值。
T1是写终值,然后T2也有写操作作为终值。
冲突可串行化
它以与某些串行执行相同的方式对任何冲突操作进行排序。如果一对操作对同一数据项进行操作,并且其中一个是写操作,则称这对操作发生冲突。
这意味着,
Readi(x)readj(x)-非冲突读写操作
Readi(x)writej(x)-冲突读写操作。
Writei(x)readj(x)-冲突读写操作。
Writei(x)writej(x)-冲突写-写操作。
现在让我们找出时间表是否相等。
调度是视图可串行化的,如果它是视图等效于串行调度。如果满足以下三个规则,时间表是视图可序列化的-
规则1-如果Ti最初读取数据,则在此Tj写入相同数据之后,在给定的时间表中。在事务组合(读写操作)中必须遵循此顺序。
规则2-如果Ti最初写入数据,则在此Tj之后,在给定的时间表中读取相同的数据。在事务组合(写读操作)中必须遵循这个顺序。
规则3-如果Ti写入数据,则在此之后Tj最终写入数据。在事务组合(写-写操作)中必须遵循这个顺序。
示例
R1(X)W2(X)W1(X),创建交易的所有可能组合。我们有2个交易,所以组合是-
规则1-T1最初读取,在此T2写入相同数据后,这意味着事务顺序必须是“T1后跟T2”。因此,删除以下组合,其中“T1后面没有T2”,即
规则2-T2最初写入,此后没有事务读取相同的数据。所以我们保留所有交易组合,这意味着规则2不会删除任何组合。
Rule3-T1最后写入数据,这意味着T1必须最后出现,因此删除以下“t1最后没有出现”的组合。
因此,没有任何组合可以满足视图的可序列化性。
结论
给定的时间表不可查看序列化。