简介
对于一个可靠的支持事务的数据库管理系统来说,若要保证事务过程中数据的正确性,则必须具有的四个基本特性,分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability);本篇主要介绍ACID四个原则的语义。
原子性(Atomicity)
原子性是说,一次事务中所有的指令,从效果来看他们需作为一个不可分割的整体。在操作这些指令时,从执行效果看,要么全部执行成功,要么全部不执行。只要当前事务中的有一个指令执行失败,那其他所有指令都要执行失败:尚未执行的指令不再执行,已经执行的指令,需将其数据变更进行回滚,恢复到事务执行前的状态。
一致性(Consistency)
一致性的说法很多,我比较认可的一种说法是“系统从一个正确的状态,迁移到另一个正确的状态”。这里正确的状态特别有讲究,既要能够达到理想状态下的预期效果,又要遵守数据库实现层面的相关约束(违反约束会报错)。
有这种解释推荐给大家:通过事务的AID来保证C,AID都是手段,C是目的,AID是数据库的特征(就是依赖数据库的具体实现);而C实际上它依赖于应用层(正确的状态由上层应用的业务状态决定),也就是依赖于开发者(由开发着的逻辑控制来保证这个正确的状态)。具体查看:如何理解数据库事务中的一致性的概念?
隔离性(Isolation)
隔离性是说,事务是并发的,多个并发执行的事务相互之间是隔离的;每个事务都不受其它事务中的操作干扰;某个事务中所做的修改在完成提交以前,其他事务不可见。
持久性(durability)
持久性是说,当事务成功提交后,事务操作对数据的变更是会永久性的保存到数据库中。
最后说一句(请关注,莫错过)
如果这篇文章对您有帮助,或者有所启发的话,欢迎关注公众号【 架构染色 】进行交流和学习。您的支持是我坚持写作最大的动力。