网站大量收购独家精品文档,联系QQ:2885784924

数据库系统及应用10课件.ppt

  1. 1、本文档共96页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库系统及应用10课件

第十章 数据库恢复技术;10.1 事务的概念;1. 实例; 事务开始标记 UPDATE COURSE SET CNO=‘2256’ WHERE CNO=‘1156’ UPDATE SCORE SET CNO=‘2256’ WHERE CNO=‘1156’ 事务结束标记(COMMIT 或 ROLLBACK);例10.2 在银行应用中,将用户A账户中的1万元转移到用户B的账户上。 这个操作要求从用户A的账户中减掉1万元,在用户B的账户上增加1万元。银行的业务规则要求增加1万元和减少1万元这两个操作要么全做,要么一个也不要做。将下面的SQL语句定义成一个事务:;EXEC SQL UPDATE Account SET Balance = Balance + 10000 WHERE CID = B; /*用户B的账户增加10 000元*/ EXEC SQL SELECT Balance INTO :C_Balance /* 取出用户A的余额,放到变量C_Balance中*/ FROM Account WHERE CID = A;;If C_Balance 10000 then EXEC SQL ROLLBACK; /* 增加10 000元的操作,事务非??常结束*/ Else /* 如果用户A的余额充足 */ { EXEC SQL UPDATE Account SET Balance = Balance – 10 000 /*从用户A的存款中减掉10 000元*/ WHERE CID = A; EXEC SQL COMMIT; /*事务正常结束*/ }; 从本例中可以看到事务是类似于具有一个入口,两个出口的一种控制结构。COMMIT是一个出口,表示事务的所有操作都完成了。ROLLBACK是另一个出口,通过撤消所有的已经做过的操作达到一个操作也没做的效果。;2. 事务的特性; ⑶ 隔离性(Isolation) 为了提高事务的吞吐率,大多数DBMS允许同时执行多个事务,就像分时操作系统为了充分利用系统资源,同时执行多个进程一样。 ⑷ 持久性(Durability) 一个事务一旦完成了全部操作,它对数据库的所有更新操作的结果应反映到数据库中。 事务的这4个特性一般简称为事务的ACID特性。; 如果因为某种原因,一个事务不能从头到尾地成功执行,数据库就处于一个不一致性状态。这是不允许的。这时需要将数据库恢复到事务执行前的状态。 DBMS必须具有把数据库从错误状态恢复到某一已知的正确状态(亦称为一致性状态或完整性状态)的功能,这就是数据库的恢复。;主要有以下一些原因: ① 程序的错误,如应用程序、OS等 ② 硬件的故障 如外设、CPU等 ③ 操作员错误 如数据输入错误等 ④ 电源问题 电压过高或过低等 ⑤ 天灾 如火灾、地震等 ⑥ 恶意破坏 如计算机病毒、恶意 犯罪等; ⑴ 事务故障 事务故障意味着事务没有达到预期的终点(COMMIT或者显式的ROLLBACK),因此数据库可能处于不正确的状态。 注意:事务故障只发生在事务(Transaction)上,而整个数据库系统仍在控制下运行。 ; 事务故障有的是事务本身可预料的故障,可以由事务程序本身预先发现,且让事务回退(ROLLBACK);有的是事务本身不可预料的故障,不能由事务程序实现估计,是非预期的。例如,算术运算溢出、死锁、破坏完整性约束、超时、申请资源过多、输入错误、人工操作干予等等。; ⑵ 系统故障 系统故障又称为软故障(Soft Crash)。系统故障是指造成系统停止运转的任何事情,使得系统要重新启动。例如,CPU故障、操作系统故障、DBMS故障、死循环时系统安排停止、系统崩溃、断电等。这种故障发生在系统范围内,影响当前处理的全部事务,但是数据库尚没有被破坏。; 发生系统故障时,这时内存中的信息,尤其是数据库缓冲区(在内存)中的内容都被丢失,而存储在外存储设备上的数据未受到影响。由于所有运行事务都非正常终止,一些尚未完成的事务的结果可能已送入物理数据库,从而造成数据库可能处于不正确的状态。 ; ⑶ 介质故障 使存储在外存上的数据部

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档