事务
事务的定义
一个事务是一个完整的逻辑单元,不可再分
比如,银行账户转账,从A账户向B账户转账10000,需要执行两条update语句:
update t_act set blance = blance -10000 where actno = 'act-001'
update t_act set blance = blance +10000 where actno = 'act-002'
以上两条DML语句必须同成功,或者同时失败,不允许出现一条成功,一条失败
要想保证以上的两条DML语句同时成功或者失败,那么就需要使用数据库的”事务机制“
事务相关语句
DML唯一与事务相关(insert delete update)
DML的三个语句都是和数据库表当中的“数据“相关的
事务的存在是为了保证数据的完整性,安全性
事务的使用
假设一个事务,要先执行一条insert,再执行一条update,最后执行一条delete,这个事才算完成
事务的四大特性
-
A 原子性:事务是最小的工作单元,不可再分
-
C 一致性:事务必须保证多条DML语句同时成功或者同时失败
-
I 隔离性:事务A与事务B之间具有隔离
事务的隔离性存在隔离级别,理论上隔离级别有4个
-
第一级别:读未提交
对方事务还没提交,我们当前事务可以读取对方未提交的数据
读未提交存在脏读的现象,即读到了脏的数据
-
第二级别:读已提交
对方事务提交之后的数据我方可以读到
读已提交存在的问题是:不可重复读
-
第三级别:可重复读
存在的问题是:读取到的数据是幻象
-
第四级别:序列化读/串行化读
效率低,解决所有问题
-
-
D 持久性:持久性说的是最终段数据必须持久化到硬盘文件中,事务才算成功的结束