什么是NoSQL?
NoSQL,指的是非关系型的数据库。用于超大规模数据的存储。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
CAP定理
一个分布式计算系统不可能同时满足以三点:
- 一致性(Consistency):所有节点在同一时间具有相同的数据;
- 可用性(Availability):保证每个请求不管成功或者失败都有响应;
- 分区容错(Partition tolerance):系统中任意信息的丢失或者失败不会影响系统的继续运作。
CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性、可用性和分区容错这三个需求,最多只能同时较好的满足两个。
因此,根据CAP原理将NoSQL数据库分成了满足CA原则、满足CP原则和满足AP原则三大类:
- CA——单点集群,满足一致性、可用性的系统,通常在可扩展性上不太强大。
- CP——满足一致性、分区容忍性的系统,通常性能不是特别高。
- AP——满足可用性、分区容忍性的系统,通常可能对一致性要求低一些。
NoSQL的优点/缺点:
优点:
- 高可扩展性
- 分布式计算
- 低成本
- 架构灵活、半结构化数据
- 没有复杂的关系
缺点:
- 没有标准化
- 优先的查询功能
- 最终一致是不直观的程序
BASE:
BASE是NoSQL数据库通常对可用性及一致性的弱性要求原则:
- Basically Availble:基本可用
- Soft-state:软状态/柔性事务
- Eventual Consistency:最终一致
NoSQL数据库的分类: