数据库事务四大特性

原子性(Atomicity)

首先事务包括普通的SQL语句以及显示启动事务的情况

普通的一条SQL语句的情况,较容易理解,要么该语句执行成功,要么该语句执行失败,满足事务的原子性

若是多条SQL语句构成的一个事务

失败情况:在执行中,有可能发生前半部分执行成功,后半部分出现异常的情况,此时为满足事务的原子性,则需要回滚(Rollback),即撤销执行成功的前半部分,回滚到事务开始之前的状态,

成功情况:该事务执行成功,该事务中所有语句全部执行完成,事务提交(Commit)。

一致性(Consistency)

事务是一个完整的过程,要么执行成功,要么执行失败。执行失败时,数据库将数据恢复到事务开启之前的一个状态,执行成功时,数据库将根据成功的SQL语句进入下一个状态。

两种状态需保证数据库的状态一致,数据需符合设置的约束(唯一约束,外键约束,Check约束等),同时还需满足业务的一致性,例如银行转账功能(业务特定,不能出现一方扣款成功,一方收款失败的情况,也可称为业务约束)。

总之满足事务一致性,要求事务前后数据库状态一致,即不能破坏数据原有的约束性设置

隔离性(Isolation)

隔离性是指不同的事务之间不能有相互干扰的情况出现,即一个事务对数据的操作在提交前不应该影响其他事务的操作,只有完成提交后,其他事务才可检测到该事务对数据做出的改变。

一般通过锁的方式来实现,隔离性也是并发性的保证,若没有隔离性,则多个事务并发会造成数据紊乱的现象。

持久性(Durability)

在普通的SQL语句中:每执行一条语句,就会对数据表进行操作,例如

insert into user (name, age)
values ('张三', 18);

则数据表中,会新增  张三  18这条数据,即使关闭数据库连接,关闭数据库服务,下次重新启动时,数据表中仍有该条数据,反映了数据事务只要Commit后,会对磁盘数据进行修改,是永久性的。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值