SQL和Oracle对数据库事务处理的差异性作者:Jake,出处:IT专家网论坛,责任编辑:陈子琪,2009-10-1113:00在吉日嘎拉的软件编程走火入魔之:数据库事务处理入门(适合初学者阅读)文章中关于MSSQLServer和Oracle对数据库事务处理的差异性引起一些争论,因此记录我对数据库事务处理的想法
背景在吉日嘎拉的软件编程走火入魔之:数据库事务处理入门(适合初学者阅读)文章中关于MSSQLServer和Oracle对数据库事务处理的差异性引起一些争论,因此记录我对数据库事务处理的想法
简介本文讲述MSSQLServer和Oracle对数据库事务处理的差异性,以及Oracle如何对事务处理的实现
什么是事务数据库事务(DatabaseTransaction)是一组数据库操作的处理单元
事务符合ACID的特性:Atomic:原子性,要么全部要么一无所有
AllorNone
Consistent:一致性,所有依赖关系以及约束一致
Isolated:分离性,不同事务不互相影响
Durable:持久性,提交事务的数据需要持久化
为什么要使用事务实现事务主要有两大功能:1
保证数据库的consistent(一致性状态),保持所有依赖关系以及约束一致)
哪怕数据库管理系统出现故障时(例如断电),也能恢复到一致性状态
例如一个银行转帐系统,张三给李四转3000圆RMB,张三帐号上减3000和李四帐号上加3000需要同时完成,否则系统的帐就不平了
也例如有些销售系统的汇总表和明细表,是一个主表和一个从表,需要同步更新
并发时分离不同事务操作
例如编辑过程中的数据不给其他事务查询到
这也是相对的,在特效需求下可能要支持dirtyread(脏读),但不是这里讨论的范围了
SQLServer2008的事务类型1
自动提交事务AutocommitTransactions这是SQL