高级数据库技术-高级数据库技术6-事务模型与调度

高级数据库技术-高级数据库技术6-事务模型与调度

ID:40794030

大小:552.50 KB

页数:64页

时间:2019-08-07

高级数据库技术-高级数据库技术6-事务模型与调度_第1页
高级数据库技术-高级数据库技术6-事务模型与调度_第2页
高级数据库技术-高级数据库技术6-事务模型与调度_第3页
高级数据库技术-高级数据库技术6-事务模型与调度_第4页
高级数据库技术-高级数据库技术6-事务模型与调度_第5页
资源描述:

《高级数据库技术-高级数据库技术6-事务模型与调度》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、事务JimGrayTRANSACTIONPROCESSING:CONCEPTSANDTECHNIQUEShttp://research.microsoft.com/~gray/Commitment:It’slikebaconandeggs.Thechickenparticipates.Thepigiscommitted.提纲事务概念事务模型事务调度事务隔离性级别事务冲突可串行化事务视图可串行化事务概念事务定义事务是由一系列操作序列构成的程序执行单元,这些操作要么都做,要么都不做,是一个不可分割的工作单位。例如:银行转帐:事务T从A帐户过户50¥到B帐户read(

2、A);A:=A–50;write(A);read(B);B:=B+50;write(B);read(X):从数据库传送数据项X到事务的工作区中write(X):从事务的工作区中将数据项X写回数据库事务概念SQL中事务的定义事务以Begintransaction开始,以Committransaction或Rollbacktransaction结束Committransaction表示提交,事务正常结束Rollbacktransaction表示事务非正常结束,撤消事务已做的操作,回滚到事务开始时状态CommitWork(Rollbackwork)后不跟事务名称事务概

3、念事务特性(ACID)原子性(Atomicity)事务中包含的所有操作要么全做,要么全不做原子性由恢复机制实现一致性(Consistency)事务的隔离执行必须保证数据库的一致性事务开始前,数据库处于一致性的状态;事务结束后,数据库必须仍处于一致性状态数据库的一致性状态由用户来负责如银行转帐,转帐前后两个帐户金额之和应保持不变(意大利香肠)事务概念隔离性(Isolation)系统必须保证事务不受其它并发执行事务的影响对任何一对事务T1,T2,在T1看来,T2要么在T1开始之前已经结束,要么在T1完成之后再开始执行隔离性通过并发控制机制实现持久性(Durabili

4、ty)一个事务一旦提交之后,它对数据库的影响必须是永久的系统发生故障不能改变事务的持久性持久性通过恢复机制实现事务概念活动状态失败状态部分提交状态提交状态中止状态初始状态事务无法继续正常执行事务回滚,数据库恢复到事务开始前状态最后一条语句被执行后成功完成,永久写入数据库事务生命周期图事务执行模式显式事务以BEGINTRANSACTION开始,以COMMIT或ROLLBACK结束隐含事务事务自动开始,直到遇到COMMIT或ROLLBACK时结束自动事务每个数据操作语句作为一个事务updateSCsetGRADE=GRADE+15setimplicit_transa

5、ctions{ON

6、OFF}事务中的错误检查BegintranUpdateSCSetgrade=grade+5UpdateSCSetgrade=grade+20CommittranSelect*fromSCBegintranUpdateSCSetgrade=grade+5UpdateSCSetgrade=grade+20If@@error<>0rollbacktranSelect*fromSCCommittran事务和批处理是一种多对多的关系,即一个事务中可以包含多个批,一个批中也可以包含多个事务setXACT_ABORTON触发器中的事务系统将触发器连同触发操

7、作一起视作隐性嵌套事务,因此触发器可以回滚触发它的操作每次进入触发器,@@TRANCOUNT就增加1,即使在自动提交模式下在存储过程中,rollback语句不影响调用该过程的批处理中的后续语句,并执行批处理中的后续语句在触发器中,rollback语句终止含有激发触发器的语句的批处理,不执行批处理中的后续语句begintrandelete……insert……update……commitbegintraninsert……commitgoselect……事务模型平面事务一层结构BEGINTRAN……COMMIT平面事务的缺点(不能部分回滚)确定旅行路线批量更新如银行结

8、算利息,可以把更新每个帐号作为一个事务,也可以把更新所有帐号作为一个事务北京郑州上海天津济南事务模型Moss提出的嵌套事务模型:嵌套事务是一棵事务树,子树可以是嵌套的也可以是平面的叶结点事务是平面事务,从根结点到各个叶结点的距离可以是不同的根结点事务称作顶层事务,其他称作子事务子事务可以提交也可以回滚,但它的提交并不起作用,除非它的父事务提交。只有根结点的提交才会使得所有子事务提交树中任何一个事务的回滚导致它的所有子事务的回滚子事务具有一般事务的A,C,I特性,但不具有D特性实际工作只发生在叶结点事务中,只有它们可以访问数据库,发送消息等。上层事务只是组织控制流

9、以及决定什么时候该激活哪

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

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

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