📜  DBMS 中的结果序列化

📅  最后修改于: 2021-09-09 10:20:20             🧑  作者: Mango

先决条件 – 可序列化的计划

等价的时间表:
调度是一种表示事务操作执行顺序的方式。根据与调度相关的不同属性(例如最终结果),两个调度的事务执行顺序可能是等效的。时间表的等效性大致分为以下三类 –

  1. 结果等价
  2. DBMS 中的冲突可串行化
  3. 查看 DBMS 中的可序列化性

DBMS 中的结果序列化:
它也称为结果等效计划。
如果两个调度 S1 和 S2 产生相同的最终数据库状态,则它们被称为结果等效,换句话说,它们在执行后必须产生相同的结果。这种类型的等价性最不重要,因为两个调度可能对某些操作集产生相同的结果,而对其他操作集产生不同的结果。

示例 1:
让我们考虑以下调度 S1 和 S2,并检查 X 和 Y 的初始值分别为 2 和 5 的结果等价性。

附表 S1 –

T1 T2
R(X)
X=X+5
W(X)
R(Y)
Y=Y+5
W(Y)
R(X)
X=X*3
W(X)

附表 S2 –

T1 T2
R(X)
X=X+5
W(X)
R(X)
X=X*3
W(X)
R(Y)
Y=Y+5
W(Y)

在上述两个时间表中,将 X 和 Y 分别替换为 2 和 5 的最终值是X=21 AND Y=10
因此,S1 和 S2 是结果等效计划。

示例 2:
让我们考虑以下调度 S1 和 S2,并检查 X 和 Y 的初始值分别为 3 和 6 的结果等价性,

附表 S1 –

T1 T2
R(X)
X=X+1
W(X)
R(Y)
Y=Y*2
W(Y)
R(X)
X=X*3
W(X)

附表 S2 –

T1 T2
R(X)
X=X+1
W(X)
R(Y)
Y=Y*2
W(Y)

在上述两个时间表中,将 X 和 Y 分别替换为 3 和 6 的最终值是——

  • 对于 S1,X = 12 和 Y = 12
  • 对于 S2,X = 4 和 Y = 12

两个调度完成调度后的最终值是不同的。这是因为它们都有不同的操作集。因此, S1 和 S2不是 Result Equivalent Schedules