前提条件–可序列化时间表
时间表的等效性:
进度表是一种表示执行事务操作的顺序的方式。基于与进度表相关的不同属性(例如最终结果),两个进度表的事务执行顺序可能是等效的。时间表的等效性大致分为以下三类–
- 结果等效
- DBMS中的冲突可序列化
- 查看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不是结果等效时间表。