跳到主要内容

关系型数据库模型

在上一章中,你了解了数据模型的基本概念和分类方式,这一节我们将深入介绍最常见、最经典的数据模型——关系型数据库模型。你将学习它的核心思想、基本结构、组成元素,以及它在实际数据库系统中的应用方式。

什么是关系型数据库模型?

关系型数据库模型(Relational Data Model),是一种用“表格”来组织和表示数据的数据模型。这种模型由美国学者 Edgar F. Codd(埃德加·科德)在 1970 年提出,至今仍是主流数据库系统(如 MySQL、PostgreSQL、SQL Server、Oracle 等)所采用的基础模型。

在关系模型中:

  • 一张 (Table) 就代表一个 关系(Relation);
  • 表中的每一行,叫做一条 记录(Tuple);
  • 表中的每一列,叫做一个 字段属性(Attribute);
  • 表本身的结构,称为 关系模式(Relation Schema)。

你可以把它类比为 Excel 表格:每一张表是一个 Sheet,每一行是一个数据记录,每一列是一个字段。

关系模型的基本概念

关系(Relation)

“关系”就是一张表,用来存储某一类结构化的数据。

例如,你有一个“学生信息表”(Student)如下:

学号姓名班级
1001小明一年级一班
1002小红一年级二班
1003小刚一年级一班

这张表就是一个关系,它的结构由字段组成,数据由记录填充。

元组(Tuple)

每一行数据,就是一个元组(也叫记录)。例如:

(1001, 小明, 一年级一班)

这个元组表示一个学生的完整信息。

属性/字段(Attribute)

每一列就是一个属性,也就是字段。例如“学号”、“姓名”、“班级”就是属性。属性的数据类型需要定义清楚,比如学号是整数、姓名是字符串等。

以下是关系型数据库中最常见的几类数据类型(以 SQL 标准为例,略去各数据库差异):

类型示例值说明
数值类型INT123整数,适用于编号、计数等
BIGINT922337203更大的整数范围
DECIMAL12.34精确小数(适用于金融)
FLOAT3.14159近似小数(速度快但不精确)
字符串类型CHAR(n)'CN'固定长度字符串(性能好)
VARCHAR(n)'北京'可变长度字符串(节省空间)
TEXT大段文字存放长文本,比如评论、文章内容等
日期和时间类型DATE2025-04-17日期(不含时间)
TIME14:30:00时间(不含日期)
DATETIME2025-04-17 14:30:00日期+时间
TIMESTAMP同上可记录时间戳(有时区支持)
布尔类型BOOLEAN / BOOLTRUEFALSE通常表示“是否启用”、“是否通过”等

域(Domain)

属性可以取值的合法范围叫做“域”。例如:

  • 姓名字段的域可能是“所有 UTF-8 字符串”;
  • 学号的域可能是“正整数”;
  • 出生日期的域是“合法的日期”。

域的定义有助于确保数据的合法性。

主键(Primary Key)

主键(Primary Key)是用来唯一标识表中一行记录的字段(或字段组合)。你可以把主键理解成“身份证号”,主键具有以下特点:

  • 唯一性:不能重复,每一行都必须有不同的主键值;
  • 非空性:不能是空(NULL);
  • 稳定性:值尽量不要变,比如学号、工号、订单号;
  • 通常是某个字段(或多个字段组合);
  • 每个表只能有一个主键

例如在学生表(Student)中,“学号”就可以作为主键,因为每个学生的学号都是唯一的。

学号姓名班级
1001小明一年级一班
1002小红一年级二班
1003小刚一年级一班

外键(Foreign Key)

外键(Foreign Key)是用于建立两个表之间联系的字段。外键本身也是一个字段,并且它引用自另一个表的主键,因此可以用来建立两个表之间的关系。外键具有以下特点:

  • 外键的值必须是另一个表中主键的值,或者是 NULL;
  • 外键可以有多个。

我们将前面学生表(Student)中的“班级”字段修改为“班级ID”,如下所示:

学号姓名班级ID(外键)
1001小明1
1002小红2

我们再建一个“班级表”(Class):

班级ID班级名
1一年级一班
2一年级二班

那么,学生表中的“班级ID”(Student.班级ID)就是“班级表”中主键的外键(它引用的是 Class.班级ID)。外键的存在使得数据可以关联查询,而不是冗余存储。

提示

外键告诉数据库:“学生表中的班级ID,必须是班级表中已经存在的ID。”

这样做的好处是:数据更一致、更规范。比如你就不能插入一个“班级ID=999”的学生记录,因为班级表里没有这个班。

候选键(Candidate Key)

候选键是指在一张表中,可以唯一标识每一行记录的字段(或字段组合)。也就是说,候选键 = 有资格成为主键的字段。在多个候选键中,你可以选择其中一个作为主键,其他的就是“备用”的。

假设你有这样一个学生表:

学号身份证号姓名手机号
100111010120000101小明13812345678
100211010120000202小红13987654321

在这个表中,以下字段都有可能唯一标识一个学生

  • 学号(比如 1001)
  • 身份证号(每个人唯一)
  • 手机号(一般也唯一)

所以这些字段都是候选键。你可以选其中一个(比如学号)作为主键,其它就是候选键,但不是主键。

关系操作:集合思维

关系模型是以集合为基础的,这意味着你可以用集合操作(如选择、投影、连接、并集、差集等)来处理表格数据。

在 SQL 中,这些操作被转化为各种 查询语句SELECTJOINUNION 等)。

关系模型的优势

  • 结构清晰:表结构简单,易于理解和维护;
  • 高度标准化:支持 SQL 语言,跨平台通用;
  • 数据完整性好:主键、外键、约束机制完善;
  • 支持事务:保证操作的一致性和可靠性;
  • 适合结构化数据:适用于大多数业务系统,如电商、财务、库存等。

你在数据库中如何使用关系模型?

在实际使用关系型数据库时:

  1. 你会设计表结构(建模);
  2. 使用 SQL 语言来创建表(如 CREATE TABLE);
  3. 通过 INSERT 插入数据,SELECT 查询数据;
  4. 设置主键、外键、索引等,确保数据正确性和查询效率;
  5. 使用 JOIN 等操作连接多个表,实现复杂业务逻辑。

这些过程,正是关系模型在实际系统中的体现。

小结

本节你学习了:

  • 关系型数据库模型的由来与基本定义;
  • 表(关系)、元组、属性、主键、外键、候选键等核心概念;
  • 关系模型的优点与适用场景;
  • 如何在实际项目中使用关系模型建表、管理数据。

关系型数据库模型是数据库学习的基石。掌握这些基础知识,将帮助你更好地理解后续的数据库设计、SQL 查询和规范化理论等内容。