什么是数据库?关系型和非关系型一篇讲清
什么是数据库?关系型和非关系型一篇讲清
一、先解决一个常见困惑
很多人一听到"数据库",就觉得这是个很专业的词,跟自己没关系。其实数据库离我们很近:
- 你登录一个网站,输入的账号密码,存在数据库里;
- 你购物时看到的订单、地址,存在数据库里;
- 你手机里的照片、聊天记录,也都存在某种形式的数据库里。
一句话说清:
数据库,就是一个专门用来"存数据、管数据"的仓库。
而这个仓库,不止一种形态。最常见的两大家族,就是关系型数据库和非关系型数据库。
二、先讲"数据库"到底是什么
例子:电子表格 vs 数据库
很多人最熟悉的"数据存储"是 Excel 表格。数据库可以粗略理解为"一个超级强大的、多人能同时用的、能快速查询的表格系统"。
Excel 和数据库的区别:
| 对比项 | Excel 表格 | 数据库 |
|---|---|---|
| 谁用 | 主要一个人用 | 很多人同时用 |
| 数据量 | 几万行就吃力 | 几亿行也能扛 |
| 查询能力 | 靠筛选、函数 | 专门的查询语言,更快更灵活 |
| 数据规则 | 比较随意 | 有严格的规则保证数据一致 |
| 所以,当你的数据变多、要很多人一起用、要快速查询和保证准确时,就需要数据库了。 |
三、关系型数据库:有"表格"和"关系"的那一类
关系型数据库(Relational Database),是最早、也是最主流的一类数据库。
它最大的特点是:数据被组织成一张张表格,表格之间可以建立关联。
特点
- 有固定的结构:每一张表有哪些列,必须先定义好。
- 用 SQL 查询:它有自己的查询语言,叫 SQL(结构化查询语言)。
- 数据强一致:有严格的规则,保证数据准确、不重复、不冲突。
- 表格之间有"关系":比如"用户表"和"订单表"可以通过用户 ID 关联起来。
生活类比
关系型数据库就像一个管理规范的档案室:
- 每个房间(表)里,档案都按固定的格式摆放;
- 每份档案(行)都有统一的编号和字段;
- 不同房间的档案之间,可以通过编号互相关联查询。
常见代表: MySQL、PostgreSQL、Oracle、SQL Server、GaussDB 等。
四、非关系型数据库:灵活自由的那一类
非关系型数据库(Non-Relational Database),也叫 NoSQL 数据库。
它的特点是:不强制要求固定的表格结构,形式更灵活。
为什么会出现它?
随着互联网发展,出现了很多新的需求,比如:
- 用户数量爆炸,关系型数据库扛不住;
- 数据类型越来越杂,不光是文字和数字,还有图片、日志、消息;
- 很多场景不需要那么严格的"表格关系",更看重速度和扩展性。
于是就有了各种"不那么像表格"的数据库。
常见类型
| 类型 | 特点 | 生活类比 | 典型代表 |
|---|---|---|---|
| 键值型 | 就像"编号→内容"的字典 | 储物柜:一个格子对应一个东西 | Redis |
| 文档型 | 存一整段结构化的文字/JSON | 文件夹里放着一份份完整档案 | MongoDB |
| 列族型 | 按列存储,适合海量数据 | 把信息按"列"分类贴在墙上 | Cassandra、HBase |
| 图数据库 | 专门存"谁和谁有关系" | 人脉关系网 | Neo4j |
生活类比:灵活的储物间
如果说关系型数据库是管理规范的档案室,那么非关系型数据库就像一个灵活的储物间:
- 东西不用非得放进固定格子;
- 可以根据需要随时调整摆放方式;
- 拿东西的速度往往更快。
五、一张表看清两者区别
| 对比项 | 关系型数据库 | 非关系型数据库 |
|---|---|---|
| 数据结构 | 固定的表格 | 灵活,形式多样 |
| 查询语言 | SQL | 各家不同,有的也支持 SQL |
| 扩展性 | 以纵向扩展为主(升级单机) | 更擅长横向扩展(加机器) |
| 一致性 | 强,数据准确 | 部分类型可能放宽,追求速度 |
| 适用场景 | 结构清晰、关系明确的业务 | 数据量大、类型杂、要高并发 |
| 上手难度 | 相对统一,资料多 | 类型多,需要按需选择 |
六、到底选哪个?没有绝对答案
很多人会问:"哪个更好?"答案是:看场景。
更适合关系型数据库的场景
- 你的数据结构清晰、固定,比如财务、订单、用户信息;
- 需要保证数据的强一致性(不能出错、不能重复);
- 需要复杂的表格关联和事务(比如转账,必须一步成功)。
更适合非关系型数据库的场景
- 数据量特别大,或访问量特别高;
- 数据类型很杂,结构经常变化;
- 主要用来做缓存、消息队列、日志存储;
- 需要极高的读写速度。
现实中,往往是组合使用
一个真实系统里,常常两者都用。 比如:
- 用户的基本信息、订单数据,放在关系型数据库里;
- 用户的登录状态、热点数据,放在 Redis(非关系型)里做缓存,加快速度;
- 大量的日志、行为数据,放在文档型或列族数据库里。
就像家里,重要的证件放在保险柜(关系型),常用的东西放在手边的抽屉(非关系型),各司其职。
七、给新手的三个误区
误区一:“关系型数据库就是落后的,非关系型才先进。”
不是。两者是解决不同问题的不同工具。关系型数据库至今仍是企业核心业务的主流选择,并没有被淘汰。
误区二:“非关系型数据库都不支持 SQL。”
不是。很多非关系型数据库也提供了类似 SQL 的查询方式,只是各家略有差异。
误区三:“选了一种数据库,就要全用它。”
不是。很多系统都是多种数据库配合使用,根据数据的特点各取所长。
八、最后总结
- 数据库:专门用来存数据、管数据、快速查数据的"仓库"。
- 关系型数据库:数据组织成表格,有严格结构,用 SQL,强一致。适合结构清晰、要求准确的业务。
- 非关系型数据库:结构灵活,形式多样,擅长大数据量和高并发。适合数据杂、量大、要快的场景。
- 选型原则:看场景,不迷信;现实里常常组合使用。
一句话记住:
关系型像规范的档案室,非关系型像灵活的储物间,各管一摊,常常搭配着用。
搞懂这两大家族的区别,再看到各种数据库的名字,就不会觉得陌生了。
- 点赞
- 收藏
- 关注作者
评论(0)