ACID是指一个事务本质上有四个特色:数据库
Atomicity:原子性服务器
Consistency:一致性并发
Isolation:隔离性异步
Durablilty:耐久性spa
原子性blog
原子性是指事务是一个不可分割的工做单位,事务中的操做要么都发生,要么都不发生事务
例如A向B转200元ci
若是A转成功,B也必须成功,不然都不成功,这就是所谓的要么都成功,要么都不成功it
一致性io
事务先后保持处于一致的状态,无论在任何给定的时间并发事务有多少
一致性具备如下特色:
操做前:A:800,B:200
操做后:A:600,B:400
操做前与操做后的状态一致,一致性表示事务完成后,符合逻辑运算
隔离性
事务的隔离性是指当多个用户并发访问数据库时,数据库为每个用户开启的事务,不能被其余事务的操做数据所干扰,即多个事务之间要互相隔离。
针对两个事物同时进行,其中一个事物读取到的是另一个事务提交以前的数据,A与C同时向B转钱,B的初始钱数都是200
当A向B转过钱以后的状态
A=800-200=600
B=200+200=400
当C向B转过钱以后的状态
C = 1000-100=900
B=200+100=300
两个事物的对B的状态是隔离的,不受其余事务的影响。
持久性
事务的持久性是指一个事务一旦被提交,这个事务对数据库里的数据的改变将是永久的,接下来即便数据库发生故障也不该该对其有任何
操做前:A:800,B:200
操做后:A:600,B:400
若是在操做前(事务尚未提交)服务器宕机或者断电,那么重启数据库之后,数据状态应该为:
A:800, B:200
若是在操做前(事务已经提交)服务器宕机或者断电,那么重启数据库之后,数据状态应该为:
A:600, B:400