事物的ACID是指什么?

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 事物的ACID是指什么?

1 事物是什么?


数据库事务(transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。


2 事物的ACID是指什么?


事务具有四个属性:

原子性、一致性、隔离性、持久性,这四个属性通常被称为ACID特性。


原子性(Atomic)


指整个数据库事务是不可分割的工作单位。事务中各项操作,要么全做要么全不做,任何一项操作的失败都会导致整个事务的失败。例如事务中任何一个SQL语句执行失败,那么已经执行成功的SQL语句也必须撤销,数据库状态应该退回到执行事务前的状态。

一致性(Consistent)


指数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性,事务结束后系统状态是一致的。例如对银行转帐事务,不管事务成功还是失败,应该保证事务结束后ACCOUNTS表中Tom和Jack的存款总额为2000元。

隔离性(Isolated)


指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。并发执行的事务彼此无法看到对方的中间状态。

持久性(Durable)


指的是只要事务成功结束,它对数据库所做的更新就必须永久保存下来。即使发生系统崩溃,重新启动数据库系统后,数据库还能恢复到事务成功结束时的状态。事务完成后所做的改动都会被持久化,即使发生灾难性的失败。通过日志和同步备份可以在故障发生后重建数据。

事务的ACID特性是由关系数据库系统(DBMS)来实现的,DBMS采用日志来保证事务的原子性、一致性和持久性。日志记录了事务对数据库所作的更新,如果某个事务在执行过程中发生错误,就可以根据日志撤销事务对数据库已做的更新,使得数据库回滚到执行事务前的初始状态。


对于事务的隔离性,DBMS是采用锁机制来实现的。当多个事务同时更新数据库中相同的数据时,只允许持有锁的事务能更新该数据,其他事务必须等待,直到前一个事务释放了锁,其他事务才有机会更新该数据。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
存储 SQL 数据库
关系数据库-数据库事务处理与ACID原则
本文详细介绍了关系数据库中的事务处理和ACID原则。通过事务处理,可以确保数据库操作的原子性、一致性、隔离性和持久性,从而提高数据的可靠性和一致性。在实际应用中,可以通过事务控制语句和适当的隔离级别,确保复杂操作的正确执行。希望本文能帮助您更好地理解和应用数据库事务处理,提高数据库系统的可靠性和性能。
68 18
|
3月前
柔性事务与刚性事务的区别
柔性事务遵循BASE理论,强调系统在面对高并发和分布式环境时的基本可用性和最终一致性。与之相对,刚性事务严格遵守ACID原则,确保操作的原子性、一致性、隔离性和持久性,适用于对数据完整性和准确性要求极高的场景。
66 5
|
10月前
|
SQL 关系型数据库 MySQL
分布式事物【 认识事物、脏写、脏读、不可重复读、幻读】(一)-全面详解(学习总结---从入门到深化)
分布式事物【 认识事物、脏写、脏读、不可重复读、幻读】(一)-全面详解(学习总结---从入门到深化)
223 1
分布式事物【 认识事物、脏写、脏读、不可重复读、幻读】(一)-全面详解(学习总结---从入门到深化)
|
数据库 开发者 数据库管理
ACID原则-大道至简,你不觉得很秒嘛?
ACID原则-大道至简,你不觉得很秒嘛?
355 0
|
消息中间件 RocketMQ 索引
基于消息中间件,图解柔性事务一致性
在核心业务处理完成之后,发送消息通知,允许失败,在指定时间段内或者指定重试次数之后,允许消息丢失情况存在,即消息的不可靠性。
307 22
基于消息中间件,图解柔性事务一致性
|
消息中间件 Oracle 关系型数据库
到底怎么理解分布式事务
到底怎么理解分布式事务
111 1
|
SQL 关系型数据库 MySQL
事务的四大特性(ACID)| 学习笔记
快速学习事务的四大特性(ACID)。
155 0
事务的四大特性(ACID)| 学习笔记
|
数据库
事物的四大特性
事物的四大特性
159 0
|
SQL 关系型数据库 MySQL
事务的四大特性(ACID)|学习笔记
快速学习事务的四大特性(ACID)
114 0
事务的四大特性(ACID)|学习笔记
|
SQL Oracle 关系型数据库