- 12
- 0
- 约3.04千字
- 约 3页
- 2019-11-11 发布于四川
- 举报
第 8 章 数据库的事务管理与并发控制
课后习题参考答案
1、填空题
(1)隔离性
(2 )共享 独占
(3 )死锁
(4 )事务
(5 )关系
(6 )意向
(7 )三
2、选择题
(1)~ (6): C、D 、C、D 、B 、 C
(7 )~ (12):A 、C、C、C 、C 、D
3、简答题
(1)什么叫事务?写出在 SQL Server 中定义事务的语句。
事务是用户定义的一组数据库操作序列, 是数据库的逻辑工作单位, 这些操作要么全做, 要
么全不做,是一个不可分割的工作单位。在 SQL Server 中定义事务的语句: BEGIN
TRANSACTION (开 始 事 务 )、 COMMIT TRANSACTION (提 交 事 务 )、 ROLLBACK
TRANSACTION (回滚事务)、SAVE TRANSACTION (设置保存点)。
(2 )事务有哪些特性?
事务具有以下 4 个重要特性: ①原子性, 事务是由一系列对数据库的操作组成, 事务中包括
的诸操作要么全做, 要么一个也不做,是不可再分的工作单位。②一致性, 事务执行的结果
必须是使数据库从一个一致性状态变到另一个一致性状态。 ③隔离性, 事务的隔离性是指一
个事务的执行不能被其他事务干扰, 即一个事务内部的操作及使用的数据对其他并发事务是
隔离的、不可见的。 ④持续性, 事务的持续性是指一个事务一旦提交, 事务的操作结果就永
远保存在数据库中, 是永久有效的, 接下来的其他操作或故障不应该对其操作结果有任何影
响。
(3 )在数据库的并发控制中如何选择适当的封锁粒度?
在关系数据库中需要处理大量元组的事务可以以关系为封锁粒度; 需要处理多个关系的大量
元组的事务可以以数据库为封锁粒度; 而对于一个处理少量元组的用户事务, 以元组为封锁
粒度就比较合适了。
(5 )多用户的数据库系统的目标之一使其必须进行并发控制,但并发操作可能产生数据的
不一致问题,试问这些问题包括几类?分别是什么?
这些问题包括三类, 即:①丢失修改, 丢失修改是由于两个事务 T1 和 T2 读取同一数据并进
行修改,使得事务 T2 提交的结果覆盖了事务 T1 提交的结果,导致事务 T1 的修改被丢失;
②不可重复读,不可重复读是指事务 Tl 读取数据后,事务 T2 执行更新操作,使 T1 无法再
现前一次读取结果; ③读 “脏”数据, 当一个事务读取了另一个事务正在更新但没有提交的
数据时,可能产生所谓的读“脏”数据。
(6 )什么是封锁协议?不同级别的封锁协议的主要区别是什么?
封锁协议是事务对数据对象加锁时遵循的规则,例如何时申请 X 锁或 S 锁、持锁时间、何
时释放等。不同级别的封锁协议的主要区别在于什么操作需要申请何种封锁以及何时释放封
锁(即持锁时间) ,如表 1 所示。
表 1 三种封锁协议的区别
X 锁 S 锁 是否解决了一致性问题
封锁协议 丢失 不可重 读 “脏”
何时申请 何时释放 何时申请 何时释放
修改 复读 数据
一级封锁协议 事务开始
原创力文档

文档评论(0)