数据库基本原理与应用 第15章 事务

数据库基本原理与应用 第15章 事务

ID:37614069

大小:724.71 KB

页数:36页

时间:2019-05-26

数据库基本原理与应用 第15章 事务_第1页
数据库基本原理与应用 第15章 事务_第2页
数据库基本原理与应用 第15章 事务_第3页
数据库基本原理与应用 第15章 事务_第4页
数据库基本原理与应用 第15章 事务_第5页
资源描述:

《数据库基本原理与应用 第15章 事务》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Chapter15:事务事务概念事务状态原子性与持久性的实现并发执行可串行性可恢复性隔离性的实现SQL中事务的定义检测可串行性1事务概念事务是程序的逻辑运行单位事务必须保持数据库的一致性在事务执行过程中,数据库可能处于不一致状态当事务提交时,数据库必须处于一致状态要处理的两个问题:各种故障,如硬件故障和系统崩溃多个事务的并发执行2ACID性质为保持数据一致性,数据库系统必须确保:Atomicity.事务的操作要么完全执行,要么全不做Consistency.在隔离状态下事务的执行保持数据库的一致性Isolation.尽管多个事

2、务可以并发执行,每个事务必须不了解其他并发执行的事务.事务的中间结果对其他并发事务是不可见的Durability.事务成功结束后,对数据库所做的更新将永久化,即使再发生系统故障也不受影响.3问题修改丢失用户t1t2t3t4(时间)AX=40X=X-30BX=40X=X-20假设用户A和B都读取X(X=40),然后分别把X减少30和20。用户A在t3把改后的X(X=10)写入数据库。随后,用户B在t4把改后的X(X=20)写入数据库。于是,对用户A而言,他的修改在t4处丢失了。读出“脏”数据(dirtyread)用户t1t2t3t4(时间)AX=40X=X+

3、30rollbackBX=70用户A在t2把X增加30(尚没写入数据库),用户B在t3由数据缓存读出x=70,但用户A在t4时撤消(Undo)了对X的修改,数据库中仍维持X=40.但用户B已把“脏”数据(X=70)取走。4问题不能重复读(Non-Repeatableread)用户t1t2t3t4t5t6AX=40y=30x+y=70z=30x+y+z=100Bx=40x=x+20COMMIT用户A,用户B分别读取X=40后,在t3用户A取出y=30并计算x+y=70在t4时用户B把x增加20,并于t5把x(x=60)写入数据库。在t6时,用户A取出z(z=30

4、)并继续计算x+y+z=100.,但如果用户A为进行核算而把x、y、z重读一次再进行计算,却出现x+y+z=120(x已增加20)。5转账例从账户A转移$50到账户B:1.read(A)2.A:=A–503.write(A)4.read(B)5.B:=B+506.write(B)一致性要求–事务执行前后A与B之和保持不变.原子性要求–若事务在第3步之后及第6步之前失败,系统应确保事务所做更新不被反映到数据库中,否则会出现不一致.6转账例(续)持久性要求—一旦用户被告知事务已经完成(即,$50转账已经发生),则即使发生故障,事务对数据库的更新也必须持久化.

5、隔离性要求—若在第3步与第6步之间允许另一事务存取部分更新的数据库,该事务将看到不一致的数据库(A+B小于正确值).可通过串行(即一个接一个)执行事务来确保隔离性.但是并发执行多个事务具有很多好处.7事务状态Active,初始状态;事务执行时也处于此状态Partiallycommitted,最后一条语句执行之后.Failed,发现不能继续正常执行之后.Aborted,事务已回滚并且数据库已恢复到事务开始前的状态之后.此后有两种选择:重启事务–仅当非内部逻辑错误时杀死事务Committed,事务成功结束之后.8事务状态(续)9原子性与持久性的实现s

6、hadow-database方案:假设磁盘不出故障可用于文本编辑器,但对大型数据库极端低效:执行一个事务就需要拷贝整个数据库.10并发执行多个事务可同时运行.好处是:增加处理器和磁盘的利用率,导致更好的事务吞吐量:一个事务正在使用CPU而另一个正在读写磁盘减少事务的平均响应时间:短事务不应等在长事务之后.并发控制方案–达到隔离性的机制,即控制并发事务的交互以防止它们破坏数据库的一致性第16章介绍11调度调度–并发事务的指令按时间顺序执行的序列事务集合的一个调度必须包括所有事务的所有指令必须保持各个事务内部的指令顺序12调度例令T从A转账$

7、50到B,T从A转账余额的10%到B.下列12是一个串行调度(教材中的Schedule1),先T后T.1213调度例(续)令T与T如前定义.下列调度(教材中的Schedule123)不是串行调度,但与Schedule1等价.Schedule1和3都保持和A+B.14调度例(续)下列并发调度(教材中的Schedule4)未能保持和A+B.15可串行化基本假定–每个事务都保持数据库的一致性.(故)一组事务的串行执行也保持数据库的一致性.一个(并发)调度是可串行化的当且仅当它与一个串行调度等价.不同形式的调度等价定义(冲突等价和视图等价)导致不同的可串行化概

8、念:1.冲突可串行化2.

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

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

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