论NoSQL的数据模型

标签: NoSQL杂谈 nosql 数据模型 | 发表时间:2012-03-03 15:28 | 作者:nosqlfan
出处:http://blog.nosqlfan.com

本文内容是对《 NoSQL Data Modeling Techniques》一文的简单概述,原文对NoSQL的几种 数据模型进行了详细深入的讨论。是了解NoSQL数据模型不过错过的全面资料。

NoSQL的一些非功能性的特性,比如扩展性、性能以及一致性的讨论,目前已经有很多。而对于NoSQL产品内部数据模型相关的知识一直比较欠缺,本文就希望能够系统地对NoSQL数据模型进行一些探讨。

我们大致先将NoSQL数据模型划分为下面几类:Key-Value存储、类BigTable数据库、文档数据库,全文索引引擎以及图数据库。

下面先上一个简单有趣的示例图,简单描述各个不同数据模型的构造:

对照上面的图片,我们对几种数据模型进行简单的描述:

  • Key-Value模型是最简单,也是最方便使用的数据模型,它支持简单的key对value的键值存储和提取
  • Key-Value模型的一个大问题是它通常是由HashTable实现的,所以无法进行范围查询,所以有序Key-Value模型就出现了,有序Key-Value可以支持范围查询
  • 虽然有序Key-Value模型能够解决范围查询和问题,但是其Value值依然是无结构的二进制码或纯字符串,通常我们只能在应用层去解析相应的结构。而类BigTable的数据模型,能够支持结构化的数据,包括列,列簇,时间戳以及版本控制等元数据的存储。
  • 而文档型存储相对到类BigTable存储又有两个大的提升。一是其Value值支持复杂的结构定义,二是支持数据库索引的定义。
  • 全文索引模型与文档型存储的主要区别在于文档型存储的索引主要是按照字段名来组织的,而全文索引模型是按字段的具体值来组织的。
  • 图数据库模型也可以看作是从Key-Value模型发展出来的一个分支,不同的是它的数据之间有着广泛的关联,并且这种模型支持一些图结构的算法。

对于NoSQL与关系型的差别,简单总结如下:

  • NoSQL数据库的数据模型通常与实际需求更贴近。通常使用关系型数据库时,需要关心的问题是“数据库能提供哪些功能”,而NoSQL模型关心得更多的是“可以解决哪些问题”
  • 使用NoSQL数据模型,通常需要你对存储的内部结构和实现算法有一定的了解。
  • 使用NoSQL数据库,通常要自己处理数据结构解析和数据的冗余复制问题。
  • 对于关系型数据库来说,对数据分级存储的处理并不强。但是对图数据库,或者说其它的NoSQL数据库来说,对数据的分级处理都是预先考虑的。

目前简单将NoSQL几个分类的代表产品列举如下:

  • Key-Value 存储: Oracle Coherence, Redis, Kyoto Cabinet
  • 类BigTable存储: Apache HBase, Apache Cassandra
  • 文档数据库: MongoDB, CouchDB
  • 全文索引: Apache Lucene, Apache Solr
  • 图数据库: neo4j, FlockDB

更多内容请移步原文: highlyscalable.wordpress.com

相关文章:

NoSQL数据模型

NoSQL 数据模型资料小全

推荐:长达150页的NoSQL论文

使用 NoSQL 数据库分析大规模数据

Cassandra数据模型
无觅

相关 [nosql 数据模型] 推荐:

论NoSQL的数据模型

- - NoSQLFan
本文内容是对《 NoSQL Data Modeling Techniques》一文的简单概述,原文对NoSQL的几种 数据模型进行了详细深入的讨论. 是了解NoSQL数据模型不过错过的全面资料. NoSQL的一些非功能性的特性,比如扩展性、性能以及一致性的讨论,目前已经有很多. 而对于NoSQL产品内部数据模型相关的知识一直比较欠缺,本文就希望能够系统地对NoSQL数据模型进行一些探讨.

NoSQL 数据模型资料小全

- medal - NoSQLfan
在 Linkedin 的 NoSQL Group 上,有一位同学求 NoSQL 底层实现方面的资料,于是回复就变成了各种资料聚集地了. 本站将资料整理在下面,希望对大家有用. Cloudera’s 关于 HBase 的文章:. 下面是10gen团队发的一篇文章,论述MongoDB 的数据模型:. 关于Amazon Dynamo的一篇文章:.

谈NoSQL数据模型-转载

- - 人月神话的BLOG
原文: http://blog.nosqlfan.com/html/3689.html. 本文内容是对《NoSQL Data Modeling Techniques》一文的简单概述,原文对NoSQL的几种数据模型进行了详细深入的讨论. 是了解NoSQL数据模型不过错过的全面资料. NoSQL的一些非功能性的特性,比如扩展性、性能以及一致性的讨论,目前已经有很多.

NOSQL数据模型和CAP原理

- - 数据库 - ITeye博客
我本来一直觉得NoSQL其实很容易理解的,我本身也已经对NoSQL有了非常深入的研究,但是在最近准备YunTable的Chart的时候,发现NoSQL不仅非常博大精深,而且我个人对NoSQL的理解也只是皮毛而已,但我还算是一个“知耻而后勇”的人,所以经过一段时间的学习之后,从本系列第六篇开始,就将和大家聊聊NoSQL,而本篇将主要给大家做一下NoSQL数据库的综述.

NoSQL聚合数据模型 - 大CC

- - 博客园_首页
聚合数据模型的特点就是把经常访问的数据放在一起(聚合在一块);. 这样带来的好处很明显,对于某个查询请求,能够在与数据库一次交互中将所有数据都取出来;. 当然,以这种方式存储不可避免的会有重复,重复是为了更少的交互;. 聚合结构对某些交互有利,却阻碍另一些交互;. 比如:以学生学号聚合学生信息(含学生姓名、班级、年龄、等信息,甚至英语学科成绩),通过学号查询时,能够在一次交互中查询出该学生的所有信息,但如果想通过学生姓名来查询,就很困难;.

Oracle MySQL Or NoSQL续

- - Sky.Jian 朝阳的天空
接前面一篇,这里再将之前在“中国系统架构师大会”5周年的时候发布的纪念册“IT架构实录”上的一篇文章发出来,也算是前面博文中PPT的一个文字版解读吧. Oracle,MySQL 还是 NoSQL. 随着阿里系的“去IOE”运动在社区的宣传声越来越大,国内正在掀起一股“去xxx”的技术潮. 不仅仅是互联网企业,包括运营商以及金融机构都已经开始加入到这个潮流之中.

[转]Geodatabase数据模型

- - 小鸥的博客
1  Geodatabase概念.   Geodatabase是ArcInfo8引入的一种全新的面向对象的空间数据模型,是建立在DBMS之上的统一的、智能的空间数据模型. “统一”是指,Geodatabase之前的多个空间数据模型都不能在一个统一的模型框架下对地理空间要素信息进行统一的描述,而Geodatabase做到了这一点;“智能化”是指,在Geodatabase模型中,对空间要素的描述和表达较之前的空间数据模型更接近我们的现实世界,更能清晰、准确地反映现实空间对象的信息.

NoSQL开篇——为什么要使用NoSQL

- Foxiang - 博客园新闻频道
  NoSQL在2010年风生水起,大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了NoSQL技术作为优先考虑的方面. 今年伊始,InfoQ中文站有幸邀请到凤凰网的孙立先生,为大家分享他之于NoSQL方面的经验和体会.   非常荣幸能受邀在InfoQ开辟这样一个关于NoSQL的专栏,InfoQ是我非常尊重的一家技术媒体,同时我也希望借助InfoQ,在国内推动NoSQL的发展,希望跟我一样有兴趣的朋友加入进来.

8种nosql对比

- - 谁主沉浮
虽然SQL数据库是非常有用的工具,但经历了15年的一支独秀之后垄断即将被打破. 这只是时间问题:被迫使用关系数据库,但最终发现不能适应需求的情况不胜枚举. 但是 NoSQL数据库之间的不同,远超过两 SQL数据库之间的差别. 这意味着软件架构师更应该在项目开始时就选择好一个适合的 NoSQL数据库.

CRM的客户数据模型:Salesforce.com(III)

- - CSDN博客推荐文章
图2的数据模型来自以下资料. 其中虚线画出的实体和关系均只存在于用户界面上. Record Type(记录类型). 每个实体(account,lead和contact)均会自动或者手工赋予一个record type. Record Type 属于实现层面的设计,它提供了一种方法,能够根据不同用户的情况,提供不同的选择列表值(picklist)和布局.