先决条件 – 可序列化的计划
等价的时间表:
调度是一种表示事务操作执行顺序的方式。根据与调度相关的不同属性(例如最终结果),两个调度的事务执行顺序可能是等效的。时间表的等效性大致分为以下三类 –
- 结果等价
- 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 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 。