数据库事务的理论依据ACID
事例:A发起转账10000元给B =》 A银行卡减10000元 =》B银行卡增加10000元。
A(Atomicity) 原子性
原子性强调转账从A-B的三个步骤必须要么都成功,要么都不成功。
原子性是整个数据库事务是不可分割的工作单位,只有事务中的所有的数据库操作都执行成功,才算整个事务成功。事务中任何一个SQL执行失败,已经执行成功的SQL语句也必须撤销,回到执行事务的之前的状态。
C(Consistency) 一致性
上面转账的例子,无论转账成功或者失败,A和B加起来变化就是10000元,不会多也不会少。
一致性是指事务将数据库从一种一致性状态变为下一种一致性状态。在事务开始之前和之后,数据库的完整性约束没有被破坏。
I(Isolation)隔离性
隔离性要求每个读写事务对其他事务的操作对象能相互分离。
比如A转账的银行是工商银行,那么别人在工商银行转账不能干扰A的转账行为。
D(Durability) 持久性
持久性指事务一旦提交,其结果就是永久性的。