数据库事务

事务是数据库中一个单独的执行单元,当在数据库中更新数据成功时候,事务中更改的数据便会提交,不可改变。否则,事务就取消或者回滚,更改无效。

事务必须满足4个属性:原子性,一致性,隔离性,持久性。

原子性:事务是一个不可分割的整体,为了保证事务的总体目标,事务必须具有原子性,就是当数据更改时,要么全部执行,要么全不执行。

一致性:一个事务执行之前和执行之后,数据库数据必须保持一致性状态。数据库的一致性应该满足模式锁制定的约束,要么在完整执行该事务后数据库仍然处于一致性状态。为了维护所有数据的完整性,在关系型数据库中,所有规则必须应用到事务的更改上。为了维护所有数据的完整性,在关系型数据库中,所有规则必须应用到事务的修改上。数据库一致性状态由用户来负责,由并发控制机制实现,例如银行转账,转账前后两个账户金额之和应保持不变。由于并发操作带来的数据不一致性包括丢失数据修改,读脏数据。

隔离性:隔离性也成为独立性,当两个或多个事务并发执行时,为了保证数据的安全性,将一个事务的内部操作与事务的操作隔离起来,不被其他正在进行的事务看到,例如,对任何一对事务t1和t2,对t1来说,t2要么在t1开始之前已经结束,要么在t1完成之后再开始执行。数据库有四种类型的事务隔离级别:不提交的读,提交的读,可重复的读和串行化。因为隔离性是的每个事务的更新在它被提交之前,对其他事务是不可见的,所以,实现隔离性是解决临时更新与消除级联回滚问题的一种方式。

持久性:也被成为永久性,事务完成时之后,DBMS保证它对数据库中的数据的修改是永久性的,当系统或介质发生故障时,该修改也永久保持。持久性一般通过数据库备份与恢复来保证。

严格来说,数据库事务属性是由数据库管理系统来进行保证的,在整个应用程序运行的过程中,运用无需去考虑数据库的acid实现。

一般情况下,通过执行commit或rollback语句来终止事务,当执行commit语句时,自事务启动以来对数据库所做的一切更改就成为永久性的了,即被写入磁盘;而当执行RollBack语句时,自事务启动以来对数据库所做的一切更改都会被撤销,并且数据库中内容返回到事务开始之前所处的状态。无论在什么情况下,当事务完成时,都能保证回到一致状态。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我靖迪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值