第十一章 并发控制――习题

问答题



问答第1题:在两阶段封锁协议下,调度中多个事务可以根据它们的封锁点进行排序。实际上,这样的一个顺序就是事务的一个可串行化次序。为什么?



问答第2题:大部分数据库系统实现都采用严格两阶段封锁协议,请问该协议能带来什么好处?会产生哪些弊端?



问答第3题:当一个事务在时间戳排序协议下回滚,它被赋予新的时间戳。为什么它不能简单地保持原有的时间戳?



问答第4题:避免死锁后,饿死仍有可能吗?



问答第5题:在封锁协议里我们曾经解释过"饿死"现象:一个事务因为要等待别的事务释放锁而永远处于等待状态,不能取得进展。其实,在利用时间戳的两个死锁预防机制(等待-死亡和受伤-等待机制)中,也可能存在某个事务重复回滚而总是不能取得进展--这也称为"饿死"。请确认在等待-死亡和受伤-等待机制下,会不会发生饿死现象?为什么?