NoSQL

兴起的原因:RDBMS无法满足web2.0的需求 、数据模型的局限性、Web2.0 RDBMS 许多特性没有发挥

RDBMS:无法满足海量数据、无法满足高并发、无法满足高可扩展和高可用性

进化路程:单节点---主从服务完成读写分离----分库----分表  复杂性、延迟性、扩容问题

NOSQL:hadoop MongoDB redis casendra

web 2.0 :

不要求严格数据库事务

不需要严格的读写实时性

不包含复杂的SQL查询(连接操作较少)


对比:

可用性较好、一致性一般

标准化不如RDBMS、标准完善

技术支持、维护  RDBMS占有

支持超大规模

数据模型灵活

缺乏底层基础理论

关键业务使用较少


5.3 NoSQL数据库

键值数据库

Redis

列族数据库

Hbase 

Cassandra

文档数据库

MongoDB

图数据库

Neo4j

三大基石

5.4.1

CAP理论 

一致性,可用性,分区容忍性

三者不可兼得

5.4.2

Base和最终一致性

基本可用,软状态(时间不同步具有一定的滞后性),最终一致性(因果一致性,单调写一致性,读己之所写,会话一致性)

数据冗余数N

写数据需要的节点数W

读数据需要的节点数R

强一致性 W+R>N 

弱一致性W+R<=N

5.5 NewSql数据库

水平可扩展性  强一致性 事务一致性 支持SQL查询 支持海量数据查询

处于NoSQL和RDBMS之间


5.6 MongDB

C++语言编写,基于分布式文件存储,水平扩展性好,为WEB应用提供高性能数据存储解决方案

特点 支持索引 表达式丰富,


基本概念:

数据库

集合

文档(行记录)

索引

表联合

主键


设计优点

并发性好

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。