什么是MongoDB?
MongoDB是一个基于分布式文件存储的数据库,是一个介于关系型数据库和非关系型数据库之间的产品,是非关系数据库当中功能最丰富、最像关系数据库的。
MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成,MongoDB文档类似于JSON对象,字段值可以包含其他文档、数组及文档数组。
什么是NoSQL?
Not Only SQL,指非关系型数据库,用于超大规模数据的存储
2009年,Atlanta,no:sql(east),口号是"select fun, profit from real_world where relational=false;"
RDBMS vs NoSQL
RDBMS:高度组织化结构化数据、结构化查询语言(SQL) (SQL)、数据和关系都存储在单独的表中、数据操纵语言,数据定义语言、严格的一致性、基础事务
NoSQL:代表着不仅仅是SQL、没有声明性查询语言、没有预定义的模式、键 - 值对存储,列存储,文档存储,图形数据库、最终一致性,而非ACID属性、非结构化和不可预知的数据、CAP定理、高性能,高可用性和可伸缩性
什么是CAP定理?
CAP定理,又被称作布鲁尔定理(Brewer's Theorem),它指对于一个分布式计算系统来说,不可能同时满足以下三点:
一致性(consistency)所有节点在同一时间具有相同的数据
可用性(Available)保证每个请求不管成功或者失败都有响应
分隔容忍(Partition Tolerance)系统中任意信息的丢失或失败不会影响系统的继续运作
最多能同时较好的满足两个:
BASE
Basically Available, Soft-state, Eventually Consistent,由Eric Brewer定义
基本可用,软状态/柔性事务(无连接的),最终一致性