所谓事务:是由一系列不可分割并且不可错序的动作组成。一个事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。
- 原子性(Atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
- 一致性(Consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
- 隔离性(Isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
- 持久性(Durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
对于一般电商网站来说,一次性购买行为可以简化为四个操作:
1、 判断该商品是否有库存;
2、 判断该用户的账户余额
3、 减少该用户的账户余额
4、 减少该商品的库存
这样的四个操作组成了一次购买行为,也需要满足ACID属性,当然实际场景要复杂的多。
互联网站除了浏览器端的展示外,在服务器端的程序归属于“在线处理”的范畴。一般来说“在线处理”可以分成“在线事务处理”(OLTP,OnLineTransaction Process)和“在线分析处理”(OLAP,OnLineAnalytics Process&#x