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



NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。

NoSQL数据库分四大类:

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

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

列存储数据库。

这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra, HBase, Riak.

文档型数据库

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

图形(Graph)数据库

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

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

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

分类 Examples举例 典型应用场景 数据模型 优点 缺点
键值(key-value)[3] Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB 内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。[3] Key 指向 Value 的键值对,通常用hash table来实现[3] 查找速度快 数据无结构化,通常只被当作字符串或者二进制数据[3]
列存储数据库[3] Cassandra, HBase, Riak 分布式的文件系统 以列簇式存储,将同一列数据存在一起 查找速度快,可扩展性强,更容易进行分布式扩展 功能相对局限
文档型数据库[3] CouchDB, MongoDb Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容) Key-Value对应的键值对,Value为结构化数据 数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构 查询性能不高,而且缺乏统一的查询语法。
图形(Graph)数据库[3] Neo4J, InfoGrid, Infinite Graph 社交网络,推荐系统等。专注于构建关系图谱 图结构 利用图结构相关算法。比如最短路径寻址,N度关系查找等 很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。[3]

以上内容摘自网上

时间: 2024-11-01 18:37:52

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

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

分类 Examples举例 典型应用场景 数据模型 优点 缺点 键值(key-value) Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB 内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等. Key 指向 Value 的键值对,通常用hash table来实现 查找速度快 数据无结构化,通常只被当作字符串或者二进制数据 列存储数据库 Cassandra, HBase, Riak 分布式的文件系统 以列簇式存储,将同一列数据存

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