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

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

简介

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

原子性(Atomicity)

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

一致性(Consistency)

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

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

隔离性(Isolation)

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

持久性(durability)

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

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

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


相关文章
|
5月前
|
传感器 缓存 安全
《分布式软总线:网络丢包下的数据吞吐奇迹》
网络丢包是数据传输中的常见问题,由网络拥堵、物理链路故障或设备缺陷引起,导致视频卡顿、游戏延迟等问题。分布式软总线技术通过极简协议提升传输效率,采用快速丢包恢复策略、智能感知网络变化、多通道并发传输及分布式缓存等创新手段,在丢包情况下仍能保障高吞吐率。其优势在工业自动化和智能交通等领域得以体现,为复杂网络环境下的高效数据传输提供了可靠解决方案,推动未来网络通信发展。
178 10
|
4月前
|
安全 JavaScript 前端开发
HarmonyOS NEXT~HarmonyOS 语言仓颉:下一代分布式开发语言的技术解析与应用实践
HarmonyOS语言仓颉是华为专为HarmonyOS生态系统设计的新型编程语言,旨在解决分布式环境下的开发挑战。它以“编码创造”为理念,具备分布式原生、高性能与高效率、安全可靠三大核心特性。仓颉语言通过内置分布式能力简化跨设备开发,提供统一的编程模型和开发体验。文章从语言基础、关键特性、开发实践及未来展望四个方面剖析其技术优势,助力开发者掌握这一新兴工具,构建全场景分布式应用。
488 35
|
存储 小程序 中间件
浅谈云计算发展演变出的三种服务模式:IaaS,PaaS和SaaS
浅谈云计算发展演变出的三种服务模式:IaaS,PaaS和SaaS
1634 0
浅谈云计算发展演变出的三种服务模式:IaaS,PaaS和SaaS
|
8月前
|
存储 运维 安全
盘古分布式存储系统的稳定性实践
本文介绍了阿里云飞天盘古分布式存储系统的稳定性实践。盘古作为阿里云的核心组件,支撑了阿里巴巴集团的众多业务,确保数据高可靠性、系统高可用性和安全生产运维是其关键目标。文章详细探讨了数据不丢不错、系统高可用性的实现方法,以及通过故障演练、自动化发布和健康检查等手段保障生产安全。总结指出,稳定性是一项系统工程,需要持续迭代演进,盘古经过十年以上的线上锤炼,积累了丰富的实践经验。
636 7
|
缓存 JavaScript API
vue3新一代状态管理库 Pinia
vue3新一代状态管理库 Pinia
|
11月前
|
存储 缓存 网络协议
搭建dns服务常见报错--查看/etc/named.conf没有错误日志信息却显示出错(/etc/named.conf:49: missing ‘;‘ before ‘include‘)及dns介绍
搭建dns服务常见报错--查看/etc/named.conf没有错误日志信息却显示出错(/etc/named.conf:49: missing ‘;‘ before ‘include‘)及dns介绍
607 0
|
存储 关系型数据库 MySQL
深度评测:PolarDB-X 开源分布式数据库的优势与实践
本文对阿里云开源分布式数据库 PolarDB-X 进行了详细评测。PolarDB-X 以其高性能、强可用性和出色的扩展能力在云原生数据库市场中脱颖而出。文章首先介绍了 PolarDB-X 的核心产品优势,包括金融级高可靠性、海量数据处理能力和高效的混合负载处理能力。随后,分析了其分布式架构设计,包括计算节点、存储节点、元数据服务和日志节点的功能分工。评测还涵盖了在 Windows 平台通过 WSL 环境部署 PolarDB-X 的过程,强调了环境准备和工具安装的关键步骤。使用体验方面,PolarDB-X 在处理分布式事务和实时分析时表现稳定,但在网络问题和性能瓶颈上仍需优化。最后,提出了改进建
|
存储 Kubernetes 数据可视化
在K8S中,如何使用 EFK 实现日志的统一管理?
在K8S中,如何使用 EFK 实现日志的统一管理?
|
Java 测试技术 API
使用System.currentTimeMillis获取当前时间
使用System.currentTimeMillis获取当前时间
|
Java API
Java反射(通过反射获取构造函数、方法、属性)
1.通过反射获取构造函数,2.通过反射获取方法,3.通过反射调用成员属性
690 0