ACID原则-大道至简,你不觉得很秒嘛?

简介: ACID原则-大道至简,你不觉得很秒嘛?

简介

对于一个可靠的支持事务的数据库管理系统来说,若要保证事务过程中数据的正确性,则必须具有的四个基本特性,分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability);本篇主要介绍ACID四个原则的语义。

原子性(Atomicity)

原子性是说,一次事务中所有的指令,从效果来看他们需作为一个不可分割的整体。在操作这些指令时,从执行效果看,要么全部执行成功,要么全部不执行。只要当前事务中的有一个指令执行失败,那其他所有指令都要执行失败:尚未执行的指令不再执行,已经执行的指令,需将其数据变更进行回滚,恢复到事务执行前的状态。

一致性(Consistency)

一致性的说法很多,我比较认可的一种说法是“系统从一个正确的状态,迁移到另一个正确的状态”。这里正确的状态特别有讲究,既要能够达到理想状态下的预期效果,又要遵守数据库实现层面的相关约束(违反约束会报错)。

有这种解释推荐给大家:通过事务的AID来保证C,AID都是手段,C是目的,AID是数据库的特征(就是依赖数据库的具体实现);而C实际上它依赖于应用层(正确的状态由上层应用的业务状态决定),也就是依赖于开发者(由开发着的逻辑控制来保证这个正确的状态)。具体查看:如何理解数据库事务中的一致性的概念?

隔离性(Isolation)

隔离性是说,事务是并发的,多个并发执行的事务相互之间是隔离的;每个事务都不受其它事务中的操作干扰;某个事务中所做的修改在完成提交以前,其他事务不可见。

持久性(durability)

持久性是说,当事务成功提交后,事务操作对数据的变更是会永久性的保存到数据库中。

最后说一句(请关注,莫错过)

如果这篇文章对您有帮助,或者有所启发的话,欢迎关注公众号【 架构染色 】进行交流和学习。您的支持是我坚持写作最大的动力。


相关文章
|
3月前
|
存储 算法 Java
数据库范式与设计原则
数据库范式与设计原则
63 0
|
6月前
|
SQL 关系型数据库 MySQL
|
消息中间件 架构师 数据库
谈谈分布式事务的3种解决方案
前几天,有一位10多年经验的架构师在面试互联网大厂时被问到这样一个问题,说请你谈谈分布式事务的解决方案。那今天,我给大家分享一下我对这个问题的理解。
132 0
|
SQL 数据库 数据库管理
事物的ACID是指什么?
事物的ACID是指什么?
|
SQL 关系型数据库 MySQL
事务的四大特性(ACID)| 学习笔记
快速学习事务的四大特性(ACID)。
138 0
事务的四大特性(ACID)| 学习笔记
|
存储 算法 RDMA
分布式一致性协议 | 青训营笔记
远程过程调用(RPC) 分布式系统中通常将不同组件,或者不同节点的交互使用 RPC 的方式进行封装,在调用方的视角一次远程过程调用不需要关心如何对请求和响应进行编码,也不用关心具体的网络传输。
155 0
分布式一致性协议 | 青训营笔记
|
存储 SQL 关系型数据库
步步为营,剖析事务中最难的——隔离性
步步为营,剖析事务中最难的——隔离性
140 0
步步为营,剖析事务中最难的——隔离性
|
SQL 关系型数据库 MySQL
事务的四大特性(ACID)|学习笔记
快速学习事务的四大特性(ACID)
102 0
事务的四大特性(ACID)|学习笔记
|
数据库 数据库管理
分布式学习四:ACID理论
分布式学习四:ACID理论
170 0
|
消息中间件 算法 前端开发
谈谈对分布式事务的一点理解和解决方案
最近,工作中要为现在的老系统做拆分和升级,刚好遇到了分布式事务、幂等控制、异步消息乱序和补偿方案等问题,刚好基于实践结合个人的看法记录一下一些方案和思路。
348 0
谈谈对分布式事务的一点理解和解决方案