什么时候我们说调度是冲突等价的(DBMS)?


如果两个调度的任何两个冲突操作的顺序相同,则称这两个调度是冲突等价的。

此外,如果可以通过交换非冲突指令的执行顺序从调度 S 获得串行调度 S',则并发调度 S 与串行调度 S' 冲突等价。

示例 1

即使调度 S1 使数据库保持一致状态,我们也无法将其转换为串行调度,因此我们得出结论,该调度与任何串行调度都不冲突等价。

因此,我们不仅要考虑读写操作,还要考虑中间操作,这将导致一种新的可串行化形式,称为视图可串行化。

因此,通过查看上述事务,S1 是 S2 的冲突等价。

示例 2

如果两个调度的任何两个冲突操作的顺序相同,则称这两个调度是冲突等价的。

冲突操作的先决条件是:

  • 两个冲突操作必须属于两个不同的事务。

  • 它们必须作用于同一个数据库或变量,例如 x。

  • 至少有一个操作必须是“写”。例如,操作应该是读-写;写-写;写-读

调度 1调度 2
R1(x)R1(y)
W2(x)R1(x)
R1(y)W2(x)

在此示例中,

  • R(x) - 对变量 x 的读取操作

  • W(x) - 对变量 x 的写入操作

  • R1W2 是冲突操作。由于两个调度中的顺序相同。

更新于: 2021-07-06

5K+ 浏览量

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告