RDBMS(关系型数据管理系统)
:指二维表格模型,一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织;主流的关系型数据库有:Oracle、DB2、Microsoft SQL Server、MySQL
NoSQL
:非关系型数据库;四大分类:键值存储系统、列存储系统、文档型数据库、图形数据库;主流的数据库有:MongoDB、Redis、MencacheDB
一、 RDBMS vs NoSQL
1、RDBMS:
- 高度组织化结构化数据
- 结构化查询语言(SQL)
- 数据和关系度存储在单独的表中
- 数据操纵语言,数据定义语言
- 严格的一致性
- 基础事务
2、NoSQL: - 不仅仅是SQL
- 没有声明性查询语言
- 没有预定义的模式
- 键值存储、列存储、文档存储、图形存储
- 最终一致性,而非ACID属性
- 非结构化和不可预知的数据
- CAP理论
- 高性能、搞可用和可伸缩性
二、CAP定理
- 一致性(Consistency):所有节点在同一时间具有相同的数据
- 可用性(Availability):保证每个请求不管成功或者失败都有响应
- 分隔容忍(Partition tolerance):系统中任意信息的丢失或失败不会影响系统的继续运行
**理论核心:**一个分布式系统不可能很好的同时很好的满足一致性、可用性和分区容错性三个要求,最多能同时满足其中的两个,因此根据CAP原理将NoSQL数据库分成了满足CA原则、满足CP原则和满足AP原则: - CA-单点集群,满足一致性、可用性的系统,通常可扩展性不太强大
- CP-满足一致性、分区容忍性的系统,通常可能对一致性要求低一些
- AP-满足可用性、分区容忍性的系统,通常会对一致性要求低一些
三、NoSQL的优点和缺点
1、优点:
- 高可扩展性
- 分布式计算
- 低成本
- 架构的灵活性
- 没有复杂的关系
2、缺点: - 没有标准化
- 有限的查询功能
- 最终一致是不直观的程序
4、BASE(Basically Available,Soft-state、Eventually Consistent)
BASE
是NoSQL数据库通常对可用性及一致性的弱要求原则:
- Basically Available-基本可用
- Soft-state-软件状态、柔性事务
- Eventual Consistency-最终一致性