数据库事务管理.ppt

数据库事务管理.ppt

第8章 事务管理 事 务 并发控制 恢 复 事 务 事务的概念 事务的性质 SQL对事务的支持 事务的概念 事务是构成单一逻辑工作单元的操作集合。 买卖交易——一手交钱一手交货 订票——查询、订位、(交钱)、出票(往返票?) 转帐——转出、转入 为什么需要事务的概念呢? 恢复的需要 并发操作的需要 买卖交易——一手交钱一手交货 订票——查询、订位、(交钱)、出票(往返票?) 转帐——转出、转入 James Gray——1998年获得图灵奖 在数据库技术、特别是事务处理方面做出了杰出贡献。 解决了诸如完整性、安全性、并发控制等一系列技术难题。 事 务 事务的概念 事务的性质 SQL对事务的支持 事务的性质 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability) 原子性 事务的原子性强调了一个事务是一个逻辑工作单元,是一个整体,是不可分割的。一个事务所包含的操作要么全部做,要么全部不做。 买卖交易——一手交钱一手交货 订票——查询、订位、(交钱)、出票(往返票?) 转帐——转出、转入 一致性 一个事务执行一项数据库操作,事务将使数据库从一种一致性的状态变换成另一种一致性状态。 在事务执行前,总是假设数据库是一致的,那么当事务成功执行后,数据库肯定仍然是一致的。 买卖交易——一手交钱一手交货 订票——查询、订位、(交钱)、出票(往返票?) 转帐——转出、转入(帐目平衡) 隔离性 如果每个事务单独执行能保持原子性和一致性,这些事务并发执行也能保持原子性和一致性,则是事务的隔离性。 并发记帐? 持久性 事务的持久性是指一旦事务成功完成,该事务对数据库所施加的所有更新都是永久的。 在ATM取钱后银行系统突然发生故障? 事 务 事务的概念 事务的性质 SQL对事务的支持 SQL对事务的支持 开始事务 结束事务 事务保存点 隐含事务与自动提交 开始事务 使用BEGIN TRANSACTION命令显式说明一个事务开始,它说明了对数据库进行操作的一个单元的起始点。在事务完成之前出现任何操作错误和故障,都可以撤销事务,使事务回退到这个起始点。 SQL对事务的支持 开始事务 结束事务 事务保存点 隐含事务与自动提交 结束事务 成功结束事务的命令是COMMIT TRANSACTION,它的作用是提交或确认事务已经完成,所以该命令也称作事务提交。 撤消事务的命令是ROLLBACK TRANSACTION,即撤消在该事务中对数据库所做的更新操作,使数据库回退到事务的起始点。 SQL对事务的支持 开始事务 结束事务 事务保存点 隐含事务与自动提交 事务保存点 SQL标准还支持“事务保存点”技术,所谓事务保存点就是在事务的过程中插入若干标记,这样当发现事务中有操作错误时,可以不撤消整个事务,只撤消部分事务,即将事务回退到某个事务保存点。 事务保存点 SQL Server支持事务保存点技术,设置保存点的命令是SAVE TRANSACTION,具体格式是: SAVE TRANSACTION savepoint_name 撤消部分事务或回退到事务保存点的命令也是ROLLBACK TRANSACTION,具体格式是: ROLLBACK TRANSACTION savepoint_name 假设有订票事务 每个中间结点都可以当做一个保存点。 SQL对事务的支持 开始事务 结束事务 事务保存点 隐含事务与自动提交 隐含事务与自动提交——事务的执行模式 隐式事务 显式事务 自动提交事务 隐式事务 当执行如下命令时都会自动开始一个事务 ALTER,INSERT,CREATE,OPEN,DELETE,REVOKE、DROP、SELECT、FETCH、GRANT、UPDATE 直到用COMMIT或ROLLBACK命令结束事务,然后又准备开始一个新的事务。 SQL标准 显式事务 用BEGIN TRANSACTION命令开始一个事务 直到用COMMIT或ROLLBACK命令结束事务 自动提交事务 每条单独的语句都是一个事务,一条语句执行成功则提交事务,执行失败则撤销事务。 Sql Server的两种事务提交方式 设置隐含事务方式的命令是: SET IMPLICIT_TRANSACTIONS ON 设置取消隐含事务方式的命令是(默认状态): SET IMPLICIT_TRANSACTIONS OFF 隐含事务与自动提交 当是隐含事务方式时,不需要用BEGIN TRANSACTION命

文档评论(0)

1亿VIP精品文档

相关文档