SQL与Oracle对数据库事务处理的差异性.docx
《SQL与Oracle对数据库事务处理的差异性.docx》由会员分享,可在线阅读,更多相关《SQL与Oracle对数据库事务处理的差异性.docx(8页珍藏版)》请在三一办公上搜索。
1、SQL 和Oracle对数据库事务处理的差异性作者: Jake, 出处:IT专家网论坛,责任编辑: 陈子琪, 2009-10-11 13:00在吉日嘎拉的软件编程走火入魔之:数据库事务处理入门(适合初学者阅读)文章中关于MS SQL Server和Oracle对数据库事务处理的差异性引起一些争论,因此记录我对数据库事务处理的想法。背景在吉日嘎拉的软件编程走火入魔之:数据库事务处理入门(适合初学者阅读)文章中关于MS SQL Server和Oracle对数据库事务处理的差异性引起一些争论,因此记录我对数据库事务处理的想法。简介本文讲述MS SQL Server和Oracle对数据库事务处理的差异
2、性,以及Oracle如何对事务处理的实现。什么是事务数据库事务(Database Transaction)是一组数据库操作的处理单元。事务符合ACID的特性:Atomic:原子性,要么全部要么一无所有。All or None.Consistent:一致性,所有依赖关系以及约束一致。Isolated:分离性,不同事务不互相影响。Durable:持久性,提交事务的数据需要持久化。为什么要使用事务实现事务主要有两大功能:1.保证数据库的consistent(一致性状态),保持所有依赖关系以及约束一致)。哪怕数据库管理系统出现故障时(例如断电),也能恢复到一致性状态。例如一个银行转帐系统,张三给李四转
3、3000圆RMB,张三帐号上减3000和李四帐号上加3000需要同时完成,否则系统的帐就不平了。也例如有些销售系统的汇总表和明细表,是一个主表和一个从表,需要同步更新。2.并发时分离不同事务操作。例如编辑过程中的数据不给其他事务查询到。这也是相对的,在特效需求下可能要支持dirty read(脏读),但不是这里讨论的范围了。SQL Server 2008 的事务类型1.自动提交事务 Autocommit Transactions这是SQL Server默认的事务类型,每一条单独的SQL语句(SQL statement)都是单独的一个事务,语句执行完毕后自动提交。调用方不需要手工控制事务流程。2
4、.显示事务 Explicit Transactions调用方需要调用API或者使用T-SQL的BEGIN TRANSACTION 语句来打开事务。需要调用COMMIT 或者 ROLLBACK TRANSACTION 来提交或者回滚。3.隐式事务 Implicit Transactions使用SET IMPLICIT_TRANSACTIONS ON把事务模式变成隐式模式。调用方不需要执行BEGIN TRANSACTION 语句来打开事务。数据库引擎执行到SQL语句的时候自动打开事务。调用方需要调用COMMIT 或者 ROLLBACK TRANSACTION 来提交或者回滚。当数据库引擎执行下一个
5、SQL语句时又自动打开一个新事务。参考:Controlling Transactions (Database Engine)Oracle的事务类型Oracle的事务处理类型有点像SQL Server的隐式事务。当执行到第一个可执行的SQL语句时自动打开事务,然后需要调用方执行commit或者rollback来提交或者回滚事务,如果有DDL语句,Oracle也会自动提交事务的。参考:Transaction ManagementOracle的事务的实现Oracle的结构分逻辑上和物理上的区别。逻辑上的结构是表空间,而物理上的结构是数据文件。逻辑实现Oracle下实现事务在逻辑上是由Undo Tab
6、lespace来实现的。Undo Tablespace包含Undo Segements(段),而Undo Segements包含Undo Data。Undo Data是支持事务的逻辑单元。图源自于Oracle Database 10g: Administration Workshop IUndo Data用于保存修改前后的数据,以支持回滚,长时间查询,和flashback查询,以及失败事务恢复的功能。由于有了Undo Data,回滚事务变得容易了,因为Undo Data保存了修改前后的数据,保证了事务的原子性。失败事务恢复和事务回滚类似,当网络中断或者其他原因导致事务异常停止,数据库引擎可以恢
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL Oracle 数据库 事务处理 差异性

链接地址:https://www.31ppt.com/p-1665003.html