事务的ACID特性及概念

事务是数据库操作的不可分割的工作单位,具有原子性、一致性、隔离性和持久性(ACID特性)。事务的开始和结束可以通过BEGIN TRANSACTION、COMMIT或ROLLBACK来控制。原子性确保操作要么全部完成,要么全部不完成;一致性保证事务执行前后数据库处于一致性状态;隔离性防止并发事务间的干扰;持久性则确保事务完成后,数据修改是永久的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

事务的概念

所谓事务是用户自定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。例如,在关系数据库中,一个事务可以是一条sql语句,一组sql语句或整个程序。

事务和程序是两个概念,一般来讲,一个程序中包含多个事务。

事务的开始与结束可以由用户显示控制。如果用户没有显示的定义事务,则由数据库管理系统按默认规定自动划分事务。在SQL中,定义事务的语句一般有三条:

1.BEGIN TRANSACTION

2.COMMIT

3.ROLLBACK

事务通常是以BEGIN TRANSACTION开始,以COMMIT或ROOLBACK结束。COMMIT表示提交,即提交事务的所有操作。具体的说就是将事务中的所有对数据库的更新写回到磁盘上的物理数据库中,事务正常的结束。ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤销,回滚到事务开始是的状态,这里的操作指对数据库的更新操作。

事务的ACID特性

事务具有4个特性:原子性(Atomicity),一致性(Consistency),隔离性(Isolation)和持续性(Durability)。这4个特性简称为ACID特性。

(1)原子性

事务是数据库的逻辑工作单元,事务中包括的诸单元要么全做,要么全部做。

(2)一致性

事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库中只包含成功事务提交的结果时,就说数据库处于一个一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就发生被迫中断,这些未完成的事务对数据库所做的修改有一部分已写入物理数据库,这时的数据库就处于一种不正确的状态,或者说不一致的状态。例如,某公司在银行中有A,B两个账户,现在公司想在A账户中去除1万元,存入账户B,那么就可以定义成一个事务,还事务包括两个操作,第一个是从A账户中取出1万元,第二个操作是在B账户中存入1万元。这两个操作要么全做,要么全不做,全做或者全部不做,数据库都处于一种一致性的状态。如果只做一个操作,则逻辑上就会发生错误,减少或增加一万元,这时数据库就处于一致性状态。可见一致性与原子性是密切相关的。

(3)隔离性

一个事务的执行不能被其他的事务干扰。即一个事务的内部操作及使用的数据库对其它并发事务是隔离的,并发执行的各个事务之间是不能相互干扰的。数据库允许多个并发事务同时对数据进行读写和修改的能力,隔离性可以防止多个事务并发执行是由于交叉执行而导致数据的不一致。事务隔离分为不同的级别,包括读未提交,读提交,可重复读和串行化。

(4)持久性

事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值