数据库总体可以分为 两大类:关系型 / 非关系型(NoSQL)
关系型数据库
什么叫关系型数据库?
首先这里的核心结构是“关系”,指的是数学中的“关系”,本质就是“二维表”。
这个是由IBM 科学家埃德加·科德在1970年提出来的一种数据模型,由行和列组成的表称为关系(Relation),行称为元组(Tuple),列称为属性(Attribute)。
特点:表格结构、SQL、强一致性、事务 ACID,
常见代表:
- MySQL
- PostgreSQL
- Oracle
- SQL Server
- MariaDB
非关系型数据库(NoSQL)
顾名思义,是因为它不使用“关系模型”来存放数据,也不依赖表格,行,列。NoSql = not only sql,代表不仅仅是sql,总体包括了:
- 不急于关系模型。
- 没有固定表结构。
- 可水平扩展。
- 高性能,高并发适用。
但是,“非关系”不是没有关系,NoSQL 中也可以有数据之间的“联系”,它的联系只是不基于“关系模型”。
NoSQL 是为大规模、高并发、灵活结构而设计的数据库。
NoSQL 又可细分为 4 大类型:
2.1 键值型数据库(Key–Value)
数据以 Key → Value 存储,适合缓存、高并发、Session、分布式系统,代表:
- Redis
- Memcached
2.2 文档型数据库(Document DB)
使用 JSON/BSON 保存灵活文档,结构可变,代表:
- MongoDB
- Elasticsearch
2.3 列式数据库(Columnar Database)
按列族存储,适合大数据分析、海量写入,代表:
- HBase
- ClickHouse(也属于列式存储)
2.4 图数据库(Graph DB)
存储点和边,适合社交网络、推荐系统,代表:
- Neo4j
- JanusGraph