- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
并发控英制技术
第八章并发控制技术 单用户和多用户系统 数据库系统一般可以分为单用户系统和多用户系统。 单用户系统 在任何时刻只允许一个用户使用的数据库系统。 多用户系统 允许多个用户同时使用数据库的系统。 事务的并发执行 并行 Vs 串行 基本比较 并行事务会破坏数据库的一致性。 串行事务效率低。 并行的优点 一个事务由不同的步骤组成,所涉及的系统资源也不同。这些步骤可以并发执行,以提高系统的吞吐量。 系统中存在着周期不等的各种事务,串行会导致难于预测的时延。如果各个事务所涉及的是数据库的不同部分,采用并发会减少平均响应时间。 并发控制的必要性 对数据库的并发操作可能导致下列问题: 丢失修改(Lost Update) 两个事务T1和T2读入同一数据并修改, T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失。 并发控制的必要性 不可重复读(Non-Repeatable Read) 指事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取的结果。具体的讲,不可重复读包括三种情况: 事务T1读取某一数据后,事务T2对其作了修改,当事务T1再次读取该数据时,得到与前一次不同的值。 事务T1按照一定条件从数据库中读取了某些数据记录后,事务T2删除了其中部分记录,当T1再次按照相同条件读取数据时,发现某些记录神秘的消失了。 事务T1按照一定条件从数据库中读取了某些数据记录后,事务T2插入了一些记录,当T1再次按照相同条件读取数据时,发现多了一些记录。 后两种不可重复读有时也称作幻影(Phantom Row)现象。 并发控制的必要性 并发控制的必要性 并发控制的必要性 并发控制的必要性 读“脏”数据(Dirty Read) 是指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1已修改过的数据恢复为原值,T2读到的数据就与数据库中的不一致,则T2读到的数据就为“脏”数据。 并发控制 封锁的定义 封锁就是事务T在对某个数据对象如表、记录等操作之前,先向系统发出请求,对其加锁,从而对该数据对象有了一定的控制,在事务T释放它的锁之前,其他事务不能更新此数据对象。 封锁是并发控制的一个非常重要的技术。 并发控制 封锁的类型 排它锁(X锁,eXclusive lock):事务T对数据对象A加上X锁,则只允许T读取和修改A,其它事务对A的任何封锁请求都不能成功(因而不能读取和修改R),直至T释放A上的X锁。 共享锁(S锁,Share lock):事务T对数据对象A加上S锁,则事务T可以读取但不能修改A,其它事务只能对A加S锁(因而可以读取A),而不能对A的加X锁(因而不能修改A),直到T释放A上的S锁。 并发控制 并发控制 一级封锁协议 事务T在修改数据R之前必须对其加X锁,直到事务结束才释放。事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。 一级封锁协议可以防止丢失修改,并保证事务T是可恢复的。在一级封锁协议中,如果仅仅是读数据而不对其进行修改,是不需要对其加锁的,因此它不能保证可重复读和不读“脏”数据。 并发控制 并发控制 二级锁协议 二级锁协议是:一级锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁。二级锁除了防止丢失修改,还可以进一步防止读“脏”数据。但由于读完后即可释放S锁,所以不能保证可重复读。 并发控制 并发控制 三级锁协议 三级锁协议是:一级锁协议加上事务T在读取R之前必须对其加S锁,直到事务结束才释放。三级封锁协议除了防止丢失修改和读“脏”数据以外,还进一步防止了不可重复读。 并发控制 并发控制 并发控制 并发控制 死锁(Deadlock) 定义 在数据库运行期间,如果存在一个事务集合?={T0,T1,…,Tn},使得T0等待T1持有的数据项锁, …, Tn-1等待Tn持有的数据项锁, Tn等待T1持有的数据项锁,则称系统处于死锁状态, ? 称为死锁事务集合。 并发控制 死锁的例子 如果事务T1封锁了数据R1,T2封锁了数据R2,然后T1又请求封锁R2,因T2已封锁了R2,于是T1等待T2释放R2上的锁。接着,T2又申请封锁R1,因T1已经封锁了R1,T2也只能等待T1释放R1上的锁。这样就出现了T1在等待T2,而T2又在等待T1的局面,T1和T2两个事务永远不能结束,形成死锁。 并发控制 解决死锁的方法 ①预防死锁 ②死锁检测和恢复 并发控制 预防死锁 一次封锁法 一次封锁法要求每个事务必须一次将其所有要使用的数据全部加锁,否则就不能执行。一次加锁法可以有效地防止死锁的发生,但由于需要扩大加锁的范围,因此降低了系统的并发度。 顺序封锁法 顺序封锁法是预先对数据对象规定一个封锁顺序,所有的事务都要按照这个顺序实行封锁。顺序封锁法可以
您可能关注的文档
- “冬病夏治”支这气管哮喘治疗技术t演示文稿.ppt
- 《dna分说子的结构与复制》.ppt
- 2009年高考生相物复习讲座1.ppt
- 2013年平分类期考复习课件.ppt
- 2011年10月—创伤的急救与木自救课件.ppt
- 2014年全国六高考文综.ppt
- 2010秋1027汉译英练习.ppt
- 《基因控制生物性子状》说课稿.ppt
- bacterial一vaginosisbv细菌性阴道病.ppt
- 2005作北京大学.ppt
- 2024医院三基考试试题附答案详解【达标题】.docx
- 2024医院三基考试试题预测试卷(word)附答案详解.docx
- 2024医院三基考试试题及参考答案详解.docx
- 2024医院三基考试试卷带答案详解(最新).docx
- 高中历史国家智慧教育云平台个性化教学策略研究与实践教学研究课题报告.docx
- 《手术室护理风险管理对医护人员职业安全的影响评估》教学研究课题报告.docx
- 2024医院三基考试能力检测试卷附答案详解(名师推荐).docx
- 基于生成式AI的高中语文课堂学生自主学习文学鉴赏与评价能力的案例研究教学研究课题报告.docx
- 高中政治法治教育中道德法治教育的整合与创新教学研究课题报告.docx
- 感染科病例分享.pptx
最近下载
- GB 44022-2024硝酸铵安全技术规范解读.pptx VIP
- 在线网课学习课堂《人工智能与生物特征识别(北理 )》单元测试考核答案.pdf VIP
- Unit 5 Is this your pen (说课稿)-2024-2025学年湘少版(三起)(2024)英语三年级上册.docx VIP
- 《基坑工程》重力式水泥土墙.pptx VIP
- 人工智能导论知到课后答案智慧树章节测试答案2025年春浙江师范大学.docx VIP
- 2024年饮品店项目创业投资方案.docx
- 生命的律动答案.docx
- 300T汽车吊性能说明书-XCA300_1全地面起重机技术规格书+[主臂风电臂加超起].pdf VIP
- 导尿管相关尿路感染预防与控制课件.pptx VIP
- 历史的天空2015全图文攻略.pdf VIP
文档评论(0)