问题
问答题
【说明】
现有事务T1,T2、L3它们对数值型数据A执行的操作分别如下:
T1;将A加1。
T2:将A加倍。
T3:输出A的值,并将A置为1。
【问题2】
各个事务内部的结构如表13-4所示,若事务执行不施加任何锁,则有多少种不同的调度方式写出简要的计算过程。
表13-4各个事务内部的结构
在A的初值给定为0时,是否存在能够产生正确结果,而且又是不可串行化的调度若有请举例说明。
答案
参考答案:假设Ri、Rj、Rk表示各事务的R操作,Up、Uq、Ur表示各事务的U操作,那么根据组合数学中的乘法原理有:
Ri→Rj→Rk→Up→Uq→Ur 3×2×1×3×2×1=36
Ri→Rj→Up→Rk→Uq→Ur 3×2×2×1×2×1=24
Ri→Rj→Up→Uq→Rk→Ur 3×2×2×1×1×1=12
Ri→Up→Rj→Rk→Uq→Ur 3×1×2×1×2×1=12
Ri→Up→Rj→Uq→Uk→Ur 3×1×2×1×1×1=6
全部加起来得:36+24+12+12+6=90,因此共有90种不同的调度方式。