关于NOSQL的讲义

前端之家收集整理的这篇文章主要介绍了关于NOSQL的讲义前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1 关于NOsql的介绍

问:什么是NOsql ?

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

问:为什么会有NOsql

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

问:NOsqlsql,哪个会更好?

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

2 NOsql的四大家族

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

这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。如Redis。
Redis:Redis缓存是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。
例子:利用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,比较容易映射复杂值的环境。

猜你在找的NoSQL相关文章