第6章 数据库保护精选文档.ppt
《第6章 数据库保护精选文档.ppt》由会员分享,可在线阅读,更多相关《第6章 数据库保护精选文档.ppt(86页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第6章 数据库保护1本讲稿第一页,共八十六页6.1 事务的概念事务:是一个不可分割的操作序列,该操作序列要么全做,要么全不做。事务和程序事务的开始与结束隐式控制隐式控制显式控制显式控制强调:事务和程序是两个概念。一个程序中可以包含多个事务。隐式控制:隐式控制:由DBMS按缺省规定自动划分。显式控制:显式控制:BEGIN TRANSACTION 事务开始 COMMIT 事务提交,重新改写数据库 ROLLBACK 事务提交,发生错误撤消2本讲稿第二页,共八十六页BEGIN TRANSACTION INSERT INTO S(S#,Sname,Sage,Sdept)VALUES(10002,李娜,1
2、8,计算机)COMMIT BEGIN TRANSACTION DELETE FROM S WHERE S#=10002;DELETE FROM SC WHERE S#=10002;ROLLBACK3本讲稿第三页,共八十六页6.1 事务的概念事务的ACID特性AtomicityConsistencyIsolationDurability4本讲稿第四页,共八十六页1、原子性(Atomicity):事务是不可分割的工作单位2、一致性(Consistency)事务提交后,数据库从一个一致性状态变到另一个一致性状态。3、隔离性(Isolation)在事务完成之前,它对数据库产生的结果不能被其它事务引用。
3、4、持续性(Durability)一旦事务执行成功(提交),其对数据库产生的效果永久有效。事务的性质(ACID)5本讲稿第五页,共八十六页6.1 事务的概念事务管理功能事务管理功能保证事务的ACID特性事务ACID特性可能遭到破坏的原因:多个事务并行运行时,多个事务中的操作交叉执行;事务正在执行时,被强迫终止。数据库的恢复和并发控制恢复和并发控制6本讲稿第六页,共八十六页6.2 数据库恢复硬件故障、软件故障、操作失误、恶意破坏等,导致事务运行的非正常中断,甚至破坏数据库,造成数据丢失数据库恢复:把数据库从错误状态恢复到某一个已知的正确状态7本讲稿第七页,共八十六页6.2 数据库恢复一、数据库的
4、故障种类事务内部故障系统故障介质故障计算机病毒8本讲稿第八页,共八十六页一、数据库的故障种类事务内部故障银行转帐业务:从帐号甲将一笔金额转入帐号乙BEGIN TRANSACTION读取帐号甲的余额BALANCE;BALANCE=BALANCE AMOUNT;写回BALANCE;if(BALANCE 0)then ROLLBACK;else 读取帐号乙的余额BALANCE1;BALANCE1=BALANCE1+AMOUNT;写回BALANCE1;COMMIT;9本讲稿第九页,共八十六页一、数据库的故障种类事务内部故障非预期的事务内部故障:运算溢出、违约处理办法:强行回滚ROLLBACK该事务,即
5、事务撤销(UNDO操作)10本讲稿第十页,共八十六页一、数据库的故障种类系统故障系统停机,需要重启。如CPU故障、OS故障、DBMS代码错误、系统断电影响正在运行的事务,但不会破坏数据库处理办法:(1)UNDO所有未完成的事务;(2)REDO所有已提交的事务11本讲稿第十一页,共八十六页一、数据库的故障种类介质故障硬故障:磁盘损坏、磁头碰撞、瞬间强磁场干扰等出现概率小、破坏性非常大计算机病毒破坏系统、修改数据12本讲稿第十二页,共八十六页一、数据库的故障种类各类故障的影响数据库本身被破坏数据库没有被破坏,但数据可能不正确如何恢复呢?13本讲稿第十三页,共八十六页两个关键问题:1 如何建立冗余数
6、据 2 如何利用冗余数据实施数据库恢复6.2 数据库恢复二、数据库恢复技术14本讲稿第十四页,共八十六页二、数据库恢复技术如何建立冗余数据数据转储登录日志文件数据转储DBA定期地将整个数据库复制到其它外存上保存的过程后备副本/后援副本(BACKUP)15本讲稿第十五页,共八十六页数据转储数据转储静态转储静态转储:在系统空闲的时候进行,转储期间不允许对数据库进行操作。优点:简单、保证副本和数据库数据的一致性;缺点需等待。动态转储动态转储:转储期间允许对数据库进行操作优点:效率高;缺点是不能保证副本和数据库数据的一致性,必须记录转储期间各事务对数据库的修改活动(日志文件)16本讲稿第十六页,共八十
7、六页两种转储方式:海量转储:每次转储数据库中的全部数据增量转储:每次转储上一次转储后更新过的数据 两种转储状态动态转储静态转储 两种转储 方式海量转储动态海量转储静态海量转储增量转储动态增量转储静态增量转储17本讲稿第十七页,共八十六页二、数据库恢复技术登录日志文件用来记录事务对数据库的更新操作的文件两种格式的日志文件:(1)以记录为单位的日志文件(2)以数据块为单位的日志文件例如:以记录为单位的日志文件各个事务的开始标记各个事务的结束标记各个事务的所有更新操作日志记录:日志记录:事务标识事务标识 操作类型操作类型 操作对象操作对象 更新前的旧值更新前的旧值 更新后的新值更新后的新值18本讲稿
8、第十八页,共八十六页二、数据库恢复技术日志文件的作用:进行事务故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复。事务故障和系统故障恢复必须用日志文件;在动态转储方式中必须建立日志文件,并结合后备副本和日志文件对数据库进行有效的恢复;静态转储时也可建立日志文件19本讲稿第十九页,共八十六页二、数据库恢复技术登记日志文件的原则先来先登记原则:严格按照并发事务执行的时间顺序登记;先写日志文件原则:必须先写日志文件,后写数据库。20本讲稿第二十页,共八十六页数据库镜像:自动将数据库中的全部数据或关键数据复制到另外一张盘上。应用1应用2应用3应用4update复制readreadread应用1应用
9、2应用3应用4update恢复readread(a)(b)read镜像镜像缺点:降低系统效率21本讲稿第二十一页,共八十六页四、数据库恢复策略 1事务故障的恢复2系统故障的恢复 3介质故障的恢复对于不同的故障类型对于不同的故障类型要采用不同的恢复策略要采用不同的恢复策略 22本讲稿第二十二页,共八十六页多用户数据库系统事务执行方式串行执行:ACID无破坏,效率低并发执行:ACID可能破坏,效率高交叉并发:Interleaved Concurrency同时并发:Simultaneous Concurrency6.3 并发控制23本讲稿第二十三页,共八十六页一、并发操作引起的问题丢失修改不可重复读
10、读“脏”数据6.3 并发控制24本讲稿第二十四页,共八十六页例:银行中,C账户上原有存款500元,现有两位顾客同时给此账户存款,分别运行下面两个事务:T1:READ(C),C=C+100,WRITE(C);T2:READ(C),C=C+200,WRITE(C);运行过程可能如下:(1)先执行事务T1,然后执行事务T2(2)先执行事务T2,然后执行事务T1(3)事务T1和事务T2并发执行25本讲稿第二十五页,共八十六页读出C,C=500读出C,C=500C=C+100,C=600把C写到数据库C=C+200,C=700把C写到数据库C:600C:700C:500T1的运行T2的运行26本讲稿第二
11、十六页,共八十六页事务T1事务T2读出C,C=500 C=C+100 C=600读出C,C=500 C=C+200 C=700丢失修改27本讲稿第二十七页,共八十六页事务T1事务T2 读出A=50 读出B=100 求和=150 读出B=100 B=B*2 WRITE(B)读出A=50 读出B=200 求和=250(验算不对)28本讲稿第二十八页,共八十六页三种不可重复读读不一致T1读A,T2修改A,T1读A删除幻影T1读取元组集合A,T2删除部分元组,T1读取元组集合A插入幻影T1读取元组集合A,T2插入一些元组,T1读取元组集合A29本讲稿第二十九页,共八十六页事务T1事务T2 读出 C=1
12、00 C=C*2 WRITE(C)读出 C=200 ROLLBACK C恢复为100读“脏”数据T1修改A,T2读A,T1撤销修改30本讲稿第三十页,共八十六页导致问题的原因丢失修改、不可重复读、读“脏”数据原因:并发操作破坏了事务的隔离性是否可以找到并发操作的合理调度方式,从而避免三类问题?31本讲稿第三十一页,共八十六页1 1、事务的表示方法:、事务的表示方法:Ri(X)表示事务Ti的读X操作;Wi(X)表示事务Ti的写X操作。例:事务T1(Read(B)T1(Read(B);A=B+1A=B+1;write(A)write(A)事务T2(Read(A)T2(Read(A);B=A+1B=
13、A+1;write(B)write(B)可以表示成:T1:R1(B)W1(A)T2:R2(A)W2(B)二、调度可串行性32本讲稿第三十二页,共八十六页R1(X)R1(Y)W1(Y)符号表示先于(),即R1(X)先于W1(Y)执行,R1(Y)先于W1(Y)执行,而R1(X)和R1(Y)的先后次序无关紧要。33本讲稿第三十三页,共八十六页2、冲突操作定义定义:如果两个操作来自不同的事务,它们对同一数据单位进行操作,并且其中至少有一个是写操作,则称这两个操作是相互冲突的或冲突操作。例:事务T0:W0(X)W0(Y)W0(Z)事务T1:R1(X)R1(Z)W1(X)则在这两个事务中有冲突操作:R R
14、1 1(X)(X)与与W W0 0(X)(X)W W1 1(X)(X)与与W W0 0(X)(X)R R1 1(Z)(Z)与与W W0 0(Z)(Z)调度:对于冲突操作不能同时执行,哪个先执行,哪个后执行。34本讲稿第三十四页,共八十六页3、调度:事务执行的次序。设=T1,T2,T n是一事务集,的一个调度S是一个拟序集(,s)其中:1)说明S执行的操作正是T1,T2,T n 的操作。2)s 说明调度S遵守每个事务的操作的内部执行次序 3)每对冲突操作的执行次序由S决定。R1(X)R1(Z)W1(X)S1=W0(X)W0(Y)W0(Z)S1=(W0(X),W0(Y),W0(Z),R1(X),R
15、1(Z),W1(X),W0(X)R1(X),W0(Z)R1(Z),R1(X)W1(X),R1(Z)W1(X)S1=(W0(X),W0(Y),W0(Z),R1(X),R1(Z),W1(X),W0(X)R1(X),W0(Z)R1(Z),R1(X)R1(Z),R1(X)W1(X),R1(Z)W1(X)S1=(W0(X),W0(Y),W0(Z),R1(X),R1(Z),W1(X),W0(X)R1(X),W0(Z)R1(Z),R1(Z)R1(X),R1(X)W1(X),R1(Z)W1(X)35本讲稿第三十五页,共八十六页4、串行调度:如果在一个调度中,各个事务不交叉执行,而顺序地串行执行,这个调度被称为
16、串行调度。定义:定义:如果调度S中的任意两个事务Ti和Tj,如果Ti的所有操作都先于Tj的所有操作,或者相反,则称S为串行调串行调度。度。注意:注意:在串行调度中每一个事务都是在下一个事务开始执行之前提交。因此,串行调度没有并发性串行调度没有并发性,故每一个串行调度都是一个正确的执行。5、并发调度:如果在一个调度中,各个事务交叉地执行,这个调度称为并发调度。36本讲稿第三十六页,共八十六页6、可串行化的调度:如果一个事务集的并发调度与某一串行调度是等价的,则称该并发调度是可串行化的。7、串行化定理定理:定理:一个调度S是可串行化的,当且仅当它的串行图是无环的。无环的。串行图串行图:设S是若干事
17、务T1,T2,Tn的一个调度,S的串行图SG(S)是一个有向图,其构成规则如下:1)图中的结点表示事务2)如果Oi和Oj是冲突操作,且Oi先于Oj执行,则在图中有一条边TiTj。37本讲稿第三十七页,共八十六页R1(X)W1(X)R3(X)W3(Z)R2(X)W2(Y)W1(Y)T2T1T3R1(X)W1(X)R3(X)W3(X)R2(X)W2(Y)W1(Y)T2T1T3例:38本讲稿第三十八页,共八十六页8、等价的串行调度:如果SG(S)是无环的,则S等价于SG(S)的任一拓扑排序。T2T1T3拓扑排序为:T2,T1,T3T1 T2 T3 拓扑排序为:T1,T3,T2 或为:T1,T2,T3
18、 拓扑排序:从无入弧的节点开始递归去除拓扑排序:从无入弧的节点开始递归去除39本讲稿第三十九页,共八十六页W0(X)W0(Y)W0(Z)R1(X)R1(Z)W1(X)R3(Z)W3(Y)W3(Z)R4(X)R4(Y)R4(Z)R2(X)W2(Y)T0 T1 T2 T3 T4 调度S的串行图拓扑排序为:T0,T2,T1,T3,T4或为:T0,T2,T3,T1,T440本讲稿第四十页,共八十六页1 1、封锁封锁:事务T在对数据进行操作之前,先向系统申请对其进行加锁,获得锁后不允许其它事务更新该数据,直到事务T释放该数据上的锁。2 2、封锁的类型封锁的类型排它锁排它锁(又称写锁,简称X锁)若事务T对
19、数据对象A加上X锁,则其它事务不能在A上加任何类型的锁,此时,只允许事务T读取和修改A,直到T释放A上的锁。共享锁共享锁(又称读锁,简称S锁)若事务T对数据对象A加上S锁,则其它事务也可在A上加S锁,但不能加X锁,事务T和其它事务只能读取A,但不能修改A。三、基于封锁的并发控制41本讲稿第四十一页,共八十六页封锁封锁级别级别加锁加锁放锁放锁防止丢防止丢失修改失修改保证可保证可重复读重复读不读不读“脏脏”数数据据一级一级事务事务T T在修改数据在修改数据A A之之前必须先对其加前必须先对其加X X锁锁事务结束事务结束才释放才释放X X锁锁可防可防止止不能不能保证保证不能不能保证保证二级二级一级封
20、锁协议一级封锁协议+事事务务T T在读取数据在读取数据A A之前之前必须对其加必须对其加S S锁锁读完后即读完后即可释放可释放S S锁锁可防可防止止不能不能保证保证能保能保证证三级三级一级封锁协议一级封锁协议+事事务务T T在读取数据在读取数据A A之前之前必须对其加必须对其加S S锁锁事务结束事务结束才释放才释放S S锁锁可防可防止止能保能保证证能保能保证证3、封锁协议封锁协议42本讲稿第四十二页,共八十六页一级封锁协议例Xlock ARead(A)A=10A=A-5Write(A)CommitUnlock AXlock ARead(A)A=5A=A-5Write(A)CommitUnloc
21、k A等待等待等待等待获得 Xlock A事务T1事务T2没有丢失修改READ(C,D)M=C+DREAD(C,D)M=C+DREAD(C,D)C=C+10D=D+10事务T1事务T2不可重复读Write(D)Write(C)Xlock CXlock DUnlock CUnlock D43本讲稿第四十三页,共八十六页二级封锁协议例READ(C,D)M=C+DREAD(C,D)C=C+10D=D+10事务T1事务T2防止读“脏”数据Write(D)Write(C)Xlock CXlock DUnlock CUnlock DRollBackSlock CSlock D等待等待等待获得Slock C
22、获得Slock DUnlock CUnlock DREAD(C,D)M=C+DREAD(C,D)C=C+10D=D+10事务T1事务T2不可重复读Write(D)Write(C)Xlock CXlock DUnlock CUnlock DSlock CSlock DUnlock CUnlock D等待获得Xlock C获得Xlock DREAD(C,D)M=C+DSlock CSlock DUnlock CUnlock D等待获得Slock C获得Slock DCommitCommitCommit44本讲稿第四十四页,共八十六页三级封锁协议例READ(C,D)M=C+DREAD(C,D)C=C
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 数据库保护精选文档 数据库 保护 精选 文档
限制150内