数据库系统概论 SQL CH11作业解答.docx
《数据库系统概论 SQL CH11作业解答.docx》由会员分享,可在线阅读,更多相关《数据库系统概论 SQL CH11作业解答.docx(6页珍藏版)》请在三一办公上搜索。
1、数据库系统概论 SQL CH11作业解答第十一章 并发控制 1、在数据库中为什么要并发控制?并发控制技术能保证事务的哪些特性? 答:数据库是共享资源,通常有许多个事务同时在运行。 当多个事务并发地存取数据库时就会产生同时读取和 /或修改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。 并发控制技术保证事务的一致性,隔离性。 2. 并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况? 答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读 “脏”数据。 丢失修改:两个事务 T1和T2读入同
2、一数据并修改,T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失。 不可重复读:不可重复读是指事务 T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果。 读“脏”数据:读 “脏”数据是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则T2读到的数据就为“脏”数据,即不正确的数据。 避免不一致性的方法和技术就是并发控制。最常用的并发控制技术是封锁技术。也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。 3. 什么是封锁?基本的封锁类型有几
3、种?试述它们的含义。 答:封锁就是事务T在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他的事务不能更新此数据对象。 封锁是实现并发控制的一个非常重要的技术。 基本的封锁类型有两种:排它锁(Exclusive Locks,简称X锁) 和共享锁(Share Locks,简称S锁)。 排它锁又称为写锁。若事务 T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。这就保证了其他事务在T释放A上的锁之前不能再读取和修改A。 共享锁又称为读锁。若事务 T对数据对
4、象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这就保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。 4、如何用封锁机制保证数据的一致性? 答:数据库管理系统DBMS要求事务在对数据对象进行读、写操作之前首先对该数据执行封锁操作,这样,当其他事务请求对该数据对象加锁时将被拒绝,只能等待。DBMS按照一定的封锁协议,对并发操作进行控制,使得多个并发操作有序地执行,就可避免丢失修改、不可重复读和读“脏”数据等数据不一致性。 7、请给出检测死锁发生的一种方法,当发生死锁后如何解除死锁? 答:数据库系统一般采用允许死锁发生,
5、DBMS检测到死锁后加以解除的方法。 DBMS中诊断死锁的方法与操作系统类似,一般使用超时法或事务等待图法。 超时法是:如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。超时法实现简单,但有可能误判死锁,事务因其他原因长时间等待超过时限时,系统会误认为发生了死锁。若时限设置得太长,又不能及时发现死锁发生。 DBMS并发控制子系统检测到死锁后,就要设法解除。通常采用的方法是选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有锁,使其他事务得以继续运行下去。当然,对撤销的事务所执行的数据修改操作必须加以恢复。 8、什么样的并发调度是正确的调度? 答:可串行化的调度是正确的调度。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库系统概论 SQL CH11作业解答 数据库 系统 概论 CH11 作业 解答

链接地址:https://www.31ppt.com/p-3560012.html