事务管理与并发控制.pptxVIP

  • 2
  • 0
  • 约9.29千字
  • 约 10页
  • 2025-06-21 发布于四川
  • 举报

第9章事务管理与并发控制

事务的概念(1.7)事务的概念事务的性质事务管理的基本命令

买卖交易——一手交钱一手交货01订票——查询、订位、(交钱)、出票(往返票?)02转帐——转出、转入03事务是构成单一逻辑工作单元的操作集合。事务举例

恢复的需要并发操作的需要买卖交易——一手交钱一手交货订票——查询、订位、(交钱)、出票(往返票?)转帐——转出、转入为什么需要事务的概念呢?

JamesGray——1998年获得图灵奖在数据库技术、特别是事务处理方面做出了杰出贡献。01解决了诸如完整性、安全性、并发控制等一系列技术难题。02

原子性(Atomicity)01一致性(Consistency)02隔离性(Isolation)03持久性(Durability)事务的这些性质通常称为ACID特性04事务的性质

原子性事务的原子性强调了一个事务是一个逻辑工作单元,是一个整体,是不可分割的。一个事务所包含的操作要么全部做,要么全部不做。买卖交易——一手交钱一手交货订票——查询、订位、(交钱)、出票(往返票?)转帐——转出、转入

一个事务执行一项数据库操作,事务将使数据库从一种一致性的状态变换成另一种一致性状态。在事务执行前,总是假设数据库是一致的,那么当事务成功执行后,数据库肯定仍然是一致的。买卖交易——一手交钱一手交货订票——查询、订位、(交钱)、出票(往返票?)转帐——转出、转入(帐目平衡)0102一致性

如果每个事务单独执行能保持原子性和一致性,这些事务并发执行也能保持原子性和一致性,则是事务的隔离性。并发记帐?隔离性

01事务的持久性是指一旦事务成功完成,该事务对数据库所施加的所有更新都是永久的。在ATM取钱后银行系统突然发生故障?02持久性

ACID性质——DBMS的功能如果让用户程序来实现结果会怎样?

事务的生命周期事务的结束——提交(Commit)或者撤销(Rollback)事务在活动中的状态活动状态——事务初始时部分提交状态——命令执行完、但未提交失败状态——发现正常操作不能进行撤销状态——撤销事务,恢复到事务前的状态提交状态——成功完成后

215命令执行完只要事务没有提交事务就没有结束,还有可能转变到失败状态。活动状态撤销状态4提交状态3失败状态6部分提交状态事务的生命周期

01开始事务02结束事务03事务保存点04隐含事务与自动提交SQL对事务的支持

开始事务使用BEGINTRANSACTION命令显式说明一个事务开始,它说明了对数据库进行操作的一个单元的起始点。在事务完成之前出现任何操作错误和故障,都可以撤销事务,使事务回退到这个起始点。

成功结束事务的命令是COMMITTRANSACTION,它的作用是提交或确认事务已经完成,所以该命令也称作事务提交。失败的事务需撤销,撤消事务的命令是ROLLBACKTRANSACTION,即撤消在该事务中对数据库所做的更新操作,使数据库回退到事务的起始点。结束事务有两种情况,即成功或失败:结束事务

举例:如下程序的结果?BEGINTRANSACTIONCREATETABLETestTran(ColaINTPRIMARYKEY,ColbCHAR(3))INSERTINTOTestTranVALUES(1,aaa)COMMITTRANSACTIONBEGINTRANSACTIONINSERTINTOTestTranVALUES(2,bbb)ROLLBACKTRANSACTIONBEGINTRANSACTIONINSERTINTOTestTranVALUES(3,ccc)COMMITTRANSACTION

事务保存点SQL标准还支持“事务保存点”技术,所谓事务保存点就是在事务的过程中插入若干标记,这样当发现事务中有操作错误时,可以不撤消整个事务,只撤消部分事务,即将事务回退到某个事务保存点。

SAVETRANSACTIONsavepoint_nameSQLServer支持事务保存点技术,设置保存点的命令是SAVETRANSACTION,具体格式是:01ROLLBACKTRANSACTIONsavepoint_name撤消部分事务或回退到事务保存点的命令也是ROLLBACKTRANSACTION,具体格式是:02事务保存点

每个中间结点都可以当做一个保存点。01北京02西安03成都04兰州05昆明06银川07呼市08北京09假设有订票事务

举例:如下程序执行的结果?BEGINTRANSACTIONCREATETABLETestTran(ColaINTPRIMARYKEY,ColbCHAR(3))INSERTINTOTestTran

文档评论(0)

1亿VIP精品文档

相关文档