每日一点(关系型数据库与NoSQL数据库)
一、关系型数据库
关系型数据库,是指采用了关系模型来组织数据的数据库。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
1.基本特点
- 数据关系模型基于关系模型,结构化存储,完整性约束。
- 基于二维表及其之间的联系,需要连接、并、交、差、除等数据操作。
- 采用结构化的查询语言(SQL)做数据读写。
- 操作需要数据的一致性,需要事务甚至是强一致性。
2.优点
- 保持数据的一致性(事务处理)
- 可以进行join等复杂查询
- 通用化,技术成熟
3.缺点
- 数据读写必须经过sql解析,大量数据、高并发下读写性能不足
- 对数据做读写,或修改数据结构时需要加锁,影响并发操作
- 无法适应非结构化存储
- 扩展困难
- 昂贵、复杂
二、NoSQL数据库
NOSQL数据库不支持SQL语法,存储结构都是kv形式(key value),NOSQL的数据库没有一种通用语言,每种NOSQL都有自己的语法和api,以及擅长的业务和场景。
1.基本特点
- 非结构化的存储。
- 基于多维关系模型。
- 具有特有的使用场景。
2.优点
- 高并发,大数据下读写能力较强。
- 基本支持分布式,易于扩展,可伸缩。
- 简单,弱结构化存储。
3.缺点
- join等复杂操作能力较弱。
- 事务支持较弱。
- 通用性差。
- 无完整约束,复杂业务场景支持较差。
4.NOSQL的种类:
将典型的 NoSQL 划分为 4 种类型,分别是键值数据库、列式数据库、文档数据库和图形数据库。