事务处理的四大特性详解
来源:互联网 发布:淘宝送手机充值卡 编辑:程序博客网 时间:2024/06/08 07:16
转自:http://blog.csdn.net/shuaihj/article/details/14163713
首先事务是访问并可能更新数据库中各种数据项的一个程序执行单元,也就是所谓的原子性 他是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的一部分。
事务(transaction)所应该具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability).这是可靠数据库所应具备的几个特性.下面针对这几个特性进行逐个讲解.
1、原子性
原子性是指事务是一个不可分割的工作单位,事务中的操作要么成功要么失败。
举个简单的例子:
A给B转账,A钱少了B钱多了,成功,事务提交成功,失败回滚
--开启事务,这是推荐的操作 start transaction update account set money= money - 100where name='A'; update account set money= money +100where name='B'; if Error then rollback else commit
2、一致性
一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。这是说数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。
1.案例
对银行转帐事务,不管事务成功还是失败,应该保证事务结束后ACCOUNT表中aaa和bbb的存款总额为2000元。
保障事务的一致性,可以从以下两个层面入手
a、数据库机制层面
数据库层面的一致性是,在一个事务执行之前和之后,数据会符合你设置的约束(唯一约束,外键约束,Check约束等)和触发器设置。这一点是由SQL SERVER进行保证的。比如转账,则可以使用CHECK约束两个账户之和等于2000来达到一致性目的
b、业务层面
对于业务层面来说,一致性是保持业务的一致性。这个业务一致性需要由开发人员进行保证。当然,很多业务方面的一致性,也可以通过转移到数据库机制层面进行保证。
3、隔离性
多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。
这指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。事务查看数据更新时,数据所处的状态要么是另一事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看到中间状态的数据。
4、持久性
事务一旦提交成功,收据存储将是永存的
- 事务处理的四大特性详解
- 数据库事务处理的四大特性ACID
- 事务是什么?事务的四大特性? jdbc如何做事务处理?
- 事务四大特性详解
- JavaEE6引入的JPA2.0四大新特性详解
- JavaEE6引入的JPA2.0四大新特性详解(转)
- 事务的四大特性
- 事务的四大特性
- 事务的四大特性!
- 事务的四大特性
- 事务的四大特性
- 事务的四大特性
- 事务的四大特性
- 事物的四大特性
- 操作系统的四大特性
- AngularJS的四大特性
- Anguarjs的四大特性
- 事务的四大特性
- CoreJava——阶段测试题(二)
- js的单线程和异步
- HDU6181 Two Paths(次短路,路径记录,spfa,2017 HDU多校联赛 第10场)
- 关于ui-view最佳实践的疑惑
- C# Redis消息队列例子
- 事务处理的四大特性详解
- ORM(1)转载
- 阿里前端2018秋招笔试题:判断JSON对象是否有环
- Lua中function的几种赋值方法
- JZOJ2017.08.12 B组
- 数组只能在初始化时整体赋初值。以后再赋值只能逐一改变了
- 算法与数据结构-队列的基本操作C语言实现
- docker 官网 出现技术故障
- 【服务器】服务器上设置定时任务,定时执行Java程序