nosql简答什么是最终一致性_大数据-NoSQL数据库

本文介绍了NoSQL数据库的概念,作为非关系型数据库,它弥补了传统关系数据库在海量数据管理和高并发场景下的不足。NoSQL数据库支持灵活的数据模型,具有良好的水平扩展性,适用于非结构化数据的存储。文中详细阐述了NoSQL的四大类型:键值数据库、列族数据库、文档数据库和图数据库,并讨论了NoSQL与SQL的关系,强调两者在不同应用场景中的互补性。
摘要由CSDN通过智能技术生成

90d4e815a6da8271c3d46fb8fc278135.png

NoSQL = Not Only SQL

不仅仅是SQL ,不是没SQL

(一) 关系数据库

先复习下:

关系数据库是指采用关系模型的数据库, 由于具有规范的行和列结构,因此存储在关系数据库中的数据通常也被称为“结构化数据”。

它通过行和列可以定位到内容, 就像在图书馆找书,第几排第几列可以找到《天龙八部》

fee6c8a31ac4fb1492d75f75e8fb59a5.png

SQL

SQL = Structual Query Language

用来查询和操作关系数据库的语言被称为“结构化查询语言”.

由于关系型数据库具有完备的数学理论基础、完善的事务管理机制和高效的查询处理引擎,因此在社会中得到了广泛的应用,并从20世纪70年代到21世纪前10年,一直占据商业数据库应用的主流位置。

番外篇:关于数据库的事务,当初刚找工作那会,面试官问什么是数据库的ACID的四性, 一下懵了,不会背了,只记得是保持数据的一致性, 其他都忘记了,然后 就没有然后了,那家公司是做在线教育的,如果中了,可能就给物流无缘了, 论第一份工作的重要性

f4f574d7f2e4078676669ec3339b7ce3.png

目前主流的关系数据库有Oracle、DB2 、 MySQL等。

缺点来啦:

随着Web 2.0的兴起和大数据时代的到来,关系数据库已经显得越来越力不从心, 视频,音乐、地理位置信息等 用关系数据库很难存储。

1、无法满足海量数据的管理需求 :

(10亿条记录的查询效率低下)

2、无法满足数据高并发的需求

(网站每秒上万次的请求)

3、无法满足高扩展和高可用性

NoSQL数据库弥补了关系数据库在当前商业应用的缺陷。

(二) NoSQL是什么

NoSQL是一种不同于关系数据库的数据库管理系统设计方式,是对非关系型数据库的统称。

它所采用的数据模型并非传统关系数据库的关系模型,而是类似键/值、列族、文档等非关系模型。

NoSQL数据库没有固定的表结构,通常也不存在连接操作,也没有严格遵守ACID约束。

因此,与关系数据库相比,NoSQL具有灵活的水平可扩“展性,可以支持海量数据存储。此外,NoSQL数据库支持MapReduce风格的编程,可以较好地应用于大数据时代的各种数据管理。

2.1 应用场景 (划重点)

当应用场合需要简单的数据模型、灵活性的IT系统、较高的数据库性能和较低的数据库一致性时,NoSQL数据库是一个很好的选择,

通常NoSQL数据库具有以下3个特点。

1、灵活的可扩展性 (增加廉价硬件)

2、灵活的数据模型 (视频/音频/位置地图等)

3、很好的与云计算融合

(三)NoSQL 和 SQL 的关系

总结:

NoSQL数据库较好地满足了大数据时代的各种非结构化数据的存储需求,开始得到越来越广泛的应用。

但是,传统的关系数据库和NoSQL数据库各有所长,彼此都有各自的市场空间,不存在一方完全取代另一方的问题,在很长的一段时期内,二者都会共同存在,满足不同应用

案例:亚马逊公司就使用不同类型的数据库来支撑它的电子商务应用•对于“购物篮”这种临时性数据,采用键值存储会更加高效•当前的产品和订单信息则适合存放在关系数据库中•大量的历史订单信息则适合保存在类似MongoDB的文档数据库中

(四)NoSQL的四大类型

(1)键值数据库

Key -Value Database 是一个哈希表,一个特定的值可以指定一个特定的内容(value)。key用来定位。value可以是任何类型。key可以无限扩展。

如下:{ key :value }

Key 键Value 值 乔峰打狗棒法 降龙十八掌段誉六脉神剑 凌波微步虚竹小无相功 生死符鸠摩智小无相功,假六脉神剑

键值特点:很快速的从key里面查询到具体的内容,比如很方便的查询到段誉会什么功夫 ,但 反过来查询谁会六脉神剑 ,即通过六脉神剑查询段誉就不是键值数据库的强项了。

代表产品:内存数据

17b89ea47b1e8b1197c94c76bd14e395.png

(2)列族数据库

之前的关系数据库是按行维度存储的(也可以称为行式数据库),但大部分查询不是需要所有内容的,只是特定的字段需要显示。

姓名(键值)

功夫门派乔峰

打狗棒法

降龙十八掌

丐帮段誉

六脉神剑

凌波微步

虚竹小无相功逍遥派

扫地僧十八绝技少林

比如 要查询江湖中有哪些门派,列族数据库只需回答处理问题的列 :门派列 ,一次查询就可以得到结果。 不需要像之前的关系数据库先定位到行,通过行在定位到对应的列。

传统行数据库是:乔峰一行数据,段誉一行数据存储。

列族数据库是 姓名一列存储, 功夫存储一列, 门派存储一列。

优点:

适合批量数据处理和即时查询,降低I/O开销,支持大量并发的用户查询。主要用于数据挖掘,决策支持,地理信息系统等秘籍查询。因为一次查询就可以得到结果,不需要遍历所有数据库。

代表产品:HBase

7a5c3e11d862907a5d1278e80b623956.png

(3)文档数据库

文档数据库通过键值定位一个文档。可以看成是键值数据库的衍生品。文档可以是一个非常复杂的数据结构。文档内容也可以创建索引(键值数据库不支持)

代表产品:

c592071b1c03e5766beac2f0b36deb0b.png

(4)图数据库

存储有关网络的信息。是为了满足对象之间有很多关系的场景。用于处理具有高度相互关系的数据。

比较适合设计网络,依赖分析,路径寻找,模糊识别等

48dd62d1d60236ab928a4236080f3966.png

比如少林开武林大会: 大理走水路直达到少林的代价是3, 走陆路经过逍遥派的路径代价是 2+3 =5。吐蕃鸠摩智直达到少林要翻嵩山,代价是10, 经过西夏走代价是7。

通过各个路径的权重,可以算出西夏一品堂段延庆去大理报仇的最优路径。

路径寻找只是图数据应用的一种。

代表产品:

5fcf6488b8109af75be4cf79373b5d91.png

以下是教科书式的抄写:

(五)NoSQL的基石

CAP指的是:

C(Consistency)一致性,是指任何一个读操作总是能够读到之前完成的写操作的结果,也就是在分布式环境中,多点的数据是一致的,或者说,所有节点在同一时间具有相同的数据

A:(Availability)可用性,是指快速获取数据,可以在确定的时间内返回操作结果,保证每个请求不管成功或者失败都有响应;

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

BASE

BASE的基本含义是基本可用(Basically Availble)、软状态(Soft-state) 和最终一致性(Eventual consistency)

基本可用

基本可用,是指一个分布式系统的一部分发生问题变得不可用时,其他部分仍然可以正常使用,也就是允许分区失败的情形出现

软状态

软状态

“软状态(soft-state)”是与“硬状态(hard-state)”相对应的一种提法。数据库保存的数据是“硬状态”时,可以保证数据一致性,即保证数据一直是正确的。“软状态”是指状态可以有一段时间不同步,具有一定的滞后性

最终一致性

一致性的类型包括强一致性和弱一致性,二者的主要区别在于高并发的数据访问操作下,后续操作是否能够获取最新的数据。对于强一致性而言,当执行完一次更新操作后,后续的其他读操作就可以保证读到更新后的最新数据;反之,如果不能保证后续访问读到的都是更新后的最新数据,那么就是弱一致性。而最终一致性只不过是弱一致性的一种特例,允许后续的访问操作可以暂时读不到更新后的数据,但是经过一段时间之后,必须最终读到更新后的数据。

最常见的实现最终一致性的系统是DNS(域名系统)。一个域名更新操作根据配置的形式被分发出去,并结合有过期机制的缓存;最终所有的客户端可以看到最新的值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值