mongodb出的nosql数据库选型方案

http://www.mongodb.com/lp/whitepaper/nosql-considerations

有自吹的嫌疑,但仍然很有参考价值

==========

摘抄一段使用nosql的三个动机:

(1)In some cases the motivation is technical — such as a need

to scale or perform beyond the capabilities of their existing systems — (2)while in other cases companies are driven by the desire
to identify viable alternatives to expensive proprietary software. (3)A third motivation is
agility or speed of development, as companies look to adapt to the market more quickly and embrace agile development methodologies.

(1) – 大部分nosql都可以自动扩展或者说很容易扩展

(2) – 大部分nosql免费

(3) – nosql没有schema或者schema很弱,需求变更时不需要小心翼翼地、层层审批地增减拆数据库字段;nosql在数据结构方面没有关系的限制,比起rdb有更强的建模能力和适应变更的能力,比如多层嵌套、多态的对象结构,用nosql做起来就很容易。

再抄一段data model的分类

1. key-value and wide-column models

    a. value对数据库来说完全透明,数据库只认key或key family

    b. 只能按key进行数据读写

    c. 一般不支持第二索引

    d. 代表:riak, redis(k/v); hbase, cassandra(wide column)

2. document model . 一条记录就是一个document (比如组装成json格式后再存储)

    a. 数据结构与OO对象可以完美映射

    b. 可以按任何field检索

    c. 支持统计查询

    d. 可以说是多才多艺,应用最广

    e. 代表产品:mongodb, couchdb

3. graph model.  采用图论中的概念来代表数据

   a. 使用node, edge 和 property来表示数据

   b. 关系查询语句执行最快,其他查询可能并不最优

   c. 主要用于强调关系的应用,如社交网络

   d. 代表产品: neo4j, hypergraphdb

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.