指的是非关系型数据库。用于超大数据的存储。例如谷歌和FaceBook.这些类型的数据存储不需要固定的模式,无需多于操作就可以横向扩展。
可以对数据量比较大的数据,比如用户个人信息,日志等数据进行挖掘。因为数据量比较大,SQL数据库已经不适合这些应用,NoSql数据库的发展却能很好的处理这些数据。
关系型数据库 RDBMS
高度组织化结构化数据;结构化查询语言(SQL);数据和关系都存储在单独的表中;数据操纵语言,数据定义语言;严格的一致性;基础事务
非关系型数据库 NoSql:
代表不仅仅是sql,没有声明性查询语言;没有预定义的模式;键-值对存储,列存储,文档存储,图形数据库;最终一致性,而非ACID属性(指的是事务的原子性,一致性,隔离性和持久性);非结构化和不可预知的数据;CAP定理;高性能,高可用和可伸缩性。
对于一个分布式计算系统来说,不可能同时满足以下三点:
一致性(Consistency):所有节点在同一时间具有相同的数据
可用性(Availability):保证每个请求不管成功或者失败都有响应
分割容忍(Partition tolerance):系统中任意信息的丢失或失败不会影响系统的继续运作
CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。
CA:可扩展性不太强大 CP 性能不高 AP 对一致性要求低
优点:高可扩展性;分布式计算;低成本;架构的灵活性,半结构化数据;没有复杂的关系
缺点:没有标准化;有限的查询功能;最终一致是不直观的程序
BASE是NoSQL数据库通常对可用性及一致性的弱要求原则:
Basically Availble --基本可用
Soft-state --软状态/柔性事务。 "Soft state" 可以理解为"无连接"的, 而 "Hard state" 是"面向连接"的
Eventual Consistency -- 最终一致性, 也是是 ACID 的最终目的。
列存储:Hbase
文档存储:MongoDB CouchDB
key-value存储:Redis
图存储:Neo4J