📜  DBMS冲突可序列化时间表

📅  最后修改于: 2020-12-12 07:34:37             🧑  作者: Mango

冲突可序列化时间表

  • 如果计划在交换无冲突的操作之后可以转换为串行计划,则该计划称为冲突可序列化性。
  • 如果该调度与串行调度冲突,则该调度将是可序列化的冲突。

行动冲突

如果所有条件都满足,则这两个操作将发生冲突:

  • 两者都属于单独的交易。
  • 它们具有相同的数据项。
  • 它们至少包含一个写操作。

例:

仅当S1和S2在逻辑上相等时才可以交换。

在此,S1 = S2。这意味着它是非冲突的。

在此,S1≠S2。这意味着这是冲突。

冲突当量

在发生冲突的情况下,可以通过交换非冲突操作将一个转换为另一个。在给定的示例中,S2是与S1等效的冲突(可以通过交换非冲突操作将S1转换为S2)。

当且仅当以下两种情况被称为两个时间表是等效的:

  • 它们包含同一组事务。
  • 如果每对冲突操作都以相同的方式排序。

例:

调度表S2是串行调度表,因为在这种情况下,T1的所有操作都在开始任何T2操作之前执行。通过交换S1的无冲突操作,可以将日程表S1转换为串行日程表。

交换无冲突的操作之后,日程表S1变为:

T1 T2
Read(A)
Write(A)
Read(B)
Write(B)

Read(A)
Write(A)
Read(B)
Write(B)

由于S1是冲突可序列化的。