关于NOSQL的讲义

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30843221/article/details/71683310

1 关于NOSQL的介绍

问:什么是NOSQL ?

NOSQL ,全称为Not Only SQL,不仅仅是SQL,并不是反对SQL的意思(No SQL)。它是针对传统的关系型数据库(RDMB)的不足,提出了全新的数据库管理架构理念。

问:为什么会有NOSQL?

随着数据规模的不断增长,许多企业需要的数据库架构业务面临以下挑战:
(1) 支持大量用户同时在线高并发访问;
(2) 在分布式服务架构下能够得到低延迟的访问响应;
(3) 需要存储大量非结构化数据;
(4) 能够完成快递的更替,能够扩充属性。
传统的结构化数据库难以上述的需求,在数据的处理和存储遇到了巨大的瓶颈。需要有新一代的数据变革。

问:NOSQL与SQL,哪个会更好?

NOSQL与SQL没有绝对的优劣之分,需要结合具体的场景分析。目前来说,还是以SQL为主,NOSQL为辅的数据架构。

2 NOSQL的四大家族

键值(Key-Value)存储数据库

这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。如Redis。
Redis:Redis缓存是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。
例子:利用redis分布式缓存机制搭建分布式爬虫架构
redis分布式缓存

列存储数据库

这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:HBase(Hadoop、spark家族)
这里写图片描述

这里写图片描述

文档型数据库

文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。MongoDb. 国内也有文档型数据库SequoiaDB,已经开源。

这里写图片描述

优点:数据存储的灵活性高
缺点:数据处理的时间复杂度与空间复杂度增高

图形(Graph)数据库

图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。 如:Neo4J
Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。

这里写图片描述

因此,总结NoSQL数据库在以下的这几种情况下比较适用:
1、数据模型比较简单;
2、需要灵活性更强的IT系统;
3、对数据库性能要求较高;
4、不需要高度的数据一致性;
5、对于给定key,比较容易映射复杂值的环境。

猜你喜欢

转载自blog.csdn.net/qq_30843221/article/details/71683310
今日推荐