📜  DBMS中的结果可序列化

📅  最后修改于: 2021-08-24 04:40:43             🧑  作者: 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和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不是结果等效时间表