一、事务
1.1、概述
事务是数据库操作的基本单元,它是指逻辑上的一组操作,要么都成功,要么都失败。典型场景:转账,例如Jack给Rose转账1000元,转账成功:Jack账户的余额少1000元,Rose账户余额多1000元,转账失败:Jack和Rose账户的金额都不变。
1.2、事务的四大特性
原子性:原子性是指事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败;
一致性:
事务必须使数据库从一个一致性状态变换到另外一个一致性状态。换一种方式理解就是:事务按照预期生效,数据的状态是预期的状态,举例说明:Jack向Rose转1000元,转账前和转账后的数据是正确的状态(两个账户的总金额是不变的),这就叫一致性。如果出现Jack的账户余额少了1000元,而Rose的账户余额没有增加1000元,这就没有达到数据 一 致性;
隔离性:隔离性是指多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离;
持久性:持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响;
1.3、事务的传播行为
事务的传播行为指的是一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行。事务的传播行为至少发生在两个事务方法的嵌套调用中才会出现。