事务是逻辑处理原子性的保证手段,通过使用事务控制,可以极大的避免出现逻辑处理失败导致的脏数据等问题。
事务的核心包括两个方面: 锁 并发
事务是对 锁 并发 的 封装抽象,让人更好的去理解
为什么要有事务
并发控制的单元,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位,说白了就是为了保证系统始终处于一个完整且正确的状态。
事务的特征
- 原子性
事务包含的全部操作是一个不可分割的整体,要么全部执行,要么全部都不执行。
-
一致性
事务前后,所有的数据都保持一致的状态,不能违反数据资源的一致性检查。
例如:事务之前A,B两个账户的总和是10万(A:4W,B:6W),现在A转账B2万(A:2W,B:8W),A,B账户总和依旧应该是10万,如果不是10万的话,则事务前后对于账户总和这种资源是不一致的。 -
隔离性
主要规定了各个事务之间相互影响的程度,主要用于规定多个事务访问同一数据资源,各个事务对该数据资源访问的行为。
- 持久性
事务一旦完成,要将数据所做的变更记录下来(冗余存储或多数据网络备份)。