设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

NoSQL数据库面面观

2013-11-18 11:08| 发布者: joejoe0332| 查看: 2870| 评论: 0|原作者: 张龙|来自: infoQ

摘要:   Alexey Vasiliev是一位知名的Web开发者与Linux系统管理员,曾参与开发过多个项目,如falcon、mongodb_logger、sht_rails及piro等项目。近日,Vasiliev就当前各种NoSQL数据库的优势与劣势撰文进行了详尽的分析。 ...


  文档存储


  文档存储指的是用于存储、搜索与管理面向文档的信息(半结构化数据)的程序,其中心概念就是文档。具体的面向文档数据库的实现是不同的,不过总的来说,他们都会以各种标准化格式对数据(文档)进行封装与加密,主要格式有XML、YAML、JSON、BSON、PDF等等。


  优点:

  • 足够灵活的查询语言。
  • 易于水平扩展。


  缺点:

在很多时候原子性是得不到保障的。


  典型代表:

  • MongoDB
  • Couchbase
  • CouchDB
  • RethinkDB


  图型数据库


  图型数据库指的是使用图结构的数据库,通过结点、边与属性来表示和存储数据。根据定义,图型数据库是一种提供了无需索引而彼此邻接的存储系统。这意味着每个元素都包含了直接指向邻接元素的指针,因此没必要再通过索引进行查找了。


  优点:

  • 对于关联数据集的查找速度更快。
  • 可以很自然地扩展为更大的数据集,因为他们无需使用代价高昂的连接运算符。


  缺点:

  • RDBMS可以用在更为通用的场景下,图型数据库只适合类似于图的数据。


  典型代表:

  • Neo4j
  • FlockDB
  • InfoGrid
  • OrientDB


  多模数据库


  这些数据库包含了多种数据库的特性。


  有两种不同的产品分组可以认为是多模的:


  • 支持多种数据模型和用例的多模数据库。 比如说,ArangoDB宣称它拥有键值存储的好处,同时还提供了面向文档以及图型数据库的支持。
  • 支持多种模式的通用目的的数据库。 比如说,Oracle的MySQL 5.6支持SQL方式的访问,也可以通过Memcached API实现键值访问。


  典型代表:

  • ArangoDB
  • Aerospike
  • Datomic


  对象数据库


  数据库中的数据都建模为对象、属性、方法以及类。面向对象的数据库通常适合于需要高性能数据处理的应用,这种应用一般都有非常复杂的结构。


  优点:

  • 相比于关系元组来说,对象模型最适合于展现现实世界,对于复杂、多方位的对象来说尤为如此。
  • 使用层次特性来组织数据。
  • 访问数据时并不需要专门的查询语言,因为访问是直接面向对象的。然而,有时也是需要使用查询的。


  缺点

  • 在RDBMS中,由于表的创建、修改或是删除而导致的模式修改通常并不依赖于应用。在使用对象数据库的应用中,模式修改类通常意味着还要对与当前类关联的其他应用类进行修改。这会导致对整个系统进行修改。
  • 对象数据库通常会通过单独的API与特定的语言绑定,只有通过该API才能查询数据。在这方面,RDBMS就做得很好,这要归功于它所使用的通用查询语言。


  典型代表:

  • VelocityDB
  • Objectivity
  • ZODB
  • Siaqodb
  • EyeDB


  多维数据库


  这是针对在线分析处理的一种数据库,它可以从各种关系型数据库中检索数据,并且以某种方式将信息组织为类别和段当中。


  典型代表:

  • GlobalsDB
  • Intersystems Cache
  • SciDB
  • Rasdaman


  多值数据库


  多维数据库的变种。主要的特性是支持使用属性来存储值的列表。


  典型代表:

  • Rocket U2
  • OpenInsight
  • Reality


  总结


  NoSQL的发展速度异常迅猛,不过这并不意味着关系型数据库就没落了。他们还会在很多场景下发挥着巨大的作用,并且与NoSQL数据库共存。我们 现在处在多种持久化存储共存的时代,并不存在处于垄断地位的关系型数据库与NoSQL数据库。架构师们对数据库的选择将会基于数据存储本身的特性,以及所 预估的数据量。


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部