概念:
事务是访问数据库的一个操作序列,数据库应用系统通过事务集完成数据库的存取。事务的正确执行使得数据库从一个状态转化成另一状态。
事务的特征:
1)原子性(atomicitity)
即不可分割,要不全部执行,要不不执行
2) 一致性(consistency)
事务的正确执行使数据从一个正确的状态转换另一个争取的状态
3)隔离性(isolation)
在事务没有提交之前,其他的事务是不能看到当前事务对数据库的任何更改
4)持久性(durability)
事务正确提交后,结果将被保存到数据库
多事务存在的问题
1.脏读:一个事务读到另一个事务未提交的数据
2.虚读:一个事务读到另外一个事务已经提交的插入数据
3.不可重复读:在同一事务,多次读取相同数据得到不同的结果
4.丢失更新 :事务的撤销覆盖了其他事务提交的更改
隔离级别
读未提交(read uncommitted)
如果一个事务开始写操作,则另外一个事务不允许同时写操作,但允许其他事物读取数据。
读提交(read committed)
未提交的写事务禁止其他事务的访问。
可重复读(repeatable read)
读取数据的事务允许读,但不允许写。写事务禁止任何操作。
序列化(serializable)
提供严格的事务隔离。事务要求序列化执行