学习情境5数据库控制技术教学文稿.ppt
《学习情境5数据库控制技术教学文稿.ppt》由会员分享,可在线阅读,更多相关《学习情境5数据库控制技术教学文稿.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、主主 编编 樊颖军樊颖军 副主编副主编 张张 光光主主 审审 殷锋社殷锋社电子商务电子商务(din z shn w)数据库技术数据库技术普通高等教育普通高等教育普通高等教育普通高等教育“十二五十二五十二五十二五”规划教材规划教材规划教材规划教材电子商务专业项目是教学电子商务专业项目是教学电子商务专业项目是教学电子商务专业项目是教学(jio xu)(jio xu)课题成果课题成果课题成果课题成果 中国(zhn u)水利水电出版社第一页,共31页。子学习(xux)情境一 事务n n事务有事务有3 3种运行模式种运行模式(msh)(msh):n n(1 1)自动提交事务。即每条单独语句都是一个事务。
2、)自动提交事务。即每条单独语句都是一个事务。n n(2 2)显式事务。即每个事务均以)显式事务。即每个事务均以BEGIN BEGIN TRANSACTIONTRANSACTION语句开始,以语句开始,以COMMITCOMMIT语句或语句或ROLLBACKROLLBACK语句结束。事务通常是以显式模式语句结束。事务通常是以显式模式(msh)(msh)运运行。行。n n(3 3)隐性事务。即在前一个事务完成时,新事务隐式启)隐性事务。即在前一个事务完成时,新事务隐式启动,但每个事务仍以动,但每个事务仍以COMMITCOMMIT语句或语句或ROLLBACKROLLBACK语句显语句显式地表示完成。式
3、地表示完成。第二页,共31页。n任务二 事物的特性n事务具有4个特性:原子(yunz)性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability),简称为ACID特性。第三页,共31页。子学习情境(qngjng)二 并发控制技术n任务一 并发操作带来的不一致性n并发操作带来的数据不一致问题包括3类:丢失修改(Lost Update)、读“脏”数据(Dirty Read)、不可重复读(Non-Repeatable Read)。n1丢失修改n假设在售票系统(xtng)中有如下操作序列:n甲售票点(甲事务)读出某车次的剩余车票张数d,设d=
4、50。n乙售票点(乙事务)读出同一车次的剩余车票张数d,同样为50。n甲售票点售出一张车票,修改剩余车票张数dd-1,所以d为49,把d写回数据库。n乙售票点也卖出一张车票,修改剩余车票张数dd-1,所以d为49,把d写回数据库。第四页,共31页。n3不可重复读n不可重复读是指甲事务读取数据后,乙事务执行更新操作,使甲无法再现前一次读取结果。具体地讲,不可重复读包括3种情况:n甲事务读取某一数据后,乙事务对其做了修改,当甲事务再次读该数据时,得到与前一次不同的值。n甲事务按一定(ydng)条件从数据库中读取了某些数据记录后,乙事务删除了其中部分记录,当甲事务再次按相同条件读取数据时,发现某些记
5、录神秘地消失了。n甲事务按一定(ydng)条件从数据库中读取某些数据记录后,乙事务插入了一些记录,当甲事务再次按相同条件读取数据时,发现多了一些记录。第五页,共31页。n任务二 基于封锁(fn su)的并发控制技术n1三级封锁(fn su)协议n(1)一级封锁(fn su)协议:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。第六页,共31页。n(2)二级封锁协议:一级封锁协议加上事务T在读取数据(shj)R之前必须先对其加S锁,读完后即可释放S锁。n二级封锁协议除防止了丢失修改外,还可进一步防止读“脏”数据(s
6、hj)。n(3)三级封锁协议:一级封锁协议加上事务T在读取数据(shj)R之前必须先对其加S锁,直到事务结束才释放。第七页,共31页。n2两段锁协议n所谓两段锁协议是指所有事务必须分两个(lin)阶段对数据项加锁和解锁。n(1)在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁。n(2)在释放一个封锁之后,事务不再申请和获得任何其他封锁。n“两段”锁的含义是,事务分为两个(lin)阶段。第一阶段是获得封锁,也称为扩展阶段。在这个阶段,事务可以申请获得任何数据项上的任何类型的锁,但是不能释放任何锁。第二阶段是释放封锁,也称为收缩阶段。在这个阶段,事务可以释放任何数据项上的任何类型的锁
7、,但是不能再申请任何锁。第八页,共31页。n任务(rn wu)三 活锁和死锁n1活锁n如果事务T1封锁了数据R,事务T2又请求封锁R,于是T2等待。T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求,T2仍然等待。然后T4又请求封锁R,当T3释放了R上的封锁之后系统又批准了T4的请求T2有可能永远等待,这就是活锁的情形 第九页,共31页。n2死锁n如果事务T1封锁了数据R1,T2封锁了数据R2,然后T1又请求封锁R2,因T2已封锁了R2,于是T1等待T2释放R2上的锁。接着T2又申请封锁R1,因T1已封锁了R1,T2也只能等待T1释放R1上的锁。这样就出现(chxin)了T1
8、在等待T2,而T2又在等待T1的局面,T1和T2两个事务永远不能结束,形成死锁 第十页,共31页。n(1)死锁的预防。n在数据库中,产生死锁的原因是两个或多个事务(shw)都已封锁了一些数据对象,然后又都请求对已为其他事务(shw)封锁的数据对象加锁,从而出现死等待。防止死锁的发生其实就是要破坏产生死锁的条件。预防死锁通常有两种方法:一次封锁法和顺序封锁法。n1)一次封锁法。一次封锁法要求每个事务(shw)必须一次将所有要使用的数据全部加锁,否则就不能继续执行 第十一页,共31页。n2)顺序封锁法。顺序封锁法是预先对数据对象规定一个封锁顺序,所有(suyu)事务都按这个顺序实行封锁。例如在表5
9、-9中,可规定封锁的顺序为R1、R2,T1和T2都必须按这个顺序封锁,即T2也必须先封锁R1。当T2请求封锁R1时,由于T1已经封锁了R1,所以T2只能等待,等T1释放R1、R2上的锁后,T2继续执行。这样就不会发生死锁。第十二页,共31页。n(2)死锁的诊断与解除。n数据库系统中诊断死锁一般使用超时法或事务等待图法。n1)超时法。如果一个事务的等待时间超过了规定(gudng)的时限,就认为发生了死锁。超时法实现简单,但其不足之处也很明显。一是有可能误判死锁,事务因为其他原因使等待时间超过时限,系统会误认为发生了死锁。二是时限若设置得太长,死锁发生后不能及时发现。n2)事务等待图法。事务等待图
10、是一个有向图G=(T,U)。T为节点的集合,每个节点表示正在运行的事务;U为边的集合,每条边表示事务等待的情况。若T1等待T2,则T1和T2之间划一条有向边,从T1指向T2。事务等待图动态地反映了所有事务的等待情况。并发控制子系统周期性地检测事务等待图,如果发现图中存在回路,则表示系统中出现了死锁。DBMS的并发控制子系统一旦检测到系统中存在死锁,就要设法解除。通常采用的方法是选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有的锁,使其他事务得以继续运行下去。当然,对撤消的事务所执行的数据修改操作必须加以恢复。第十三页,共31页。子学习情境(qngjng)三 数据库恢复技术n任务一
11、 数据库可能出现的故障种类n数据库可能出现的故障有以下几种(j zhn):n(1)事务内部故障。n事务内部故障是指事务在运行过程中由于种种原因,如运算溢出、并发事务、发生死锁等,使事务未运行至终止点就中途夭折的情况。事务内部故障有的是可以通过事务本身发现的,有的是非预期的,不能由事务本身处理。事务故障可能使数据库处于不正确状态,恢复程序要在不影响其他事务运行的前提下强行回滚该事务,即撤消该事务已经做出的任何对数据库的修改,使数据库恢复到该事务未发生前的正确状态。n事务内部更多的故障是非预期的,是不能由事务本身处理的。例如,运算溢出、多个并发执行的事务因发生“死锁”而被选中撤消该事务、违反了某些
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学习 情境 数据库 控制 技术 教学 文稿
限制150内