网站首页 > 数据库> 文章内容

NoSQL是什么?

※发布时间:2019-3-10 22:35:55   ※发布作者:habao   ※出自何处: 

  ,是一项全新的数据库性运动,泛指非关系型数据库,对于NoSQL这个新兴的名词,每个人的理解都不同。其实NoSQL一词最早出现于1998年,是Carlo Strozzi开发的一个轻量、开源、不提供SQL功能的关系数据库。但是直到2009年,Johan Oskarsson发起了一次关于分布式开源数据库的讨论,来自Rackspace的Eric Evans再次提出了NoSQL的概念,这时的NoSQL主要指非关系型、分布式、不提供ACID的数据库设计模式。

  NoSQL的迅速发展以及由于NoSQL中没有像传统数据库那样定义数据的组织方式为关系型的,所以只要内部的数据组织采用了非关系型的方式,就可以称之为NoSQL数据库。所以随之带来了开源社区上百种所谓的NoSQL数据库,让人眼花缭乱。对于NoSQL并没有一个明确的范围和定义,但是他们都普遍存在下面一些共同特征:

  不需要预定义模式:不需要事先定义数据模式,预定义表结构。数据中的每条记录都可能有不同的属性和格式。当插入数据时,并不需要预先定义它们的模式。

  分布式:相对于将数据存放于同一个节点,NoSQL数据库需要将数据进行分区,将记录分属羊的今年多大散在多个节点。并且通常分区的同时还要做复制。这样既提高了并行性能,又能没有单点失效的问题。

  BASE:相对于事务严格的ACID特性,NoSQL数据库的是BASE特性。BASE是最终一致性和软事务。

  NoSQL优势:避免不必要的复杂性、高吞吐量、高水平扩展能力;比如随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。

  NoSQL劣势:数据模型和查询语言没有经过数据验证,没有的理论基础;不支持ACID特性,当然使用SQL数据库可以解决这个问题;有些NoSQL数据库过于简单,比如Memcache只是一个内存数据库,适用于某些特性场景;最大的劣势就是没有统一的数据查询模型,每种NoSQL产品都有自己的语言使用方式。

  由于NoSQL数据库并没有一个统一的架构,两种NoSQL数据库之间的不同,甚至远远超过两种关系型数据库的不同。可以说,NoSQL各有所长,成功的NoSQL必然特别适用于某些场合或者某些应用,在这些场合中会远远胜过关系型数据库和其他的NoSQL。

  通过比较可以发现NoSQL跟SQL之间的对立性太强了,基于NoSQL跟SQL之间的某种差异,比如NoSQL有的功能SQL没有,如分布式、简单数据模型;而SQL有的特性NoSQL又没有,如ACID功能;当然不管哪种数据库,不管其劣势还是优势都有其适用的场景。而SQL很难实现分布式的原因在于,SQL自身的日志机制、锁机制以及缓冲区管理机制。于是就出来了NewSQL数据库的概念,所谓的NewSQL是什么呢?就是想柔和SQL与NoSQL独有的特性。

  目前NewSQL大概有两类,第一类是拥有关系型数据库产品和服务,并将关系型数据库的好处与优势带入到分布式架构上,简单来说就是把ACID引入到分布式中;第二类是提供关系型数据库的性能,达到不用考虑水平扩展的方式,简单来说就是改变SQL架构使得它不用水平扩展,不用运行在分布式中就能够带来性能上的提升。对于第一类把ACID引入到分布式中去的产品有Clustrix、GenieDB、ScaleArc、ScaleBase、NimbusDB以及MySQL Cluster等。

  总的来说,如今的数据库市场真是百花齐放,大概分类为SQL、NoSQL、NewSQL以及缓存数据库系统。而SQL和NewSQL不是本章讨论的主题,所以下面来说一说NoSQL数据库。

  首先需要明确的一点,NoSQL数据库并不是要取代现在广泛应用的传统数据库,而是采用一种非关系型的方式解决数据的存储和计算的问题。目前,可以将众多的NoSQL数据库按照内部的数据组织形式进行如下分类:

  这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key-value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key-value就显得效率低下了。

  顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。

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

  图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。

  

相关阅读
重庆学习网zslpsh,0755深圳房产人才招聘网,拾年网90后,anedc股票,最新电影下载淘娱淘乐,重庆中学生网高考,重庆中学生网高考,学习重庆方言网,重庆中学生学习方法,重庆俗语网,中学生网zslpsh,0755深圳交友网,重庆初中生,贵州重庆方言网,025新闻网,西南重庆方言歌曲,025南京交友网,重庆农家乐美女,观赏蟹种类zadull,云南重庆方言网,重庆中学学习网,028成都交友网,推广taoyutaol,西南四川方言网,观赏龟论坛zadull,四川重庆方言网,022天津交友网,重庆中学生网家长,鹦鹉鱼zadull,重庆俗语,电影淘娱淘乐,taoyutaole娱乐,华夏视讯网,0755深圳旅游招聘,昆明重庆方言网,淘娱淘乐影视,www.00game.net,观赏鱼zadul,重庆高考zslpsh,重庆中学生网高考,027房产招聘网,坝坝舞wagcw,西南重庆方言网,贵州重庆方言网,重庆言子儿网,热带鱼zadull,重庆高考zslpsh,0755深圳旅游招聘网,淘娱淘乐影视网,0571.361.cm,重庆方言学习网,028成都新闻,异形观赏鱼种类,影视网淘娱淘乐,最新电影下载淘娱淘乐,0773桂林论坛,拾年网80后动画片,观赏蟹论坛zadull,观赏龟繁殖教程,重庆一中zslpsh,重庆俗语网,广场舞wagcw,观赏虾的种类zadull,观赏鱼观赏虾观赏龟,西南方言网,观赏鱼之家论坛zadull,战争前线辅助00game,西南重庆方言小说,重庆中小学zslpsh,推广taoyutaol,战争前线论坛00game,0871交友网,025南京新闻网,重庆言子儿网站,娱乐taoyutaole,022天津交友网,025新闻网,重庆中学生网学习,022天津交友网,重庆方言歌网,www.120.cm健康网,anedc股票,重庆初中生