前言:要学BASE理论,首先要理解ACID。
ACID原理
事务
简单来说就是一段逻辑,形象点也可以说是一件事,要么不做,要么做完。
工作中我们经常会听到这样的话“它们应该放在一个事务里”,所以事务应该是由我们来控制的。原理性的东西一定不要把它局限在某一个区域理解,学会发散思维去思考,尝试代入到各个领域,你会理解的更深刻。举个不文雅点的例子,上厕所,一定是先脱裤子,再嗯哼...,然后穿裤子。要是脱了裤子就跑了,那么上厕所这件事就不在一个事务里了,会出大问题的。所以我们把上厕所这件事看作一件事。
- A:Atomicity,原子性。事务的最小执行单位,不可分割,要么不做,要么做完。
- C:Consistency,一致性。执行前后数据一致。
- I:Isolation,隔离性。发生并发时,一个事务不会被其他事务影响。(划重点)
- D:Durability,持久性。一个事务提交后,他的影响是持久的,不可回退的。
我们常用的Oracle、MySQL、DB2数据库都具有ACID特性,每一条SQl都是一个事务,执行后要么成功,要么失败,互相不受影响,最终状态是持久的,不会出现做了一半这种情况,能够保证强一致性。
BASE理论
解决了CAP提出的分布式系统的一致性和可用性不可兼得的问题;它满足CAP原理