NoSQL数据库的四大分类的分析


分类


Examples举例


典型应用场景


数据模型


优点


缺点


键值(key-value)


Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB


内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。


Key 指向 Value 的键值对,通常用hash table来实现


查找速度快


数据无结构化,通常只被当作字符串或者二进制数据


列存储数据库


Cassandra, HBase, Riak


分布式的文件系统


以列簇式存储,将同一列数据存在一起


查找速度快,可扩展性强,更容易进行分布式扩展


功能相对局限


文档型数据库


CouchDB, MongoDb


Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容)


Key-Value对应的键值对,Value为结构化数据


数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构


查询性能不高,而且缺乏统一的查询语法。


图形(Graph)数据库


Neo4J, InfoGrid, Infinite Graph


社交网络,推荐系统等。专注于构建关系图谱


图结构


利用图结构相关算法。比如最短路径寻址,N度关系查找等


很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群


 

共同特征

对于NoSQL并没有一个明确的范围和定义,但是他们都普遍存在下面一些共同特征:

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

无共享架构:相对于将所有数据存储的存储区域网络中的全共享架构。NoSQL往往将数据划分后存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好于通过网络传输读取数据的性能,从而提高了系统的性能。

弹性可扩展:可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,数据可以自动迁移。

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

异步复制:和RAID存储系统不同的是,NoSQL中的复制,往往是基于日志的异步复制。这样,数据就可以尽快地写入一个节点,而不会被网络传输引起迟延。缺点是并不总是能保证一致性,这样的方式在出现故障的时候,可能会丢失少量的数据。

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

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

 

适用场景

NoSQL数据库在以下的这几种情况下比较适用:

1、数据模型比较简单;

2、需要灵活性更强的IT系统;

3、对数据库性能要求较高;

4、不需要高度的数据一致性;

5、对于给定key,比较容易映射复杂值的环境。

发展现状

计算机体系结构在数据存储方面要求具备庞大的水平扩展性,而NoSQL致力于改变这一现状。Google的 BigTable 和Amazon 的Dynamo使用的就是NoSQL型数据库。

NoSQL项目的名字上看不出什么相同之处,但是,它们通常在某些方面相同:它们可以处理超大量的数据。

这场革命仍然需要等待。的确,NoSQL对大型企业来说还不是主流,但是,一两年之后很可能就会变个样子。在NoSQL运动的最新一次聚会中,来自世界各地的150人挤满了CBS Interactive的一间会议室。分享他们如何推翻缓慢而昂贵的关系数据库的暴政的经验,怎样使用更有效和更便宜的方法来管理数据。

关系型数据库给你强加了太多东西。它们要你强行修改对象数据,以满足RDBMS (relational database management system,关系型数据库管理系统)的需要,”在NoSQL拥护者们看来,基于NoSQL的替代方案“只是给你所需要的”。

水平扩展性(horizontal scalability)指能够连接多个软硬件的特性,这样可以将多个服务器从逻辑上看成一个实体。

挑战

尽管大多数NoSQL数据存储系统都已被部署于实际应用中,但归纳其研究现状,还有许多挑战性问题。

已有key-value数据库产品大多是面向特定应用自治构建的,缺乏通用性;

已有产品支持的功能有限(不支持事务特性),导致其应用具有一定的局限性;

已有一些研究成果和改进的NoSQL数据存储系统,但它们都是针对不同应用需求而提出的相应解决方案,如支持组内事务特性、弹性事务等,很少从全局考虑系统的通用性,也没有形成系列化的研究成果;

缺乏类似关系数据库所具有的强有力的理论(如armstrong公理系统)、技术(如成熟的基于启发式的优化策略、两段封锁协议等)、标准规范(如SQL语言)的支持。

目前,HBase数据库是安全特性最完善的NoSQL数据库产品之一,而其他的NoSQL数据库多数没有提供内建的安全机制,但随着NoSQL的发展,越来越多的人开始意识到安全的重要,部分NoSQL产品逐渐开始提供一些安全方面的支持。

随着云计算、互联网等技术的发展,大数据广泛存在,同时也呈现出了许多云环境下的新型应用,如社交网络网、移动服务、协作编辑等。这些新型应用对海量数据管理或称云数据管理系统也提出了新的需求,如事务的支持、系统的弹性等。同时云计算时代海量数据管理系统的设计目标为可扩展性、弹性、容错性、自管理性和“强一致性”。目前,已有系统通过支持可随意增减节点来满足可扩展性;通过副本策略保证系统的容错性;基于监测的状态消息协调实现系统的自管理性。“弹性”的目标是满足Pay-per-use 模型,以提高系统资源的利用率。该特性是已有典型NoSQL数据库系统所不完善的,但却是云系统应具有的典型特点;“强一致性”主要是新应用的需求。

原文地址:https://www.cnblogs.com/lky-19990802/p/10596229.html

时间: 2024-10-07 08:34:33

NoSQL数据库的四大分类的分析的相关文章

NoSQL数据库的四大分类及分析

 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨.NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入. NoSQL数据库分四大类: 键值(Key-Value)存储数据库 这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据.Key/value模型对于IT系统来说的优势在于简单.易

Nosql数据库的四大分类及分布式数据库CAP原理

1. Nosql数据库的四大分类 2. 分布式数据库CAP原理 2.1 关系型数据库事务遵循的ACID规则 首先了解传统关系型数据库事务遵循的ACID规则: 原子性(Atomicity):事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功. 一致性(Consistency):数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束. 独立性(Isolation):指并发的事务之间不会相互影响,一个事务要访问的数据正在被另一个事务修改,那么在另一个事务提交

解读NoSQL数据库的四大家族[转]

原文地址:http://database.51cto.com/art/201109/291781.htm 在目前的企业IT架构中,系统管理员以及DBA都会考虑使用NoSQL数据库来解决RDBMS所不能解决的问题,特别是互联网行业.传统的关系型数据库主要以表(table)的形式来存储数据,而无法应对非结构化数据的挑战.在进行数据标准化的过程中,关系型数据库性能遭遇了瓶颈. NoSQL顾名思义就是Not-Only SQL,它可以作为关系型数据库的良好补充.在TechTarget数据库之前的报道中,我

NoSQL数据库种类

NoSQL数据库的四大分类 键值(Key-Value)存储数据库 这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据.Key/value模型对于IT系统来说的优势在于简单.易部署.但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了.举例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB. 列存储数据库 这部分数据库通常是用来应对分布式存储的海量数据.键仍然存在,但是它们的特点是指向

NoSQL数据库简介

一.简介 NoSQL(Not Only SQL),泛指非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展.NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题. 虽然NoSQL流行语火起来才短短一年的时间,但是不可否认,现在已经开始了第二代运动.尽管早期的堆栈

NoSQL 数据库概览及其与 SQL 语法的比较

NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用的难题. 本文对NoSQL数据库的定义.分类.特征.当前比较流行的NoSQL数据库系统等进行了简单的介绍,并对NoSQL和SQL语法进行了简单的比较,为大家对NoSQL数据库的学习提供了有益的参考. 一.NoSQL的出现 关系型数据库系统多年来在解决数据存储.服务和处理问题方面取得了巨大的成功.一些大型的公司使用关系型数据库建立了自己的系统,如联机事务处理系统和后端分析应用系统.联机事务处理(OLTP)系统用

NoSQL数据库概览及其与SQL语法的比较

[文章摘要] HBase是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,同时也是知名的NoSQL数据库之一.NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用的难题. 本文对NoSQL数据库的定义.分类.特征.当前比较流行的NoSQL数据库系统等进行了简单的介绍,并对NoSQL和SQL语法进行了简单的比较,为大家对NoSQL数据库的学习提供了有益的参考. 一.NoSQL的出现 关系型数据库系统多年来在解决数据存储.服务和处理问题方面取得了巨大的成功.

初识NoSQL 快速认识NoSQL数据库 分析Analytics For Hackers: How To Think About Event Data

做了一年的大一年度项目了,对于关系型数据库结构还是有些了解了,有的时候还是觉得这种二维表不是很顺手.在看过一篇文章之后,对NoSQL有了初步的了解,(https://keen.io/blog/53958349217/analytics-for-hackers-how-to-think-about-event-data).这边文章写的很好,确实写出来了在实际情况下NoSQL的“用武之地”,而且用了MineCraft作分析,但是也许不够全面.比如文章中只是提到了,entity数据用关系型怎么存,ev

关系数据库&&NoSQL数据库

在过去,我们只需要学习和使用一种数据库技术,就能做几乎所有的数据库应用开发.因为成熟稳定的关系数据库产品并不是很多,而供你选择的免费版本就更加少了,所以互联网领域基本上都选择了免费的MySQL数据库.在高速发展的WEB2.0时代,我们发现关系数据库在性能.扩展性.数据的快速备份和恢复.满足需求的易用性上并不总是能很好的满足我们的需要,我们越来越趋向于根据业务场景选择合适的数据库,以及进行多种数据库的融合运用. 当我们在讨论是否要使用NoSQL的时候,你还需要理解NoSQL也是分很多种类的,在No