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