关系型与非关系型数据库
总结
介绍关系型数据库、非关系型数据库的特点并加以对比总结。
关系型数据库
关系型数据库(RDB,Relational Database)就是一种建立在关系模型基础上的数据库。
特点
- 有表的概念,以行和列的方式进行存储。
- 使用结构化查询语言(即 SQL)来对数据库进行查询
- 关系型数据库强调 事务 的 ACID 特性
- 关系型数据库强调数据的一致性,并为此降低读写性能。关系型数据的数据通常存储在硬盘中
常见的关系型数据库
MySQL、PostgreSQL、Oracle、SQL Server、SQLite(微信本地的聊天记录的存储就是用的 SQLite) ……。
非关系型数据库
- NoSQL 表示非关系型数据库,主要指那些非关系型的、分布式的,且一般不保证 ACID 的数据存储系统。
- 非关系型数据库的存储方式是基于键值来存储的。
- NOSQL 数据库无需提前设计表结构,相比于关系型数据库,NOSQL 高效灵活,更适合高并发的场景中。
常见的非关系型数据库
常见的 Redis、MongoDB 等都是非关系型数据库。
对比
- 存储形式:关系型数据库以表的形式进行存储数据,而非关系型数据库以 Key-Value 的形式存储数据。
- 存储介质:一般来说,关系型数据库是基于硬盘存储,非关系型数据库基于内存存储。(Mongodb 基于磁盘存储)
- ACID 特性:关系型数据库需要保证事务的 ACID,而非关系型数据库中的事务一般无法回滚。(也有部分数据库可以回滚,如 MongoDB 在集群模式下)
- 查询:关系型数据库可以通过一张表中的任意字段进行查询,非关系型数据库需要通过 key 进行查询。关系型数据库支持各种范围查询、公式计算等,非关系型数据库不一定支持。