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