nosql——ACID,CAP,BASE等理论

ACID特性

保证关系型数据库在事务过程中数据正确性的ACID特性,即:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。

原子性:是指事务包含的所有操作要么全部成功,要么全部失败回滚。失败回滚的操作事务,将不能对事务有任何影响。

一致性:是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。

隔离性:是指当多个用户并发访问数据库时,比如同时访问一张表,数据库每一个用户开启的事务,不能被其他事务所做的操作干扰(也就是事务之间的隔离),多个并发事务之间,应当相互隔离。

持久性:是指事务的操作,一旦提交,对于数据库中数据的改变是永久性的,即使数据库发生故障也不能丢失已提交事务所完成的改变。

CAP理论

一致性(Consistency)、可用性(Availability)和分区容错性( Partition Tolerance )三者无法在分布式系统中被同时满足,并且最多只能满足其中两个。

一致性(强一致性):它是指任何一个读操作总是能够读到之前完成的写操作的结果。所有节点在同一时间具有相同的数据(多副本一致)

可用性(高可用性):每个请求都能在确定时间内返回一个响应,无论请求是成功或失败。

分区容错性:它是指当出现网络分区情况时,即系统中的一部分节点无法和其他节点进行通信,分离的系统也能正常运行。也就是说,系统中任意信息的丢失或失败不会影响系统的继续运作。

CAP理论反证法:

假设CAP特性都满足,那么当出现N1和N2无法通信时(即出现P),从两种情况分析:

1、如果保证C,那么在步骤3中,必须要等待数据同步后才可以进行读操作。因为此时N1和N2无法通信,所以同步的时间无法确定,因此读操作的请求无法在确定时间内返回结果,即此种情况不能保证A;

2、如果保证A,那么在步骤3中,当B用户发起读请求后,系统不会一直等待N2去同步N1 的值,此时会返回V0的值给B用户,导致两个副本的值不一样,此种情况下不能保证C。

image-20220105150806077

BASE原则

BASE原则 = 基本可用性(Basically Available) + 软状态(Soft state) + 最终一致性(Eventuallyconsistent)

为什么会出现BASE思想?

CAP理论定义了分布式存储的根本问题,但并没有指出一致性和可用性之间到底应该如何权衡。于是出现了BASE思想,给出了权衡A与C的一种可行方案。

ACID和BASE代表了在一致性 - 可用性两点之间进行选择的设计哲学

!!!ACID强调一致性被关系数据库使用,BASE强调可用性被大多数Nosql使用

最终一致性是BASE原则的核心,也是NoSQL数据库的主要特点,通过弱化一致性,提高系统的可伸缩性、可靠性和可用性。

posted @   星月故里yw  阅读(323)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示