MongoDB 是一个基于分布式文件储存的数据库,为WEB 应用提供可扩展的高性能数据储存方案。是非关系数据库当中数据库功能最丰富,最像关系数据库的。文档存储一般用类似json 的格式存储,存储的内容是文档型的。这样也就有机会对某些字段建立索引,实现关系数据库的某些功能。
关系数据库遵循ACID 规则------A(Atomicity) 原子性(要么全做,要么都不做)、C(Consistency) 一致性(数据库要一直保持一致的状态)、I(Isolation) 独立性(只要一个事物未保存,不会影响之前的)、D(Durability) 持久性(永远保存在数据库中,不会丢失)
NoSQL 的 CAP 定论 ,指出对于一个分布式计算系统来说,不可能同时满足一下三点------- 一致性(Consistency) 所有节点在同一时间具有相同的数据、可用性(Availability) 保证每个请求不管成功或者失败都有响应、分割容忍(Partition tolerance) 系统中任意的丢失或失败不会影响系统的继续运行
NoSQL vs RDBMS(关系数据库管理系统)
RDBMS ------ 高度组织化结构化数据、结构化查询(SQL)(SQL)、数据和关系都存储在单独的表中、数据操纵语言,数据定义语言、严格的一致性、基础事务
NoSQL ------ 代表着不仅仅是SQL、没有声明行查询语句、没有预定义的模式、键-值对存储,列存储,文档存储,图形数据库、最终一致性,而非ACID 属性、非结构化不可预知的数据、CAP定义、高性能,高可用性和可伸缩性
MongoDB 是由C++ 语言编写的,是一个基于分布式文件存储的开源数据库系统,在高负载的情况下,添加更多的节点,可以保证服务器性能。旨在为WEB 应用提供可扩展的高性能数据存储解决方案