到这里,数据库事务四大原则当中的三个就介绍完了,内容看起来不少,但其实还没有结束,关于隔离的实现会牵扯到锁的使用,这块深挖下去,又会牵扯许多内容 。不过对于我们算法从业者而言,能够了解到这一层,也差不多够了 。
四原则当中还剩下一个一致性原则,一致性这个单词在很多地方都出现过,比如分布式存储系统、多副本的一致性等等 。但是这些概念的意思并不相同,不可以简单地理解成同一回事 。数据库的一致性表示数据的状态是正确的,在转移的时候,是从一个正确的状态转移到了另一个正确的状态 。正确的状态其实就是指不出错的状态,也就是和程序员预期一致的状态 。之前在介绍隔离性时谈到的种种问题,总结起来都是数据和程序员的预期不一致 。也就是说如果和程序员的预期一致,就可以认为满足了一致性 。
虽然一致性是数据库的四原则之一,但数据库系统当中并没有专门针对一致性的部分 。其实在数据库眼中,满足了其他三原则,那么自然也就达成了一致性 。一致性是目的,并不是手段 。举个例子,还是以刚刚转账的情景距离 。A向B转账100,我们都知道,前提条件是A的账户里的金额大于等于100,如果A账户里小于100,我们开发的时候没有做校验还强行转账成功 。那么这个结果显然是错误的,也是和我们预期不一致的,但是这个问题发生的原因并不是因为数据库没有做好一致性,而是开发人员忽略了限制条件 。
所以数据库的教材上才会写着“Ensuring the consistency is the responsibility of user, not DBMS.", "DBMS assumes that consistency holds for each transaction” 。
“保证一致性是开发的责任,而不是数据库的,数据库假设每一个事务都符合 一致性 。”
到这里,数据库事务的四原则就介绍完了,衷心祝大家,日拱一卒,每天都有收获 。
喜欢本文的话,请顺手给个关注吧~
【一文讲透数据库事务的四原则】
推荐阅读
- MySQL数据库下的Explain命令深度解析
- 一文搞懂SQL中的所有JOIN
- MySQL, PostgreSQL CentOS常用数据库安装和python使用
- 程序员该如何进行 SQL 数据库的优化?
- 一条SQL搞定数据库设计文档
- 开源免费的多功能数据库管理软件DBeaver
- 一文读懂Socket通信原理
- 安装MySQL数据库
- 史上最全数据库中间件详解
- PHP操作Redis常用方法总结