事务定义
事务保是指数据库在对一个或多个关联的数据库操作,比如对一个员工信息进行存储时,和他相关联的角色信息,所属部门等信息,即数据库事务就是对数据操作的一个完整的持久化。
## 满足事务的条件
一个事务需要满足四个规则:
1. 原子性(Atomicity):规定一个事务的操作要么全部完成,要么不完成,不会在中间的某个环节结束。如果事务在中间发生错误或异常,会被回滚到最初事务执行的状态,就像这个事务没有执行过一样。
2. 一致性(Consistency):在事务的执行前后,数据库的完整性没有被破坏,比如,某一个记录满足a+b=10,那么不管事务对a和b怎样操作,a+b=10的关系不会被改变。
3. 隔离性(Isolation):多个并发事务进行数据库操作时,事务执行是不会相互影响的,不会因为多个事务的交叉执行,而导致一个事务的执行影响了另一个事务的执行;事务的隔离级别分为5个:
读未提交---脏读(read uncommitted):事务A读取了事务B未提交的数据。因此,如果B回滚,那么A读取的数据就是没有用的数据。
读提交---不可重复读(read committed):和下面的可重复读刚好相反,不可重复读表示一个事务A读取数据时,如果事务没有结束时,另一个B事务修改数据并且隐式提交,那么事务A再次读取时就是B修改的值。
可重复读(repeatable read):就是一个事务重复读某一条数据不会因为别的事务修改而导致多次读的数据不一致。
串行化(Serializable):就是线程串行执行,只能读并发,写时不并发。