MySQL 之所以被称为“关系型数据库”,并不是因为表与表之间建立了“关系”(虽然这确实是它的一大特征),而是因为它的底层数据模型基于数学中的“关系模型”(Relational Model)。

历史背景

  • “关系型数据库”这个概念最早由 IBM 的 Edgar F. Codd 在 1970 年提出(论文《A Relational Model of Data for Large Shared Data Banks》)。

  • MySQL、PostgreSQL、Oracle、SQL Server 等都是基于这一模型实现的,因此统称为 关系型数据库管理系统(RDBMS)。

这里的“关系”是一个严格的数学概念,而非日常用语中的“关联”。为了让你透彻理解,我们可以从以下三个维度来拆解:

1. 数学根源:什么是“关系”?


“关系型数据库”的理论基础是由 IBM 研究员埃德加·科德(E.F. Codd)在 1970 年提出的。他借用了数学集合论中的概念:
*   数学定义:在数学中,一个“关系”(Relation)指的是一组元组(Tuple)的集合。
*   映射到数据库:
    *   一张表(Table)就是一个“关系”。
    *   表中的每一行(Row)被称为一个“元组”。
    *   表中的每一列(Column)被称为一个“属性”。

简单来说:MySQL 把数据看作是二维表格的集合,每一个表格在数学上就是一个“关系”。因为它建立在“关系模型”之上,所以被称为关系型数据库。

2. 直观理解:二维表结构


虽然底层是数学模型,但在实际使用中,我们通常这样理解“关系”:
*   结构化存储:数据被严格地组织在行和列组成的二维表中(类似于 Excel 表格,但更严谨)。
*   数据关联:虽然“关系”的本意是数学模型,但在工程实践中,MySQL 确实擅长处理数据之间的逻辑联系。通过主键(Primary Key)和外键(Foreign Key),不同的表(关系)可以连接起来。
 *   例如:“用户表”和“订单表”通过“用户ID”建立关系,这样数据库就能知道哪个订单属于哪个用户。

3.关系型数据库的核心特点

关系型数据库之所以叫“关系型”,是因为它基于以下核心思想:

  1. 数据以表(Table)的形式组织
    表由行(记录/元组)和列(属性/字段)组成,结构清晰。

  2. 表之间通过“关系”连接
    虽然“关系”本身指单个表,但多个表之间也可以通过外键(Foreign Key) 建立关联,比如:

    • 学生表(student_id, name)
    • 成绩表(student_id, course, score)
      通过 student_id 关联两个表,形成逻辑上的“关系网络”。
  3. 遵循关系模型的规则(由 E.F. Codd 提出)

    • 数据必须是规范化的(避免冗余)
    • 支持关系代数操作(如选择、投影、连接等)
    • 保证数据完整性(实体完整性、参照完整性等)


MySQL 完全遵循了关系模型的规则,这也是它区别于非关系型数据库(如 MongoDB、Redis)的关键:
*   固定模式(Schema):在使用前必须先定义表结构(列名、数据类型),数据必须符合这个结构。
*   原子性:表中的每个字段都是不可再分的最小单位(第一范式)。
*   使用 SQL:它使用结构化查询语言(SQL)来操作这些“关系”,这是关系型数据库的标准语言。

4. 对比非关系型数据库(NoSQL)

为了更清楚理解“关系型”的含义,可以对比 NoSQL 数据库:

特性 关系型数据库(如 MySQL) 非关系型数据库(如 MongoDB)
数据模型 表(行+列),结构化 文档、键值、图、列族等,灵活
是否支持 JOIN 通常不支持或有限支持
是否强调“关系” 是(表间关联) 否(常靠嵌入或应用层处理)

总结


MySQL 叫“关系型数据库”,是因为它用数学上的“关系”(即二维表)来组织数据。

*   狭义上:指它基于科德提出的“关系模型”数学理论。
*   广义上:指它通过表格形式存储数据,并能通过外键等机制处理表与表之间的关联。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐