事物的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日志并进行多维度分析。
相关文章
|
4月前
|
SQL 关系型数据库 MySQL
|
SQL 关系型数据库 MySQL
数据库事务探究
数据库事务探究
144 0
|
SQL 关系型数据库 MySQL
事务的四大特性(ACID)| 学习笔记
快速学习事务的四大特性(ACID)。
116 0
事务的四大特性(ACID)| 学习笔记
|
存储 关系型数据库 MySQL
事务的 ACID 特性|学习笔记
快速学习事务的 ACID 特性
102 0
|
SQL 关系型数据库 MySQL
事务的四大特性(ACID)|学习笔记
快速学习事务的四大特性(ACID)
事务的四大特性(ACID)|学习笔记
|
SQL 关系型数据库 MySQL
事务的ACID特性,4种隔离机制和7种传播行为
事务的ACID特性,4种隔离机制和7种传播行为
149 0
|
存储 SQL Oracle
事务的ACID特性
本篇文章主要介绍事务机制: 1. 对事务进行控制 2. 事务的ACID特性
213 0
|
SQL 关系型数据库 Java
数据库事务的ACID特性:
数据库事务的ACID特性:
156 0
数据库事务的ACID特性:
ACID过时?用 Sagas搞定数据一致性(6)
ACID过时?用 Sagas搞定数据一致性(6)
134 0
ACID过时?用 Sagas搞定数据一致性(6)
|
消息中间件 数据库
ACID过时?用 Sagas搞定数据一致性(8)
ACID过时?用 Sagas搞定数据一致性(8)
132 0
ACID过时?用 Sagas搞定数据一致性(8)