(1)事务
事务(Transaction):访问并可能更新数据库中各项数据项的一个程序执行单元(unit),他通常由高级数据库操纵语言或编程语言书写的用户程序的执行引起的,当在数据库中更改数据成功时,在事务中更改的数据便会提交,不再改变,否则,事务就取消或者回滚,更改无效
(2)事务的四大特性
- 原子性(Atomicity):指事务包含的所有操作,要么全部成功、要么全部失败回滚。
- 一致性(Consistency):指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个失误执行之前和执行之后都必须处于一致性状态,。
- 隔离性(lsolation):隔离性,多个并发事务之间要相互隔离
- 持久性(Durability):指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的。
(3)四种隔离级别
- Read uncommitted(读未提交):最低级别,
- Read committed(读已提交),可避免脏读情况发生
- Repeatable Read(可重复读):确保事务可以多次从一个字段中读取相同的值,在此事务持续期间,禁止其他事务对此字段的更新,可以避免脏读和不可重复读,但仍会出现幻读问题。
- Serializable(串行化):最严格的事务隔离级别,要求所有事务被串行执行,不能并发执行。
(4) 脏读
脏读是指一个事务处理过程中读取了另一个未提交的事务中的数据。
(5)不可重复读
不可重复读是指在对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据值。这是由于在查询间隔,被另一个事务修改并提交了。
(6) 幻读
一个事务在前后两次查询同一个范围的时候,后一次查询看到了前一次查询没有看到的行。