事物的特性:ACID数据库
原子性(Atomicity)安全
一个事务涉及的操做,要么所有成功执行,要么所有回滚分布式
一致性(Consistency)spa
事务中相关联的数据在事务操做结束后是一致的,一切都是对的(在分布式场景下可理解为全部节点数据在事务完成后都要是正确的)。例如:银行有总金额9元,有三个用户各3元,3个用户之间不管怎么转账,银行总额使终是9元。若是当转账过程当中出现问题,那么原子性就发挥做用了,那就不转账,但数据的结果仍是正确的。在这个转账的过程当中,必定是由一个状态变为另外一个状态的,即一旦一个事务完成,未来的全部事务都必须基于这个完成后的状态事务
一致性分为强一致(A向B转账B立刻就能够收到),弱一致(A向B转账不保证当即到账,也不保证何时能到账),最终一致(弱一致的特殊形式,A向B转账,不必定当即到账,但保证必定能到账)ci
隔离性(Isolation)it
也称做独立性,未完成的事务与其余事务之间相互不干扰不交错.例如:一个事务是A向B转账3元,别外一个事务也是A向B转账3元,其实在执行时它们是相互不干扰的,因此都有可能执行成功,可是因为它们多是同时获得A 的金额3元,若是两个事务都执行成功,逻辑上就悲剧了,为了保证数据安全通常咱们会加一些锁机制。此外事务的隔离级别也正是对隔离性各类表现的一种应对方案io
持久性(Durabiltiy)数据
事务一旦提交,数据库就保证数据的存储。数据会写入硬盘,并且发生故障还能够恢复。也就是说:一旦一个事务完成,就是持久的co