主题
前言
数据库按数据模型和使用方式,常见可以分为:
- 关系型数据库(RDBMS - Relational Database Management System)
- 非关系型数据库(NoSQL - Not Only SQL)
关系型数据库
关系型数据库使用表、行、列组织数据,通常使用 SQL 操作数据。
特点
- 表结构清晰:数据按表存储,字段类型和约束通常需要提前定义。
- 关系建模:表之间可以通过主键、外键或业务字段建立关联。
- SQL 查询:适合条件查询、关联查询、聚合统计等结构化数据操作。
- 事务支持:通常支持 ACID 事务,适合对一致性要求高的业务。
- 约束能力强:支持主键、唯一约束、非空约束、外键等。
常见数据库
- MySQL
- PostgreSQL
- SQLite
- Oracle Database
- Microsoft SQL Server
适用场景
- 用户、订单、支付、库存等结构化业务数据。
- 需要事务和一致性保障的系统。
- 数据关系明确、查询条件稳定的业务。
非关系型数据库
NoSQL 不是单一数据库类型,而是一类不以传统关系模型为核心的数据库。
常见类型
| 类型 | 说明 | 代表 |
|---|---|---|
| 键值数据库 | 通过 Key 直接读写 Value,访问速度快 | Redis、DynamoDB |
| 文档数据库 | 以 JSON、BSON 等文档形式存储数据 | MongoDB、CouchDB |
| 列族数据库 | 面向大规模分布式数据存储 | Cassandra、HBase |
| 图数据库 | 用节点和边表达复杂关系 | Neo4j、JanusGraph |
特点
- 数据模型更灵活,适合半结构化或特定模型的数据。
- 通常更容易做水平扩展,但具体能力取决于数据库类型和部署方式。
- 查询能力、事务能力、约束能力差异较大,不能一概而论。
适用场景
- 缓存、计数器、排行榜等高频读写场景。
- 文档内容、配置、日志、事件等半结构化数据。
- 图关系、时序数据、大规模分布式数据等特定模型场景。
