事物的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日志并进行多维度分析。
相关文章
|
3月前
柔性事务与刚性事务的区别
柔性事务遵循BASE理论,强调系统在面对高并发和分布式环境时的基本可用性和最终一致性。与之相对,刚性事务严格遵守ACID原则,确保操作的原子性、一致性、隔离性和持久性,适用于对数据完整性和准确性要求极高的场景。
66 5
|
10月前
|
SQL 关系型数据库 MySQL
分布式事物【 认识事物、脏写、脏读、不可重复读、幻读】(一)-全面详解(学习总结---从入门到深化)
分布式事物【 认识事物、脏写、脏读、不可重复读、幻读】(一)-全面详解(学习总结---从入门到深化)
220 1
分布式事物【 认识事物、脏写、脏读、不可重复读、幻读】(一)-全面详解(学习总结---从入门到深化)
|
关系型数据库 Java MySQL
数据库事务特性、传播行为和隔离级别总结
数据库事务特性、传播行为和隔离级别总结
158 1
|
10月前
|
SQL 关系型数据库 MySQL
谈谈ACID
谈谈ACID
|
SQL 关系型数据库 MySQL
数据库事务探究
数据库事务探究
169 0
|
SQL 关系型数据库 MySQL
事务的四大特性(ACID)| 学习笔记
快速学习事务的四大特性(ACID)。
154 0
事务的四大特性(ACID)| 学习笔记
|
SQL 关系型数据库 MySQL
事务的四大特性(ACID)|学习笔记
快速学习事务的四大特性(ACID)
114 0
事务的四大特性(ACID)|学习笔记
|
SQL Oracle 关系型数据库
|
关系型数据库 MySQL 容器
事物传播行为与隔离级别介绍
事物传播行为与隔离级别介绍
187 0
|
数据库
ACID过时?用 Sagas搞定数据一致性(3)
ACID过时?用 Sagas搞定数据一致性(3)
161 0
ACID过时?用 Sagas搞定数据一致性(3)

热门文章

最新文章