(2)不一致分析问题
(3)“脏数据”的读出。(在数据库技术中,未提交的随后又被撤消的数据为“脏数据”。)
以上三类问题结合多事务的并行操作进行理解。
举例
[例题] 设T1,T2,T3是如下三个事务,其中R为数据库中某个数据项,设R的初值为0.
T1:R:=R+5
T2:R:=R*3
T3:R:=2
若允许三个事务并行执行,试列出所有可能的正确结果。采用什么手段,可以解决并行调度的不一致问题?
答:有6种可能的情况
(1)T1-T2-T3: R=2
(2)T1-T3-T2: R=6
(3)T2-T1-T3: R=2
(4)T2-T3-T1: R=7
(5)T3-T1-T2: R=21
(6)T3-T2-T1: R=11
采用封锁,可以解决并行调度的不一致问题。
为解决并发控制带来的问题,通常要采用封锁(locking)技术,常用的封锁有:排它型封锁(X封锁)和共享型封锁(S封锁)两种。
并发控制中,有许多概念都要掌握:封锁,X封锁,S封锁,PX协议,PXC协议,PS协议,PSC协议,活锁,死锁,可串行化调度,不可串行化调度,两段封锁协议