第十章数据库恢复技术•事务•故障的种类•恢复的实现技术、策略•具有检查点的恢复技术设想网上购物的一次交易,付款过程包括以下DB操作:1)更新所购商品的库存信息;2)与银行系统交互,保存客户付款信息;3)生成订单一、事务事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位
定义方式BEGINTRANSACTIONBEGINTRANSACTIONSQL语句1SQL语句1SQL语句2SQL语句2
COMMITROLLBACK事务的特性(ACID特性)原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持续性(Durability)1
原子性事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做
一致性定义事务时,应保证事务执行的结果必使数据库从一个一致性状态变到另一个一致性状态
例:银行转帐,从帐号A中取出一万元,存入帐号B
B=B+10000A=A-10000BA3
隔离性对并发执行而言,一个事务的执行不能被其他事务干扰
T1的修改被T2覆盖了
读A=16A←A-3写回A=13①读A=16②③A←A-1写回A=15④T2T14
持续性一个事务一旦提交,它对数据库中数据的改变就应该是永久性的
思考:破坏事务ACID特性的因素可能有哪些
回顾什么叫事务
如何用SQL语句定义事务
事务的特性
在哪些情况下事务的特性可能遭到破坏
二、故障的种类1
事务故障:事务在运行过程中被中断,没有达到预期的终点
例如:运算溢出,并发死锁而被撤销的事务思考:事务故障带来的问题2
系统故障:造成系统停止运转的事件,影响所有正在运行的事务
例如:系统断电,CPU故障,OS故障等思考:系统故障带来的问题3
介质故障:硬故障,指外存故障