数据库原理 第8章 数据库恢复技术.ppt

数据库原理 第8章 数据库恢复技术.ppt

ID:56477096

大小:609.00 KB

页数:101页

时间:2020-06-19

数据库原理 第8章  数据库恢复技术.ppt_第1页
数据库原理 第8章  数据库恢复技术.ppt_第2页
数据库原理 第8章  数据库恢复技术.ppt_第3页
数据库原理 第8章  数据库恢复技术.ppt_第4页
数据库原理 第8章  数据库恢复技术.ppt_第5页
资源描述:

《数据库原理 第8章 数据库恢复技术.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八章数据库恢复技术1第八章数据库恢复技术8.1事务的基本概念8.2数据库恢复概述8.3故障的种类8.4恢复的实现技术8.5恢复策略8.6数据库镜像2为什么需要事务银行转账例如,银行转账问题:假定资金从账户A转到账户B,至少需要两步:账户A的资金减少然后账户B的资金相应增加账户A账户B3假定张三的账户直接转账1000元到李四的账户CREATETABLEbank(customerNameCHAR(10),--顾客姓名currentMoneyMONEY--当前余额)GOALTERTABLEbankADDCONST

2、RAINTCK_currentMoneyCHECK(currentMoney>=1)GOINSERTINTObank(customerName,currentMoney)VALUES('张三',1000)INSERTINTObank(customerName,currentMoney)VALUES('李四',1)创建账户表,存放用户的账户信息添加约束:根据银行规定,账户余额不能少于1元,否则视为销户张三开户,开户金额为1000元;李四开户,开户金额1元4目前两个账户的余额总和为:1000+1=1001元5模拟

3、实现转账:从张三的账户转账1000元到李四的账户/*--转账测试:张三转账1000元给李四--*/--我们可能会这样这样编写语句--张三的账户少1000元,李四的账户多1000元UPDATEbankSETcurrentMoney=currentMoney-1000WHEREcustomerName='张三'UPDATEbankSETcurrentMoney=currentMoney+1000WHEREcustomerName='李四'GO--再次查看转账后的结果。SELECT*FROMbankGO请问: 执行

4、转账语句后,张三、李四的账户余额为多少?张三的账户没有减少但李四的账户却多了1000元1000+1001=2001元 总额多出了1000元!6--张三的账户减少1000元,李四的账户增加1000元UPDATEbankSETcurrentMoney=currentMoney-1000WHEREcustomerName='张三'UPDATEbankSETcurrentMoney=currentMoney+1000WHEREcustomerName='李四'GO错误原因分析:UPDATE语句违反约束: 余额>=1元

5、执行失败,所以张三还是1000元继续往下执行:执行成功,所以李四变为1001元如何解决呢?使用事务78.1事务的基本概念一、事务定义二、事务的特性8一、事务(Transaction)定义一个数据库操作序列一个不可分割的工作单位恢复和并发控制的基本单位事务和程序比较在关系数据库中,一个事务可以是一条或多条SQL语句,也可以包含一个或多个程序。一个程序通常包含多个事务9定义事务显式定义方式BEGINTRANSACTIONBEGINTRANSACTIONSQL语句1SQL语句1SQL语句2SQL语句2。。。。。。。

6、。。。COMMITROLLBACK隐式方式当用户没有显式地定义事务时,DBMS按缺省规定自动划分事务10事务结束COMMIT事务正常结束提交事务的所有操作(读+更新)事务中所有对数据库的更新永久生效ROLLBACK事务异常终止事务运行的过程中发生了故障,不能继续执行回滚事务的所有更新操作事务滚回到开始时的状态11二、事务的特性(ACID特性)事务的ACID特性:原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持续性(Durability)121.原子性事务是数据库的逻辑

7、工作单位事务中包括的诸操作要么都做,要么都不做132.一致性事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性状态:数据库中只包含成功事务提交的结果不一致状态:数据库中包含失败事务的结果14一致性与原子性银行转帐:从帐号A中取出一万元,存入帐号B。定义一个事务,该事务包括两个操作A=A-1;B=B+1这两个操作要么全做,要么全不做全做或者全不做,数据库都处于一致性状态。如果只做一个操作,数据库就处于不一致性状态153.隔离性一个事务的执行不能被其他事务干扰一个事务内部的操作及使用的数据对

8、其他并发事务是隔离的并发执行的各个事务之间不能互相干扰164.持续性持续性也称永久性(Permanence)一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。17事务的特性保证事务ACID特性是事务处理的任务破坏事务ACID特性的因素多个事务并行运行时,不同事务的操作交叉执行事务在运行过程中被强行停止18……关键语句讲解………BEGINTR

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。