个性化阅读
专注于IT技术分析

DBMS视图可序列化

  • 如果时间表与序列时间表等效, 则它将查看可序列化的时间表。
  • 如果时间表可序列化冲突, 那么它将可视图序列化。
  • 与可序列化不冲突的可序列化视图包含盲写。

查看等效

如果两个计划S1和S2满足以下条件, 则它们被视为等效视图:

1.初始读取

两个时间表的初始读取必须相同。假设有两个时间表S1和S2。在计划S1中, 如果事务T1正在读取数据项A, 则在S2中, 事务T1也应读取A。

DBMS视图可序列化

上面两个时间表是等效的视图, 因为S1中的初始读取操作由T1完成, 而S2中的初始读取操作也由T1完成。

2.更新阅读

在时间表S1中, 如果Ti正在读取由Tj更新的A, 那么在S2中, Ti也应读取由Tj更新的A。

DBMS视图可序列化

上面的两个时间表是不相等的, 因为在S1中, T3读取由T2更新的A, 在S2中, T3读取由T1更新的A。

3.最终写

两个计划之间的最终写入必须相同。在时间表S1中, 如果事务T1最后更新了A, 则在S2中, 最后的写操作也应由T1完成。

DBMS视图可序列化

由于S1中的最终写入操作由T3完成, 而S2中的最终写入操作也由T3完成, 因此以上两个时间表的视图相等。

例:

DBMS视图可序列化

附表S

有3笔交易, 可能的时间表总数

= 3! = 6
S1 = <T1 T2 T3>
S2 = <T1 T3 T2>
S3 = <T2 T3 T1>
S4 = <T2 T1 T3>
S5 = <T3 T1 T2>
S6 = <T3 T2 T1>

采取第一时间表S1:

DBMS视图可序列化

附表S1

步骤1:对数据项进行最终更新

在计划S和S1中, 没有读取, 只有初始读取, 这就是为什么我们不需要检查该条件的原因。

步骤2:初始读取

S中的初始读取操作由T1完成, 而S1中的初始读取操作也由T1完成。

步骤3:最终写入

S中的最终写操作由T3完成, 而S1中的最终写操作也由T3完成。因此, S和S1是等效视图。

第一个时间表S1满足所有三个条件, 因此我们不需要检查另一个时间表。

因此, 查看等效的串行时间表是:

T1    →      T2    →    T3
赞(0)
未经允许不得转载:srcmini » DBMS视图可序列化

评论 抢沙发

评论前必须登录!