事物概念
1、什么是事物
事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取。事务的正确执行使得数据库从一种状态转换成另一种状态。
事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写
通俗理解:
事务,就是把一堆事情绑在一起做,都成功了才算完成,否则就恢复之前的样子
举例:银行ATM取钱,扣款成功后突然大停电,吐钱的操作还没做,这时候就要恢复没取钱时候的状态,否则钱扣了还没拿到手,多冤枉
对于同时运行的多个事务,当这些事务访问数据库中相同的数据时,如果没有采取必要的隔离机制,就会导致各种并发问题,这些并发问题可归纳为以下几类:
-
-
第一类丢失更新:撤销一个事务时,把其他事务已提交的更新数据覆盖。
-
脏读:一个事务读到另一个事务为提交的更新数据。
-
虚读:一个事务读到另一个事务已提交的新插入的数据。
-
不可重复读:一个事务读到另一个事务已提交的更新数据。
-
第二类丢失更新:这是不可重复读中的特例,一个事务覆盖另一个事务已提交的更新数据。
-