NoSQL的数据一致性

一、关系型数据库的ACID

ACID(Atomic,Consistent,Isolated,Durable)
1.原子性(Atomic)

  事务是一个不可分割的整体,对数据库的操作要么全做,要么全不做,不允许部分完成。如果中途因为故障导致未完成,应该回滚到执行事务之前。

2.一致性 (Consistent)

  事务对数据库的作用应使数据库从一个一致状态到另一个一致状态。
数据库状态指某个时间点,数据库中存储的所有数据的集合。

3.隔离性 (Ioslated)

  并发环境中,不同事务操作相同数据时,各自有自己的完整数据空间,互相隔离。是保证原子性的一种方式

mysql有多种隔离级别。

4.持久性 (Durable)

  事务一旦执行成功,则该事务对数据库进行的所有更新都是持久的。

二、CAP理论

1.NoSQL系统是分布式系统,用户通过一些API接口来访问

  分布式系统(Distributed System)是建立在网络之上的软件系统,具有高度的透明性(指每一个节点对用户应用来说都是透明的,看不出是远程还是本地的,使用中感觉不到是分布的)。

2.CAP理论

强一致性(Consistency)

  系统在执行某项操作以后,然后处于一致的状态。

可用性(Availability)

  每一个操作总是能在给定时间内返回。

分区容错性(Partition Tolerance)

  系统在存在网络分区的情况下,仍然可以接受请求(满足一致性和可用性)。网络分区指网络由于某种原因被分成若干独立的区域,且各区域直接互不相通。

根据CAP理论,数据共享系统只能满足这三个特性中的两个,不可能同时满足三个。

CA 传统关系型数据库
CP 分布式数据库,分布式加锁
AP DNS等

AP系统是目前NoSQL的主流,即放弃了强一致性(C)

三、BASE

基本可用(Basically Available):系统能够基本运行、一直提供服务。

软状态(Soft-state):系统不要求一直保持强一致状态。

最终一致性(Eventual consistency):系统需要某一时刻后达到一致性要求。

四、ACID和BASE对比

ACIDBASE
强一致性弱一致性
隔离性(一个事务的执行不能被其他事务干扰)可用性优先
采用悲观、保守方法采用乐观方法
难以变化适应变化、更简单、更快
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ChatGPT: BASE是指基本可用、软状态和最终一致性的缩写。基本可用指系统在出现故障或部分失效时仍能保证基本的可用性;软状态指系统数据可能存在间状态,而这些间状态不会影响系统的整体可用性;最终一致性指系统的所有副本最终会达到一致的状态。 ACID模型是指原子性、一致性、隔离性和持久性。原子性指一个事务的所有操作要么全部执行成功,要么全部失败;一致性指事务执行前后,数据库数据必须保持一致;隔离性指多个事务并发执行时,彼此之间是隔离的,互不干扰;持久性指事务一旦提交,对数据库数据的修改就是永久性的。 数据库的规则和约束条件包括主键、外键、唯一约束、非空约束等。NoSQL不能实现完整性约束是因为其设计初衷是为了高可用性和高扩展性,而完整性约束会影响其性能和扩展性。 关系型数据库横向扩展和纵向扩展难以实现是因为横向扩展需要对数据进行分片,而分片会导致数据之间的关系变得复杂;纵向扩展则需要增加硬件资源,但是硬件资源的增加是有限度的。 记录查询是指根据记录的主键查询数据,范围查询是指根据记录的某个范围查询数据NoSQL在复杂查询方面不如数据库是因为其设计初衷是为了高可用性和高扩展性,而复杂查询会影响其性能和扩展性。 NoSQL使用MapReduce来加速查询是因为MapReduce可以将数据分成多个部分并行处理,从而提高查询的效率。 数据一致性和可用性之间存在一定的矛盾关系,提高一致性会降低可用性,提高可用性会降低一致性。 SQL标准是指关系型数据库的标准化语言,包括数据定义语言(DDL)、数据操作语言(DML)和数据控制语言(DCL)等。 规范应用程序接口可以通过制定标准的接口规范、文档和示例代码等方式来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值