1.关系型数据库
关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织。
2.非关系型数据库
非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。
3.对比
3.1 存储方式
- 关系型数据库天然就是表格式的(格式一致),因此存储在数据表的行和列中,结构化存储。
- 非关系型数据库通常存储在数据集中,就像文档、键值对、列存储、图结构。
3.2 语法
- 关系型数据库查询语法是固定的,不同的数据库是通用的
- 不同的非关系数据库语法是不同的。
3.3 事务支持
- 遵循ACID(原子性、一致性、隔离性、持久性)元原则;
- 强调CAP定理(一致性、可用性、分区容错性)中的不同方面
3.4 使用场景
关系型数据库适合:
- 需要复杂查询和事务的应用(如银行系统)
- 数据结构相对固定和规范化的场景
- 需要高度数据一致性的应用
非关系型数据库适合:
- 处理大量非结构化或半结构化数据
- 需要高可扩展性和可用性的场景
- 特定用例如缓存(Redis)、文档存储(MongoDB)、图形数据(Neo4j)
4.总结
SQL | NoSQL | |
---|---|---|
数据结构 | 结构化 | 非结构化 |
数据关联 | 关联的 | 非关联的 |
查询方式 | SQL | 非SQL |
事务支持 | ACID | BASE |
存储方式 | 磁盘 | 内存 |
扩展性 | 垂直 | 水平 |
示例 | MySQL、Oracle、PostgreSQL、SQL Server | MongoDB、Redis、Cassandra、Neo4j |