- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章网络数据管理-教学对象.doc
PAGE
PAGE 27
教学对象教学时间年 月 日教学内容第9章 网络数据管理
9.1 网络数据库的并发控制教学目的通过本节内容的学习,能够正确理解数据库并发控制的含义,了解事务的内涵及特征,配合实例理解并发控制的必要性,并对并发控制技术有所了解。教学重点并发控制的含义;事务的定义及特征。教学难点并发控制的必要性;并发控制技术。建议学时1学时教学教具多媒体教学系统教学方法讲授(PPT)演示设计
板书设计9.1.1 事务
9.1.2 并发控制的必要性
9.1.3 基于锁的并发控制技术
9.1.4 其它并发控制技术教学过程课程导入
提问:
计算机局域网技术的日趋完善,使越来越多的计算机用户从单机向多机网络系统过渡。数据重复录入、数据资源得不到共享的问题,随着网络技术的应用找到了解决的方法。然而,在网络环境下也出现了许多单机遇不到的问题,比如如何缓解因共享数据而并发的程序运行冲突等等,直接影响网络系统的正常运行。这些新的问题应该如何解决?
9.1 网络数据库的并发控制
并发控制是指在网络环境下对数据库的并发操作进行规范的机制。并发控制的作用主要是协调同一时间访问同一数据库文件的多个事务之间的关系,防止这些事务之间发生冲突。
9.1.1 事务
事务(Transaction)是数据库的逻辑工作单元,它是一组对数据的操作序列。事务是并发控制的基本单位。
事务具有以下四个基本特性:
(1)原子性(Atomicity)。
(2)一致性(Consistency)。
(3)隔离性(Isolation)。
(4)持续性(Durability)。
这四个性质又被称为事务的ACID准则。
9.1.2 并发控制的必要性
数据库并发操作导致数据不一致的三种情况:
1. 丢失更新
当两个事务T1和T2读入同一数据,并发执行修改操作时,T2把T1或T1把T2的修改结果覆盖掉,造成了数据的丢失更新(Lost Update)问题,导致数据的不一致。它是由于两个事务对同一数据并发写入引起的,称为写-写冲突(Write-Write Conflict)。
2. 脏读
事务T2读取了T1更新后的数据R,其后T1由于某种原因撤销修改,数据R恢复原值,导致T2得到的数据与数据库的内容不一致。这种由于一个事务读取另一个更新事务尚未提交的数据引起的不一致问题,称为脏读(Dirty Read),或读-写冲突(Read-Write Conflict)。
3. 不可重读
事务T1读取数据R后,T2读取并更新了R,当T1再次读取R时,得到的两次读取值不一致,这种现象称为不可重读(Unrepeatable Read),它也是由于读-写冲突引起的。
由此可见,为保证数据操作的正确性和一致性,必须进行并发控制。
9.1.3 基于锁的并发控制技术
锁是数据项上的并发控制标志,它有两种类型:共享锁(Shared Lock,简称S锁)和排它锁(Exclusive Lock,简称X锁)。
基于锁的并发控制是事务对数据操作前必须获得对该数据的锁,完成操作后在适当时候释放锁,而得不到锁的事务处于等待状态。
1. 封锁协议
事务在加锁和释放锁时,都必须遵守一组规则,这组规则称为封锁协议。
(1)一级封锁协议
一级封锁协议是事务在修改数据R之前必须对其加X锁,直到事务结束,如果未能获得X锁,则该事务进入等待状态,直至获得X锁才能执行。
(2)二级封锁协议
二级封锁协议是在一级封锁协议的基础上,规定事务在读取数据R之前必须对其加S锁,读完后释放S锁。
(3)三级封锁协议
三级封锁协议是在一级封锁协议的基础上,规定事务在读取数据R之前必须对其加S锁,读完后并不释放S锁,直到整个事务结束后才释放。
2. 封锁粒度
封锁粒度是指封锁的数据对象的大小。
封锁粒度越小,系统中能够被封锁的对象就越多,并发度越高,并发控制的系统开销也就越大。反之,封锁粒度越大,系统中能够被封锁的对象就越少,并发度越低,并发控制的系统开销也就越小。
3. 死锁
加锁技术在解决并行操作引发的数据不一致问题的同时,锁自身也会引发问题,主要是死锁(Deadlock)。
如果一个事务申请锁未成功,则须等待其它事务释放锁,这就形成了事务之间的等待关系。当事务中出现循环等待时,如果不加干预,就会一直等待下去,这种状态称为死锁。
(1)死锁的检测和处理
死锁检测的方法一般有以下两种:
① 超时法。如果一个事务的等待时间超过某时限,则认为发生死锁。
② 等待图法。等待图是一个有向图。如果事务T1需要的数据已经被事务T2封锁,就从T1到T2画一条有向线。这些事务之间的有向线构成一有向图。有向图中出现回路即表明出现了死锁。
数据库管理系统对死锁一般采用如下策略
您可能关注的文档
最近下载
- 新人教版八年级上册物理全册教学课件(2024年秋季新版教材).pptx
- 心房颤动患者心脏康复指南.pptx VIP
- 2023年美国心脏学会(AHA)心肺复苏(CPR)和心血管急救(ECC)指南.docx
- 第12章 机械效率 难题练习 2021年初中物理培优(重点高中自主招生 竞赛).docx VIP
- 中医内科学肥胖.pptx
- 整形外科诊疗指南.docx
- 提高四级手术术前多学科讨论完成率PDCA案例.pptx VIP
- 2025年秋新教科版三年级上册科学全册精编教案教学设计(新教材).docx
- 电工电子技术基础.pptx VIP
- 2025年新版《GAMP5(良好自动化生产实践规范)指南》中英对照版.pdf VIP
文档评论(0)