数据库原理及应用(MySQL版) 理论教案 第14次课(理论)事务的隔离级别.docx

上传人:lao****ou 文档编号:819911 上传时间:2024-06-04 格式:DOCX 页数:4 大小:34.05KB
下载 相关 举报
数据库原理及应用(MySQL版) 理论教案 第14次课(理论)事务的隔离级别.docx_第1页
第1页 / 共4页
数据库原理及应用(MySQL版) 理论教案 第14次课(理论)事务的隔离级别.docx_第2页
第2页 / 共4页
数据库原理及应用(MySQL版) 理论教案 第14次课(理论)事务的隔离级别.docx_第3页
第3页 / 共4页
数据库原理及应用(MySQL版) 理论教案 第14次课(理论)事务的隔离级别.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《数据库原理及应用(MySQL版) 理论教案 第14次课(理论)事务的隔离级别.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用(MySQL版) 理论教案 第14次课(理论)事务的隔离级别.docx(4页珍藏版)》请在第一文库网上搜索。

1、教案首页(以2课时为单元)课 序授课日期授课班次授课教师批准人14课题第六章事务与并发控制目的要求并发控制是数据保护的又一方面,由于多个事务并发操作,将会导致数据库中 的不一致。为使数据不被破坏,要求学生掌握并发控制技术。具体要求掌握下述内 容:并发控制概述;封锁;封锁协议。教学内容1、事务的隔离级别2、封锁重点难点重点:事务的隔离级别、封锁协议 难点:封锁协议的应用教学方法手 段教学方法:启发、引导、演示、归纳手 段:多媒体课件和黑板画的图例讲解教学步骤1 .提问引起思考引入课程2 .精讲课堂内容3 .课堂小结4 .布置作业复习 提问题事务的并发控制会引发什么问题?作业题目课后习题三预习内容

2、故障分类及故障恢复的实现课时分配(以分钟计算)教学环节复习提问新课讲解课堂实践每课小结布置作业时间分配5781052第6章 事务与并发控制【课程导入】问题:2个事务并发的购买火车票,怎样防止一张票卖给2个人的呢?【讲授内容】6.3.3事务隔离级别隔离级别丢失更新读脏数据不可重复读幻影读未提交读 (readuncommitted)是是是是提交读(read committed)否否是是可重复读(repeatable read)否否否是可串行读(serializable)否否否否6.3.4 MySQL事务隔离级别设置1. MySQL隔离级别的设置MySQL支持上述4种隔离级别,定义事务的隔离级别可以

3、使用SET TRANSACTlON语句,其语法形式如下:SET SESSION TRANSACTION ISOLATION LEVELSERIALIZABLEIrepeatable readread CommitedREAD UNCOMMITED;系统变量TRANSAcnoNSOLAnON中存储了事务的隔离级别,可以使 用SELECT语句查看当前会话的事务隔离级别。2. READ UNCOMMITED 隔离级别 READ UNCOMMITED (读取未提交数据)隔离级别,所有事务都可以看 到其他未提交事务的执行结果。该隔离级别很少用于实际应用,因为它的性能也不 比其他级别好多少。读取未提交的数

4、据,也被称为脏读(DirtyRead)。3. read Commited 隔离级别READCOMMITED (读取提交的数据)是大部分数据库系统(如SQLSerVer、 Oracle)的默认隔离级别(但不是MySQL默认的)。它满足了隔离的简单定义:一 个事务只能看见已提交事务所做的改变。这种隔离级别可以避免脏读现象,但可能 出现不可重复读和幻影读,因为同一事务的其它实例在该实例处理期间可能会有新 COMMIT,所以同一查询可能返回不同结果。4. REPEATABLE READ 隔离级别REPEATABLE READ (可重复读)是MySQL的默认事务隔离级别,它确保在 同一事务内相同的查询语

5、句的执行结果一致。这种隔离级别可以避免脏读以及不可 重复读的现象,但可能出现幻影读现象。5. SERIALIZABLE 隔离级别SERlALJZAL是最高的隔离级别,它通过强制事务排序,使之不可能相互冲突。 简单来说,它是在每个读的数据行上加上共享锁。在这个级别中,可能会导致大量 的锁等待现象。该隔离级别主要用于分布式事务。6.4封锁6.4.1 锁1 .基本锁(1)排它锁(X锁)排它锁又称为写锁。若一个事务Tl在数据对象R上获得了排他锁,则Tl既可 对R进行读操作,也可进行写操作。而其他任何事务不能对R加任何锁,因而不能进行任何操作,直至Tl释放了它对R加的锁。所以排他锁就是独占锁。(2)共享

6、锁(S锁)共享锁又称为读锁。若一个事务Tl在数据对象R上获得了共享锁,则它能对R 进行读操作,但不能写R。其他事务可以也只能同时对R加共享锁。2 .基本锁的相容矩阵相求SX持一彳士、SYNYXNNYYYY3 .4.2封锁协议1 . 一级封锁协议一级封锁协议内容:事务T在修改数据对象之前必须对其加X锁,直至事务结 束。2 .二级封锁协议二级封锁协议内容:在一级封锁协议的基础上,另外加上事务T在读取数据对 象R之前必须先对其加S锁,读完后释放S锁。3 .三级封锁协议三级封锁协议内容是:在一级封锁协议的基础上,另外加上事务T在读取数据 R之前必须先对其加S锁,读完后并不释放S锁,而直至事务T结束才释

7、放。4 .封锁协议总结5 .4.3封锁带来的问题1. “饿死”问题有可能存在一个事务序列,其中每个事务都申请对某数据项加S锁,且每个事 务在授权加锁后一小段时间内释放封锁,此时若另一个事务T2欲在该数据项上加X 锁,则将永远轮不上封锁的机会。这种现象称为“饿死” (Starvation) 2. “活锁”问题系统可能使某个事务永远处于等待状态,得不到封锁的机会,这种现象称为“活 锁”(Live Lock )。3. “死锁”问题系统中两个或两个以上的事务都处于等待状态,并且每个事务都在等待其中另 一个事务解除封锁,它才能继续执行下去,结果造成任何一个事务都无法继续执行, 这种现象称系统进入“死锁”(DeadLOCk)状态。1)“死锁”的预防预防死锁有两种方法:一次加锁法和顺序加锁法。(2) “死锁”解除DBMS中有一个死锁测试程序,每隔一段时间检查并发的事务之间是否发生死 锁。如果发现死锁,DBA从依赖相同资源的事务中抽出某个事务作为牺牲品,将它 撤消,并释放此事务占用的所有数据资源,分配给其他事务,使其他事务得以继续 运行下去,这样就有可能消除死锁。【课程小结】本次课要求能够根据判断并发控制引发的问题类别,采用事务隔离级别或加 封锁协议解决并发控制问题。思政案例

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服