什么是数据库?关系型和非关系型一篇讲清

举报
yd_217436577 发表于 2026/11/02 09:16:31 2026/11/02
【摘要】 数据库离我们很近:账号、订单、聊天记录都存在里面。本文用"电子表格 vs 数据库""规范档案室 vs 灵活储物间"这些生活类比,讲清数据库是什么,以及关系型数据库(固定表格、SQL、强一致)和非关系型数据库(结构灵活、类型多样)两大家族的区别,并给出"看场景选型、常常组合使用"的实用原则。

什么是数据库?关系型和非关系型一篇讲清

一、先解决一个常见困惑

很多人一听到"数据库",就觉得这是个很专业的词,跟自己没关系。其实数据库离我们很近:

  • 你登录一个网站,输入的账号密码,存在数据库里;
  • 你购物时看到的订单、地址,存在数据库里;
  • 你手机里的照片、聊天记录,也都存在某种形式的数据库里。
    一句话说清:

数据库,就是一个专门用来"存数据、管数据"的仓库。
而这个仓库,不止一种形态。最常见的两大家族,就是关系型数据库和非关系型数据库。

二、先讲"数据库"到底是什么

例子:电子表格 vs 数据库

很多人最熟悉的"数据存储"是 Excel 表格。数据库可以粗略理解为"一个超级强大的、多人能同时用的、能快速查询的表格系统"。
Excel 和数据库的区别:

对比项 Excel 表格 数据库
谁用 主要一个人用 很多人同时用
数据量 几万行就吃力 几亿行也能扛
查询能力 靠筛选、函数 专门的查询语言,更快更灵活
数据规则 比较随意 有严格的规则保证数据一致
所以,当你的数据变多、要很多人一起用、要快速查询和保证准确时,就需要数据库了。

三、关系型数据库:有"表格"和"关系"的那一类

关系型数据库(Relational Database),是最早、也是最主流的一类数据库。
它最大的特点是:数据被组织成一张张表格,表格之间可以建立关联。

特点

  1. 有固定的结构:每一张表有哪些列,必须先定义好。
  2. 用 SQL 查询:它有自己的查询语言,叫 SQL(结构化查询语言)。
  3. 数据强一致:有严格的规则,保证数据准确、不重复、不冲突。
  4. 表格之间有"关系":比如"用户表"和"订单表"可以通过用户 ID 关联起来。

生活类比

关系型数据库就像一个管理规范的档案室:

  • 每个房间(表)里,档案都按固定的格式摆放;
  • 每份档案(行)都有统一的编号和字段;
  • 不同房间的档案之间,可以通过编号互相关联查询。
    常见代表: MySQL、PostgreSQL、Oracle、SQL Server、GaussDB 等。

四、非关系型数据库:灵活自由的那一类

非关系型数据库(Non-Relational Database),也叫 NoSQL 数据库。
它的特点是:不强制要求固定的表格结构,形式更灵活。

为什么会出现它?

随着互联网发展,出现了很多新的需求,比如:

  • 用户数量爆炸,关系型数据库扛不住;
  • 数据类型越来越杂,不光是文字和数字,还有图片、日志、消息;
  • 很多场景不需要那么严格的"表格关系",更看重速度和扩展性。
    于是就有了各种"不那么像表格"的数据库。

常见类型

类型 特点 生活类比 典型代表
键值型 就像"编号→内容"的字典 储物柜:一个格子对应一个东西 Redis
文档型 存一整段结构化的文字/JSON 文件夹里放着一份份完整档案 MongoDB
列族型 按列存储,适合海量数据 把信息按"列"分类贴在墙上 Cassandra、HBase
图数据库 专门存"谁和谁有关系" 人脉关系网 Neo4j

生活类比:灵活的储物间

如果说关系型数据库是管理规范的档案室,那么非关系型数据库就像一个灵活的储物间:

  • 东西不用非得放进固定格子;
  • 可以根据需要随时调整摆放方式;
  • 拿东西的速度往往更快。

五、一张表看清两者区别

对比项 关系型数据库 非关系型数据库
数据结构 固定的表格 灵活,形式多样
查询语言 SQL 各家不同,有的也支持 SQL
扩展性 以纵向扩展为主(升级单机) 更擅长横向扩展(加机器)
一致性 强,数据准确 部分类型可能放宽,追求速度
适用场景 结构清晰、关系明确的业务 数据量大、类型杂、要高并发
上手难度 相对统一,资料多 类型多,需要按需选择

六、到底选哪个?没有绝对答案

很多人会问:"哪个更好?"答案是:看场景。

更适合关系型数据库的场景

  • 你的数据结构清晰、固定,比如财务、订单、用户信息;
  • 需要保证数据的强一致性(不能出错、不能重复);
  • 需要复杂的表格关联和事务(比如转账,必须一步成功)。

更适合非关系型数据库的场景

  • 数据量特别大,或访问量特别高;
  • 数据类型很杂,结构经常变化;
  • 主要用来做缓存、消息队列、日志存储;
  • 需要极高的读写速度。

现实中,往往是组合使用

一个真实系统里,常常两者都用。 比如:

  • 用户的基本信息、订单数据,放在关系型数据库里;
  • 用户的登录状态、热点数据,放在 Redis(非关系型)里做缓存,加快速度;
  • 大量的日志、行为数据,放在文档型或列族数据库里。
    就像家里,重要的证件放在保险柜(关系型),常用的东西放在手边的抽屉(非关系型),各司其职。

七、给新手的三个误区

误区一:“关系型数据库就是落后的,非关系型才先进。”
不是。两者是解决不同问题的不同工具。关系型数据库至今仍是企业核心业务的主流选择,并没有被淘汰。
误区二:“非关系型数据库都不支持 SQL。”
不是。很多非关系型数据库也提供了类似 SQL 的查询方式,只是各家略有差异。
误区三:“选了一种数据库,就要全用它。”
不是。很多系统都是多种数据库配合使用,根据数据的特点各取所长。

八、最后总结

  • 数据库:专门用来存数据、管数据、快速查数据的"仓库"。
  • 关系型数据库:数据组织成表格,有严格结构,用 SQL,强一致。适合结构清晰、要求准确的业务。
  • 非关系型数据库:结构灵活,形式多样,擅长大数据量和高并发。适合数据杂、量大、要快的场景。
  • 选型原则:看场景,不迷信;现实里常常组合使用。
    一句话记住:

关系型像规范的档案室,非关系型像灵活的储物间,各管一摊,常常搭配着用。
搞懂这两大家族的区别,再看到各种数据库的名字,就不会觉得陌生了。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。