你用支付宝去去超市买东西,100块钱转给超市,其实这是两步:数据库
- 第一步,在支付宝数据库中你的帐户减去100;
- 第二步,在超市的支付宝帐户上加上100元,交易完成;
可是若是第一步完成了,还没执行第二步的时候,停电了会发生什么呢?并发
会发生,你的帐户减小了100块,超市的帐户金额没变,这不就出现问题了,不得打架了吗?事务
为了解决这个数据一致性问题,数据库事务应运而生。支付宝
数据库事务是指一个逻辑单元执行的一系列操做,一个逻辑工做单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性ci
-
原子性(Atomicity):事务做为一个总体被执行,包含在其中的对数据库的操做要么所有被执行,要么都不执行。
-
一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另外一个一致状态。
一致状态的含义是数据库中的数据应知足完整性约束。
-
隔离性(Isolation):多个事务并发执行时,一个事务的执行不该影响其余事务的执行。
-
持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中