您的位置:首页 > 其它

快速理解事务ACID特性

2017-06-21 00:00 267 查看

1、事务的ACID特性

(1)A(Atomicity)原子性:事务是一个不可再拆分的最小单位,要么整个执行,要么整个回滚;

举例:有一个事务(到饭店吃饭),到饭店吃饭必须点菜、上菜、上饭、上筷子(按正常思维);

你点了菜之后坐等上菜,结果老板说没有饭了(或者没有菜了|或者没有筷子了),你一肚子火骂了老板几句说“老子不吃了”(事务回滚);

然后你换了加饭店又点了菜、这个老板很会做生意飞快的把饭、菜、筷子上齐了,然后你狼吞虎咽的吃起来(事务提交);

这里的吃饭是一个最小单位,少了点菜、上菜、上饭、上筷子任何一个步骤都不行,只有都上齐了你才吃,少了一步你就没法吃;

(2)C(Consistency)一致性:事务要保证数据库整体数据的完整性和业务的数据的一致性,事务成功提交整体数据修改,事务错误则回滚到数据回到原来的状态;

举例:A到银行转账1000给B,转账流程如下:A输入转账金额100然后确定转账(事务开启)->查询A账户余额是否大于等于1000->满足条件则A账户减1000->B账户加1000-》保存最后计算出来的数据(提交事务);

如果事务提交成功则A账户减金额,B账户加对应的金额;数据库总体金额不变只是载体变了;

如果事务出错则无论到了上面的哪个步骤A和B的数据都会回到最事务开启前的状态保证数据的始终一致;

(3)I(Isolation)隔离性:

隔离性是说两个事务的执行都是独立隔离开来的,事务之前不会相互影响,多个事务操作一个对象时会以串行等待的方式保证事务相互之间是隔离的:

(4)D(Durability)持久性:

持久性是指一旦事务成功提交后,事务处理过的数据将会保存到数据库,不能再进行回滚;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  事务 ACID