码迷,mamicode.com
首页 > 其他好文 > 详细

什么是事务

时间:2015-10-09 19:48:43      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

事务可以用很多很多不同的方式去定义。实际上,事务时数据库操作执行的一个工作单元。

事务特性

在数据库系统中,一个事务是指:由一系列数据库操作组成的一个完整的逻辑过程。例如银行转帐,从原账户扣除金额,以及向目标账户添加金额,这两个数据库操作的总和,构成一个完整的逻辑过程,不可拆分。这个过程被称为一个事务,具有ACID特性。

  • 原子性(Atomicity):一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
  • 一致性(Consistency):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。
  • 隔离性(Isolation):当两个或者多个事务并发访问(此处访问指查询和修改的操作)数据库的同一数据时所表现出的相互关系。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。
  • 持久性(Durability):在事务完成以后,该事务对数据库所作的更改便持久地保存在数据库之中,并且是完全的。

事务类型

  • 自动提交的事务 -- 每一个单独的语句都是一个事务
  • 显示声明的事务 -- 这种事务明显的以BEGIN TRAN开始,并且以ROLLBACK TRAN或者是COMMIT TRAN结尾的语句。
  • 隐含事务 -- SQL Server会在当前事务被提交或回滚后自动启动一个新的事务,这个新事务直到用户执行COMMIT或ROLLBACK为止, 这时系统又会启动一个新事务。这样就形成了一个连续的事务链。

SQL Server常用的事务操作包含三种

  • BEGIN TRANSACTION -- 事务开始检查点
  • ROLLBACK TRANSACTION -- 由于出现错误,回滚数据到事务开始之前
  • COMMIT TRANSACTION -- 保存数据到数据库中

什么是事务

标签:

原文地址:http://www.cnblogs.com/terrence/p/4864851.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!