在DBMS中,严格的计划是否始终可序列化?
如果答案是否定的,那么请提供一个严格的时间表示例,该时间表不可序列化。
答案 0 :(得分:3)
(对于以下内容,我假设冲突可序列化。)
不,严格的时间表并不总是可序列化的。以下调度是严格的(在提交之前不读取或覆盖数据项),但不可序列化(有两个冲突对:r_1[x] 和 w_2[x] & w_2[x] 和 w_1[x],但是它们的顺序不同)。下标1的操作属于事务T_1,下标2的操作属于事务T_2。
r_1[x] w_2[x] c_2 w_1[x] c_1
与上面给出的答案相反,可序列化的时间表不一定是严格的。请参见以下示例:
w_1[x] w_2[x] c_2 r_1[y] c_1
事务 T_2 在提交 T_1 之前覆盖了 T_1 的 w_1[x]。尽管如此,该时间表(冲突)等效于串行时间表 T_1 T_2。
答案 1 :(得分:2)