http://blog.nahurst.com/visual-guide-to-nosql-systems

[该贴被oojdon于2010-05-12 10:51修改过]

Relational systems are the databases we've been using for a while now. RDBMSs and systems that support ACIDity and joins are considered relational.
Key-value systems basically support get, put, and delete operations based on a primary key.
Column-oriented systems still use tables but have no joins (joins must be handled within your application). Obviously, they store data by column as opposed to traditional row-oriented databases. This makes aggregations much easier.
Document-oriented systems store structured "documents" such as JSON or XML but have no joins (joins must be handled within your application). It's very easy to map data from object-oriented software to these systems.
Traditional RDBMSs like Postgres, MySQL, etc (relational)
Vertica (column-oriented)
Aster Data (relational)
Greenplum (relational)
Consistent, Partition-Tolerant (CP) Systems have trouble with availability while keeping data consistent across partitioned nodes. Examples of CP systems include:
BigTable (column-oriented/tabular)
Hypertable (column-oriented/tabular)
HBase (column-oriented/tabular)
MongoDB (document-oriented)
Terrastore (document-oriented)
Redis (key-value)
Scalaris (key-value)
MemcacheDB (key-value)
Berkeley DB (key-value)
Available, Partition-Tolerant (AP) Systems achieve "eventual consistency" through replication and verification. Examples of AP systems include:
Dynamo (key-value)
Voldemort (key-value)
Tokyo Cabinet (key-value)
KAI (key-value)
Cassandra (column-oriented/tabular)
CouchDB (document-oriented)
SimpleDB (document-oriented)
Riak (document-oriented)
从CAP原理,可以对这几大数据库进行分类。分为三大类:
CA:追求高一致性,高准确,就象有道友都担心内存会写错如何回滚,这就属于追求CP类型。传统关系数据库如MySQL Oracle等属于这类,它的问题是:处理分区备份复制很麻烦,也就是分布式存储比较麻烦。
CP:抓住一致性和分区容错,当跨网络分区保持数据一致性时,可用性有些问题,客户端读写性能差一些。:
BigTable (column-oriented/tabular)
Hypertable (column-oriented/tabular)
HBase (column-oriented/tabular)
MongoDB (document-oriented)
Terrastore (document-oriented)
Redis (key-value)
Scalaris (key-value)
MemcacheDB (key-value)
Berkeley DB (key-value)
AP:抓住可用性和分区容错,牺牲一定的一致性,也就是说为追求最终一致性,BASE思想。适合社会化媒体。
Dynamo (key-value)
Voldemort (key-value)
Tokyo Cabinet (key-value)
KAI (key-value)
Cassandra (column-oriented/tabular)
CouchDB (document-oriented)
SimpleDB (document-oriented)
Riak (document-oriented)
总体来说:CA - CP - AP 是按照一致性要求不断降低排列。
[该贴被banq于2010-05-12 11:38修改过]
[该贴被banq于2010-05-12 11:39修改过]
[该贴被banq于2010-05-12 11:43修改过]