第7章 系统实现技术201006

上传人:野鹰 文档编号:2656001 上传时间:2017-07-26 格式:PPT 页数:89 大小:465KB
返回 下载 相关 举报
第7章 系统实现技术201006_第1页
第1页 / 共89页
第7章 系统实现技术201006_第2页
第2页 / 共89页
第7章 系统实现技术201006_第3页
第3页 / 共89页
第7章 系统实现技术201006_第4页
第4页 / 共89页
第7章 系统实现技术201006_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《第7章 系统实现技术201006》由会员分享,可在线阅读,更多相关《第7章 系统实现技术201006(89页珍藏版)》请在金锄头文库上搜索。

1、第七章 系统实现技术,本章重要概念(一),(1)事务的定义,COMMIT和ROLLBACK的语义,事务的ACID性质,事务的状态变迁图。 (2)存储器类型,稳定存储器的实现,数据传送过程。 (3)恢复的定义、基本原则和实现方法,故障的类型,检查点技术,REDO和UNDO操作,运行记录优先原则。,本章重要概念(二),(4)并发操作带来的三个问题,X锁、PX协议、PXC协议,S锁、PS协议、PSC协议,活锁、饿死和死锁,并发调度,串行调度,并发调度的可串行化,两段封锁法,SQL中事务的存取模式和隔离级别。(5)完整性的定义,完整性子系统的功能,完整性规则的组成。SQL中的三大类完整性约束,SQL3

2、中的触发器技术。(6)安全性的定义、级别,权限,SQL中的安全性机制,几种常用的安全性措施,自然环境的安全性。,主要内容和学习 e3,7.1 事务 (综合应用)7.2 数据库的恢复 (理解)7.3 数据库的并发控制 (理解)7.4 数据库的完整性(理解)7.5 数据库的安全性(理解)7.6小结,事务,定义事务(transaction)是构成单一逻辑工作单元的操作集合。 性质原子性(Atomicity):事务是一个不可分割的工作单元 一致性(Consistency) :即数据不会应事务的执行而遭受破坏 隔离性(Isolation) :在多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果

3、一样 持久性(Durability) :一个事务一旦完成全部操作后,它对数据库的所有更新应永久地反映在数据库中,事务的性质原子性,事务中的操作,要么全做成,要么都不做事务是不可拆分的事务必须以 Commit/Rollback 结束由DBMS的事务管理子系统完成。,事务结束,COMMIT事务正常结束 提交事务的所有操作(读+更新)事务中所有对数据库的更新永久生效ROLLBACK事务异常终止事务运行的过程中发生了故障,不能继续执行回滚事务的所有更新操作事务滚回到开始时的状态,事务的性质一致性,独立运行的事务,必须保证保持数据库的一致状态即数据不会因为事务的执行而遭到破坏。数据库的一致性状态由编写事

4、务程序的程序员来负责,也可以由系统测试完整性约束自动完成。由DBMS的完整性子系统完成。,事务的性质隔离性,系统必须保证事务不受其它并发执行事务的影响。多个并发事务之间不能相互干扰并发不影响事务的执行隔离性通过并发控制子系统实现。,事务的性质持久性,一旦事务成功完成(Commit),它对数据库的更新应该是持久的即使在写入磁盘之前,系统发生故障在下次启动之后,也应保障数据更新的有效持久性通过恢复管理子系统实现。,7.1.2 事务的性质,对数据库的访问是建立在读和写两个操作的基础上。read(X):从数据库传送数据项X到事务的工作区中。write(X):从事务的工作区中将数据项X写回数据库。,例子

5、:事务及其性质,问题:设银行数据库中有一转账事务T,从账号A转一笔款子($50)到账号B。相应的事务: T:read(A); A:=A50; write(A); read(B); B:=B + 50; write(B).,原子性(A,B同时被修改或同时保持原值)一致性(A+B的值不变)隔离性持久性,7.1.2 事务的状态变迁图,1、活动状态:read/write ,暂存系统缓冲区。2、局部提交状态:对数据库的修改仍暂存系统缓冲区。3、失败状态:事务因为故障,执行未到最后一个语句就中止了。4、异常中止状态:撤销修改部分数据的操作,此时事务重新启动或取消事务。5、提交状态:提交全部修改数据库的操作

6、。,主要内容和学习,7.1 事务 (综合应用)7.2 数据库的恢复 (理解)7.3 数据库的并发控制 (理解)7.4 数据库的完整性(理解)7.5 数据库的安全性(理解)小结,可恢复性,定义:可恢复性:系统能把数据库从被破坏、不正确的状态恢复到最近一个正确的状态,DBMS的这种能力称为数据库的可恢复性。存储器类型易失性存储器(volatile storage)内存、cache存储器 非易失性存储器(nonvolatile storage)磁盘和磁带 稳定存储器(stable storage)这是一个理论上的概念。存储在稳定存储器中的信息是决不会丢失的。,7.3.1存储器类型,稳定存储器的实现数

7、据备份 数据银行 数据访问,数据访问:块和块的操作,块、物理块和缓冲块块的操作input(A):把物理块A的内容传送到内存的缓冲块中。Output(B):把缓冲块B的内容传送到磁盘中恰当的物理块中,数据访问,事务,系统,磁盘,故障类型和恢复方法,(1)事务故障非预期的事务故障事务由于某些内部条件无法继续正常执行如:非法输入、找不到数据、运算溢出等可预期的事务故障应用程序可以发现的事务故障如存款透支该事务可在以后的某个时间重新执行 此时数据库中的数据处于非一致状态,进行UNDO处理。,故障类型和恢复方法,(2)系统故障系统停止运转并重新启动的事件称为系统故障。如硬件故障、软件错误、停电、CPU故

8、障等一般只影响正在执行的事务,内存数据丢失,而不会破坏数据库本身以及DBMS环境系统重新启动时,数据库处于一种非一致性状态,处理:对未完成事务作UNDO处理。对已经提交但更新保留缓冲区的事务作REDO处理。,故障类型和恢复方法,()介质故障外存发生故障,导致存储其中的数据、或数据库本身、或DBMS软件处于不正常状态这类故障的破坏性较大,频率低。小结:事务故障和系统故障的恢复由系统自动进行,而介质故障的恢复需要DBA配合执行。Word/工具/选项/保存/10分钟,恢复的基本原则和实现方法,恢复的基本原则:冗余冗余技术是数据库恢复的保障利用冗余数据,重建数据,使其达到一致的状态建立整个数据库的冗余

9、将整个数据库进行备份(冗余的数据库)需要时将备份数据库恢复(重载)至系统中,恢复的实现方法: (1)转储(2)建立日志,恢复的基本原则和实现方法,恢复的实现方法:(1)定期对整个数据库进行复制和转储解决数据库本身被破坏的场合只能恢复到数据库被备份时的状态转储可以分为:静态转储:在存储期间不允许对数据库进行存取、修改。动态转储:在存储期间允许对数据库进行存取、修改。转储还可以分为:海量存储:每次存储全部数据库增量存储:每次只存储上次转储后更新过的数据。,恢复的基本原则和实现方法,恢复的基本原则和实现方法,恢复的实现方法: (2)建立日志文件以日志文件的形式,记录事务对数据库的更新操作日志文件记录

10、了数据库更新的所有日志记录的序列常见的是以记录为单位的日志文件利用日志记录,可对数据库做相应的恢复日志内容:各个事务的开始标志各个事务的数据更新操作各个事务的结束(Commit/Rollback),恢复的基本原则和实现方法,()恢复数据库本身(或DBMS)被破坏重新安装DBMSReload数据库副本(先前被转储的数据库)用日志文件执行REDO操作,不丢失对数据库的更新。需DBA人工处理,数据库恢复技术恢复,数据库本身未被破坏,但有些数据不可靠系统重启,扫描日志文件(耗时)根据日志,作Undo:对更新的操作执行反向操作系统自动完成,在数据库恢复时,对于已经COMMIT但更新仍停留在缓冲区的事务要

11、执行REDO操作,即根据日志内容把该事务对数据库的修改再做一遍。对于还未结束的事务要执行UNDO操作,即根据日志内容把事务对数据库已作的修改撤销掉。,7.3.4检查点方法,1什么是检查点方法检查点方法的恢复算法根据日志文件建立事务重做队列和事务撤销队列对重做队列中的事务进行REDO处理,对撤消队列中的事务进行UNDO处理,-,事务,检查点t2,故障点tf,时间,检查点t1,T1,T3,T2,T5,T4,事务T1不必恢复;事务T2和事务T4必须重做(REDO);事务T3和事务T5必须撤消(UNDO),事务举例:假设A公司从M01厂商进了P001产品100件,我们除了在进货文件中加以记录外,还要使

12、该产品的库存增加100个。两个操作都执行才算成功。,Begin tranInsert purchase(id,factory,purdate,qty) Values(P001,M01,getdate(),100)If error!=0 then begin print 操作进货文件时生成错误 return /返回调用处 endUpdate stock set st_qty= st_qty+100 where id=P001 and factory= M01If error!=0 or rowcount=0 then begin rollback tran /回滚到程序开始处 print 操作库

13、存文件时生成错误 return /返回调用处 endCommit tran,检查点,检查点:在事务中可以设置数个检查点,在rollback命令中指定将数据库操作返回到某个检查点。先在事务模块中设置检查点:save transaction 检查点名称Begin tranInsert purchase(id,factory,purdate,qty)Values(P001,M01,getdate(),100)If error!=0 then begin print 操作进货文件时生成错误 return /返回调用处 endsave transaction before_update_stkUpdat

14、e stock set st_qty= st_qty+100 where id=P001 and factory= M01If error!=0 or rowcount=0 then begin rollback tran before_update_stk Commit tran print 操作库存文件时生成错误 return /返回调用处 endCommit tran一旦操作库存文件时生成错误,事务处理至返回到before_update_stk点。即对进货文件有效。,小结(续),常用恢复技术事务故障的恢复UNDO系统故障的恢复UNDO + REDO介质故障的恢复重装备份并恢复到一致性状态

15、 + REDO,练习:,、为了能在出故障时,做好恢复,应在平时做好两件事情:( )和( )、后备副本的主要作用是( )3、日志文件用于保存( ),、(转储)备份和日志、故障恢复、对数据库的更新操作,主要内容和学习,7.1 事务 (综合应用)7.2 数据库的恢复 (理解)7.3 数据库的并发控制 (理解)7.4 并发事务的可串行化和可恢复性(了解)7.5 数据库的完整性(理解)7.6 数据库的安全性(理解)小结,数据库的并发操作带来的问题,数据库是一个共享资源,可以由多个用户使用。这些用户程序可以一个一个的串行执行,每一时刻只有一个用户程序运行,执行对数据库的存取。其他程序必须等到这个用户程序结束后才能对数据库存取。在多用户共享系统中,如果多个用户同时对同一数据进行操作称为并发操作。可能会互相干扰,破坏了事务的隔离性。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号