数据库原理及应用第7章课后习题答案.pdf
数据库原理及应用第7章课后习题答案--第1页
习题
、试述事务的概念及事务的四个特性。
事务(Transaction)是用户定义的一个数据库操作序列,这些操作是
一个完整的工作单元,一个事务内的所有语句被作为一个整体,这些操
作要么全做,要么全不做。事务是数据库环境的中的逻辑单元,相当于
操作系统中的进程。
为了保证数据库中数据的正确性,一个事务具有四个特性:原子性
(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性
(Durability)。这四个特性简称ACID特性。
2、试述事务的状态及转换。
3、在数据库中为什么要并发控制?并发控制能保证事务的哪些特
性?
数据库的一个明显的特点是多个用户共享数据库资源,尤其是多用
户可以同时存取相同的数据。在这样的系统中,在同一时刻并发运行的
事务数可达数百个。若对事务的并发操作不加以控制,就会造成数据
存、取的错误,破坏了数据的一致性和完整性。
并发控制可以防止数据不一致性出现。
4、并发操作可能会产生哪几类数据不一致?用什么方法可以避免不
一致性的情况?
并发操作带来的数据不一致性分为四种情况:丢失数修改、
读“脏”数据、不可重复读和产生“幽灵”数据。
数据库原理及应用第7章课后习题答案--第1页
数据库原理及应用第7章课后习题答案--第2页
、时间
戳(Timestamp)和乐观控制法。商用的DBMS一般都采用封锁方法。
、什么是封锁?基本的封锁类型有哪些?试述它们的含义。
封锁机制,即加锁(Locking),是一种并发控制机制,是用来调
整对共享目标的并行存取的技术。事务通过向封锁管理程序的系统组成
部分发出请求而对事务加锁。
基本封锁类型有两种:共享锁(ShareLocks,简记为S锁或读锁)
和排它锁(ExclusiveLocks,简记为X锁或写锁)。
6、如何用封锁机制保证数据的一致性?
在运用X锁和S锁对数据对象加锁时,还需要约定一些规则,这些
规则为封锁协议或加锁协议(LockingProtocol)。对封锁方式加不同的
规则,就形成了各种不同级别的封锁协议。不同级别的封锁协议所能达
到的一致性级别是不同的。
7、什么样的并发调度是正确的调度?
可串行性(Serializability)是并发事务正确调度的准则。按照这个准则
规定,一个给定的并发调度,当且仅当它是可串行化的,才认为是正
确调度。
8、理解并解释下列术语的含义:
封锁、活锁、死锁、排他锁、共享锁、可串行化的调度、两段锁协议。
1)加锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先
向系统发出请求,封锁其要使用的数据。加锁后事务T就对该数据对象
有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数
据对象。
2)活锁:如果事务T1封锁了数据R,事务T2又请求封锁R,于是T2等
待。T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的
请求,T2仍然等待。然后T4又请求封锁R,当T3释放了R上的封锁之后
系统又批准了T4的请求……,T2有可能永远等待,这就是活锁。
3)死锁:如果事务T1封锁了数据R1,T2封锁了数据R2,然后T1又请求
封锁R2,因T2已封锁了R2,于是T1等待T2释放R2上的锁,接着T2又申
请封锁R1,因T1已封锁了R1,T2也只能等待T1释放R1上的锁。这样T1
在等待T2,而T2又在等待T1,T1和T2