1.什么是事务
是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。
事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。
2.数据库的四个特性(ACID)
原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。
一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。
隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中。
3.事务命令
开启事务: start transaction
回滚事务:rollback
提交事务:commit
设置回滚点s1: savepoint s1;
回滚到保存点s1:rollback to savepoint s1;
4.事务的隔离级别
数据库事务的隔离级别有4种,由低到高分别为Readuncommitted(读未提交)、Readcommitted(读已提交)、Repeatableread(可重复读)、Serializable(可重复读)
不考虑隔离性可能发生的问题:脏读、不可重复读、虚读(幻读)
脏读 :指一个事务读取了另外一个事务未提交的数据。
不可重复读 :在一个事务内读取表中的某一行数据,多次读取结果不同。(一个事务读取到了另外一个事务提交的数据)
幻读:读整个表,即表的行数,例如第一次读某个表有3条记录,第二次读该表又有4条记录。
image.png
image.png
image.png