数据库原理第十章课件

上传人:kms****20 文档编号:51815956 上传时间:2018-08-16 格式:PPT 页数:47 大小:496KB
返回 下载 相关 举报
数据库原理第十章课件_第1页
第1页 / 共47页
数据库原理第十章课件_第2页
第2页 / 共47页
数据库原理第十章课件_第3页
第3页 / 共47页
数据库原理第十章课件_第4页
第4页 / 共47页
数据库原理第十章课件_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《数据库原理第十章课件》由会员分享,可在线阅读,更多相关《数据库原理第十章课件(47页珍藏版)》请在金锄头文库上搜索。

1、 Spring, 2009. 数据库原理主讲:赵海霞河南科技大学电信学院 Spring, 2009. 学习要点n事务n故障及其类型n数据库恢复实现技术n数据库恢复策略第十章 数据库恢复技术 Spring, 2009. 10.1 事务的基本概念n事务(Transaction)F 用户定义的一个对数据库的读写操作序列F 一个不可分割的工作单位F 数据库恢复和并发控制的基本单位F 数据库系统中通常有多个事务并行运行n在关系数据库中,事务可以是一条、一组SQL语句,或整个程序n事务和程序的区别?F 程序包含多个事务 Spring, 2009. SQL语言中定义事务的语句n事务的开始和结束可以由用户显式

2、控制。如果用户没 有定义,则由DBMS按缺省规定自动划分事务。nSQL定义事务的语句FBegin transaction(事务开始)FCommit(事务提交,正常结束,将更新结果写入磁盘)FRollback(事务回滚,撤销事务中所有已完成的更新) Spring, 2009. 事务示例BEGIN TRANSACTION读账户甲的余额balance;balance = balance amount; /amount为转账金额if (balance 0) then打印金额不足,不能转账;ROLLBACK; /撤销刚才的修改,恢复事务else读账户乙的金额balance1;balance1 = bal

3、ance1 + amount;写回balance1;COMMIT; Spring, 2009. 事务的ACID性质n原子性(Atomicity)n一致性(Consistency)n隔离性(Isolation)n持续性(Durability) DBMS中事务处理必须保证其ACID特性,这 样才能保证数据库中数据的安全和正确 Spring, 2009. 事务的原子性原子性 (atomicity) :一个事务中所有对数据库的操作,是一个不 可分割的操作序列。“要么全做”“要么什么也不做”(All or None)DBMS的事务管理子系统负 责 Spring, 2009. 事务的一致性一致性(cons

4、istency):一个事务独立执行的结果,将保持数据库的 一致性,即数据不会因事务的执行而遭受破坏。可由编写事务程 序的应用程序员 完成也可由系统测试完 整性约束自动完成 Spring, 2009. 事务的隔离性隔离性(isolation):多个事务并发执行时,系统应保证与这些事务 先后单独执行时的结果一样。并发执行的各事务不 能相互干扰由DBMS的并发控 制子系统负责 Spring, 2009. 事务的持续性持续性(durability)一个事务一旦完成全部操作,它对数据库的 所有更新应永久性地反映在数据库中。由DBMS的恢复管 理子系统负责 Spring, 2009. 事务的事务的ACID

5、ACID性质性质数据库的访问:I.read(X):把数据X从数据库中读到内存缓冲区II. write(X):把数据X从内存缓冲区写回数据库数据库内存 缓冲区read(X)write(X)XX Spring, 2009. 事务的事务的ACIDACID性质性质例:银行数据库中有一转帐事务Ti,从帐号A转一 笔款(¥50)到帐号B。AB¥50AB¥50 Spring, 2009. 其操作如下:Ti: read(A); A:=A-50; Write(A); Read(B); B:=B+50; Write(B);内存 缓冲区1、read(A)3、write(A)AABB2、A:=A-504、read(B

6、)6、write(B)5、B:=B+50事务的事务的ACIDACID性质性质 Spring, 2009. 原子性:n 事务中所有操作应作为一个整体,不能分割,要么 全做,要么全不做。 n 如果只修改了A的值而没有修改B的值,就违反了事 务的原子性。Ti: read(A); A:=A-50; Write(A); Read(B); B:=B+50; Write(B);AB¥50事务的事务的ACIDACID性质性质 Spring, 2009. 一致性:n 在事务Ti执行结束后,要求数据库中A的值减50,B的 值增50,即A与B的和不变,此时称数据库处于一致状态 。Ti: read(A); A:=A-

7、50; Write(A); Read(B); B:=B+50; Write(B);A-50B+50A+B不变注:“暂时不一致状态”的合理性、透明性。事务的事务的ACIDACID性质性质 Spring, 2009. 隔离性:n 同时两个事务Ti和Tj对A、B操作,彼此独立,互不干涉。Ti: read(A); A:=A-50; Write(A); Read(B); B:=B+50; Write(B);注:如Ti“暂时不一致状态”时如何控制Tj事务。ABTj: read(A); A:=A+100; Write(A); Read(B); B:=B-100; Write(B);¥50¥100事务的事务的

8、ACIDACID性质性质 Spring, 2009. 持久性:n事务的持久性保证事务成功执行后,所有对数据库 修改的影响应长期存在,不能丢失。既使计算机系统 的故障导致内存中数据丢失,但写入磁盘的数据也决 不能丢失。n如何保证事务持久性的实现? F 事务的更新操作应在事务完成之前写入磁盘; F 事务的更新和写入磁盘操作应保存足够的信息, 足以使数据库系统在遇到故障后重新启动时重构更 新操作。事务的事务的ACIDACID性质性质 Spring, 2009. BEGIN TRANSACTIONBEGIN TRANSACTIONEND TRANSACTION事务的状态变迁事务的状态变迁活动局部提交失

9、败提交异常中止COMMITABORTROLLBACKABORTREAD/WRITE事务的状态变迁图 Spring, 2009. BEGIN TRANSACTIONBEGIN TRANSACTIONEND TRANSACTION事务的状态变迁事务的状态变迁活动局部提交失败提交异常中止COMMITABORTROLLBACKABORTREAD/WRITE事务的状态变迁图在事务开始执行后,立即进入“活动”状态 。在活动状态,事务执行对数据库的读/写 操作。但是“写操作”并不立即写到磁盘上 ,很可能暂时存放在系统缓冲区中。 Spring, 2009. BEGIN TRANSACTIONBEGIN TRA

10、NSACTIONEND TRANSACTION事务的状态变迁事务的状态变迁活动局部提交失败提交异常中止COMMITABORTROLLBACKABORTREAD/WRITE事务的状态变迁图事务的最后一个语句执行之后 ,进入“局部提交”状态。事务 执行完毕,但对数据库的修改 ,可能还在内存的系统缓冲区 中,事务还没有真正结束。 Spring, 2009. BEGIN TRANSACTIONBEGIN TRANSACTIONEND TRANSACTION事务的状态变迁事务的状态变迁活动局部提交失败提交异常中止COMMITABORTROLLBACKABORTREAD/WRITE事务的状态变迁图处于活动

11、状态的事务还没 有执行完最后一个语句就 中止执行,事务进入“失败 ”状态。 Spring, 2009. BEGIN TRANSACTIONBEGIN TRANSACTIONEND TRANSACTION事务的状态变迁事务的状态变迁活动局部提交失败提交异常中止COMMITABORTROLLBACKABORTREAD/WRITE事务的状态变迁图在局部提交状态,虽然事务 的语句执行结束,但对数据 库的修改可能还没有写到数 据库。此时,如果系统出现 故障,事务将进入“失败”状 态。 Spring, 2009. BEGIN TRANSACTIONBEGIN TRANSACTIONEND TRANSACT

12、ION事务的状态变迁事务的状态变迁活动局部提交失败提交异常中止COMMITABORTROLLBACKABORTREAD/WRITE事务的状态变迁图处于失败状态的事务,可能已 对磁盘中的数据进行了部分修 改。为了保证事务的原子性, 应该撤销该事务对数据库已做 的修改。称为事务的回退。 Spring, 2009. BEGIN TRANSACTIONBEGIN TRANSACTIONEND TRANSACTION事务的状态变迁事务的状态变迁活动局部提交失败提交异常中止COMMITABORTROLLBACKABORTREAD/WRITE事务的状态变迁图事务进入异常中止状态,系统可 以重新启动(软硬件故

13、障),或 取消事务(事务逻辑错误)。 Spring, 2009. BEGIN TRANSACTIONBEGIN TRANSACTIONEND TRANSACTION事务的状态变迁事务的状态变迁活动局部提交失败提交异常中止COMMITABORTROLLBACKABORTREAD/WRITE事务的状态变迁图事务进入局部提交状态后,并发控制系统 将检查并发事务之间是否存在干扰现象, 通过检查后,系统执行提交操作,把对数 据库的修改全部写到磁盘上。事务成功结 束,进入“提交”状态。 Spring, 2009. BEGIN TRANSACTIONBEGIN TRANSACTIONEND TRANSACT

14、ION事务的状态变迁事务的状态变迁活动局部提交失败提交异常中止COMMITABORTROLLBACKABORTREAD/WRITE事务的状态变迁图ABORT ABORT都是事务的结束状态!都是事务的结束状态! Spring, 2009. 事务型DBMS中必备的机制n事务是恢复和并发控制的基本单位n恢复机制与并发控制机制的提出 F事务在运行过程中因某种故障被强行终止, 数据库一致性被破坏,需进行恢复 F多个事务并行运行时,不同事务的各种操作 交叉进行,为保证各事务的执行互不干扰, 需进行并发控制 Spring, 2009. 10.2 数据库恢复概述F数据库系统运行时,可能会出现各种故障,导 致可

15、能丢失数据。F DBMS的恢复子系统要保证事务的原子性和持 久性,确保数据不丢失、不破坏。FDBMS的恢复子系统把数据库从被破坏、不正确 的状态恢复到最近一个正确的状态的能力称为 数据库的恢复。F恢复机制涉及的关键问题是: 如何建立冗余数据; 如何利用这些冗余数据实施数据库恢复。 Spring, 2009. 10.3 故障的种类n事务内部故障 F 事务在运行至正常终止点(commit或rollback)前被终止 F 包括 能由事务所在程序处理的,如条件不满足等 不能由事务所在程序处理的,如运算溢出等n系统故障(system) F CPU故障、OS故障、DBMS代码错误、掉电等 F 恢复子系统必

16、须在系统重新启动时,撤消(UNDO)所有未完成事务, 重做(REDO)所有已提交的事务,将数据库真正恢复到一致的状态。n介质故障(medium) F 磁盘损坏等n计算机病毒(virus) Spring, 2009. 各类故障对数据库的可能影响n数据库本身被破坏,使数据库中全部或部分数据丢失F如介质故障、计算机病毒等n数据库没有被破坏,但因事务的运行被非正常 终止而使数据库数据失去一致性(正确性) F如事务内部故障、系统故障、计算机病毒等 Spring, 2009. 10.4 恢复的实现技术n数据库恢复的基本原理 F利用存储在系统别处的冗余数据来重建n恢复技术的两个关键 F如何建立冗余数据 数据转储 登录日志文件 F如何利用冗余数据恢复数据库 Spring, 2009. 数据转储是数据库恢复中采用的基本技术。所谓转储即 DBA定期地将整个数据库复制到磁带或另一个磁盘上保存 起来的过程。这些备用的数据文本称为后备副本。转储正常运行恢复TaTbTf转 储运行事务故

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

当前位置:首页 > 生活休闲 > 科普知识

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