【学习目标】
��本章主要介绍了并发控制的基本协议和死锁处理的方法。在本章的学习中,要求大家熟练掌握封锁协议、时间戳排序协议和死锁处理的基本方法,以便充分理解封锁协议在商用DBMS中的实现,以及在处理插入和删除操作时如何正确地运用并发控制协议。
【学习方法】
��并发控制是为解决事务的并发执行而提出的,事务的并发执行是由事务的隔离性保证的。因此在学习本章内容的同时,回顾第十章"事务"中有关事务的基本概念和ACID特性,从而加深对并发控制协议的理解,达到学习目标。
【学习指南】
��事务最基本的特性之一就是隔离性。当DBMS中有多个事务并发执行时,事务的隔离性就不一定能保持。DBMS必须对并发事务之间的相互作用加以控制,这种控制是通过并发控制机制来实现的。所谓的并发控制机制本质上就是并发控制协议,这些协议是一组规则,用来决定冲突的事务是回滚重启还是等待执行。本章要讨论的所有协议都能保证调度是可串行化的!本章的重点是11.1节、11.3节和11.7节,难点也是11.1节、11.3节和11.7节,其中11.2节、11.4节、11.5节和11.6节为大家课下的自学内容。请你仔细阅读教材的第八章"并发控制"(链接到本课程所指定的教材的介绍)以及参考书的第14章"并发控制"(链接到本课程所指定的参考书的介绍)。
【预习思考题】
��1、 如何利用锁保证调度中事务的可串行化?
��2、 什么是排他锁?什么是共享锁?
��3、 什么叫锁相容?一般用什么方式来表示锁相容函数?
��4、 基本封锁协议的主要内容是什么?事务中加锁与解锁指令如何表示?
��5、 基本封锁协议有哪些问题?为什么说死锁要比造成数据库不一致要好一些?
��6、 为了解决饿死问题,封锁协议中授权加锁的条件是什么?
��7、 两阶段封锁协议的两个阶段各是什么?以什么来界定一个事务的缩减阶段的开始?
��8、 两阶段封锁协议解决了哪些问题?而没有解决什么问题?
��9、 什么是事务的封锁点?
��10、 加强的两阶段封锁协议是为了解决什么问题的?加强的两阶段封锁协议分为哪两种?
��11、 为什么会提出锁转换?如何进行锁转换?
��12、 商用DBMS中封锁协议是如何实现的?
��13、 什么是时间戳?它是如何实现的?事务中与每个数据项相关的两个重要的时间戳是什么?
��14、 时间戳排序协议的内容是什么?
��15、 托马斯写规则是针对哪种情况提出的?
��16、 什么是死锁?解决死锁的策略有哪些?
��17、 什么是死锁预防?死锁预防机制有哪两种?这两种机制之间有什么区别?
��18、 死锁检测与恢复的工作机制的基本要求是什么?
��19、 如何进行死锁检测?
��20、 死锁恢复时常常要回滚事务,在选择要回滚的事务时要考虑哪些因素?
��21、 删除与插入操作分别与哪些操作冲突?在并发控制机制中如何处理删除与插入操作?
��
|