第8章并发控制1.并发操作带来的数据不一致性包括:__丢失__、__修改不可重复读__和__读“脏”数据
__。
2.在数据库中为什么要并发控制?
答:数据库是共享资源,通常有许多个事务同时在运行。当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。
3.多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同,我们称这种调度策略为_可串行化_的调度。
5.基本的封锁类型有两种:_排它锁(ExclusiveLocks,简称X锁)_和__共享锁(ShareLocks,简称S锁)__。
6.什么是封锁?
答:封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他的事务不能更新此数据对象。封锁是实现并发控制的一个非常重要的技术。
7.在数据库并发控制中,两个或多个事务同时处在相互等待状态,称为__死锁__。
10.__封锁对象的大小_被称为封锁的粒度。
答案:封锁对象的大小
12.什么是活锁?什么是死锁?
13.试述活锁的产生原因和解决方法。
14.请给出预防死锁的若干方法。
15.请给出检测死锁发生的一种方法,当发生死锁后如何解除死锁?
16.什么样的并发调度是正确的调度?
答:可串行化(Serializable)的调度是正确的调度。可串行化的调度的定义:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行它们时的结果相同,我们称这种调度策略为可串行化的调度。