NoSQL理论基础:
(1)CAP理论
一个分布式系统不可能同时满足一致性(consistency)、可用性(availability)和分区容忍性(tolerance of network patition水平扩展性)
eg:
满足C&A no P:
RDBMS(关系数据库管理系统)
满足C&P no A:
Bigtable,HBase,MongoDB,Redis
满足A&P no C:
Dynamo,Cassandra
eg:
满足C&A no P:
RDBMS(关系数据库管理系统)
满足C&P no A:
Bigtable,HBase,MongoDB,Redis
满足A&P no C:
Dynamo,Cassandra
(2)BASE(够用就好)
basically available基本可用
完美的系统是不存在的,只有清晰的了解应用或者系统最重要最基本的要求,才能够对此做出取舍,从而选择合适的数据库。
(3)最终一致性(eventual consistency)or软一致
过程松,结果紧,最终一致
(3)最终一致性(eventual consistency)or软一致
过程松,结果紧,最终一致
- 自我一致
客户端A成功写入一条数据,他可以自己读到新的数据,其他客户端B,C则不能立即访问到(像博客这类的应用)
- 因果一致
- 单调读一致
- 单调写一致
- 强一致性
cap鱼和熊掌不可兼得,所以完美的数据库是不存在的,于是产生了nosql。由于nosql系统中进行横向扩展是必需的,所以系统必须在可用性(base)和一致性(最终一致)上进行取舍,这三个理论构成一个环,共同奠定nosql的基础。
NOSQL产品分类:
- 列存数据库
容量大,压缩率高,分析速度块,但是随机存取效率不高,Google Bigtable,HBase,Cassandra,SimpleDB
- 文档型存储
灵活的放置数据,可修改表结构,MongoDB,TouchDB
- 键值存储
最佳性能,简单的数据模型,高速随机存取Redis,LevelDB
- 图数据库
按图的形式存储,内置各种常用的图算法,Neo4J,InfoGrid
本文介绍了NoSQL数据库的基础理论,包括自我一致、因果一致、单调读写一致性和强一致性等一致性模型。同时,详细讲解了列存数据库、文档型存储、键值存储和图数据库四种主要的NoSQL产品分类。
711

被折叠的 条评论
为什么被折叠?



