👋 欢迎来到关系型数据库的世界!

你好,未来的计算机科学家!这一章非常重要,因为数据库是数字世界的支柱——想想谷歌、亚马逊,或者你学校的学生记录系统。只要涉及大量有序数据的存储,就离不开数据库!

如果刚开始觉得有点复杂,不用担心。我们将带你拆解这些超高效的数据存储系统是如何工作的,并重点掌握在使用结构化查询语言(SQL)之前必须理解的核心概念。


1. 什么是数据库?

简单定义

数据库(Database)就是一个有序的相关数据集合。它允许用户快速、高效地存储、管理和检索信息。

想象一下你身边的图书馆。如果所有的书都乱扔在地上,想找一本特定的书是不可能的。图书馆的目录——通过书名、作者和存放位置将书籍整齐排列——就是数据库在现实世界中的完美类比。

关系模型

在计算机科学中,我们重点关注一种特定类型的数据库,称为关系型数据库(Relational Database)

关系模型的核心思想是:数据存储在独立且简单的结构(称为“表”)中,并通过特殊的键(Keys)相互链接(建立关系)。这比把所有数据放在一个巨大的列表中要高效得多。

🔑 重点收获:效率

关系型数据库组织数据是为了节省空间并避免重复输入相同的信息。这个过程称为减少数据冗余(Data Redundancy)


2. 关系型数据库的组件

关系型数据库由三个主要组件构成。如果你能理解电子表格,那你就能轻松掌握这些部分!

2.1. 表(关系,Tables/Relations)

表(Table)(有时也称为关系,Relation)是数据库的基本构建块。它存储关于某一种实体(如学生、产品或订单)的数据。

  • 类比:一个单独的电子表格文件。

2.2. 字段(属性/列,Fields/Attributes/Columns)

字段(Field)是关于表中实体的单一信息点。字段是表的垂直部分。

  • 示例:学生ID(Student_ID)、名字(First_Name)、出生日期(Date_of_Birth)。
  • 字段定义了数据的结构

你知道吗?在数据库理论中,字段也被称为属性(Attributes)

2.3. 记录(元组/行,Records/Tuples/Rows)

记录(Record)是针对某一个特定项目或人员的一整套字段。记录是表的水平部分。

  • 示例:关于某一个特定学生的所有信息(他们的ID、姓名、出生日期等)。
  • 记录有时也被称为元组(Tuple)或简单地称为行(Row)
📝 快速回顾:结构

表(Table) = 整个容器(例如,“学生”文件)

字段(Field) = 标题栏(例如,“姓名”或“地址”)

记录(Record) = 这些标题下对应某一条目的具体数据


3. 确保数据质量:键与完整性

为了让数据库可靠运行,每一条记录都必须易于识别且是唯一的。这通过使用被称为键(Keys)的特殊字段来实现。

3.1. 主键(Primary Key, PK)

主键(Primary Key)是一个字段(或多个字段的组合),用于唯一标识表中的每一条记录。它是数据完整性中最重要的概念!

主键的规则:

  1. 必须唯一:没有两条记录可以拥有相同的主键值。(例如,没有两个学生可以拥有相同的学号)。
  2. 不能为空:它必须始终有值(不能是空的/Null)。
类比:你的指纹或护照号码

无论世界上有多少人和你同名,只有你拥有特定的护照号码。主键就是表的“护照号码”——它保证了唯一性。

3.2. 外键(Foreign Key, FK)

外键(Foreign Key)是一个表中的字段,它引用(匹配)另一个表的主键。它是连接两个表的纽带。

外键至关重要,因为它们让我们能够在不重复大量数据的情况下建立关系。

如何识别外键:

如果你在表A中看到一个字段,其命名源自表B的主键,那么它很可能就是外键。

  • 示例:“客户(Customers)”表有一个主键叫 Customer_ID
  • “订单(Orders)”表需要知道是哪个客户下了哪个订单。因此,“订单”表中包含了一个名为 Customer_ID 的字段。
  • 在“订单”表中,Customer_ID 就是外键(Foreign Key)

这使我们能够将订单关联回客户的全名和地址,而无需在每一笔订单记录中重复存储这些详细信息!

🧠 记忆辅助:P 与 F

P 代表 Permanent(永久的)/ Primary(主):它是其所属表中的唯一标识符。

F 代表 Foreign(外来的):它是来自另一个表的“访客”(即另一个表的主键),用于进行连接。


4. 表与表之间的关系(链接)

关系型数据库的强大之处在于通过主键和外键建立的关系。

4.1. 避免冗余

如果你有一张存储所有销售数据的大表,当某个客户更改地址时,你可能需要更新数百条记录。通过将数据拆分为“客户表”和“订单表”,你只需要在“客户表”中更新一次地址即可。这就是关系如何减少数据冗余(数据重复)的方法。

4.2. 理解一对多关系(1:M)

你需要理解的最常见、最重要的关系是一对多(One-to-Many, 1:M)

这意味着第一个表(“一”的一侧,持有主键)中的一条记录,可以链接到第二个表(“多”的一侧,持有外键)中的多条记录。

分步示例(1:M)
  1. 表 1:教师(Teachers)(“一”的一侧)
    • 字段:Teacher_ID(主键),姓名,部门。
  2. 表 2:班级(Classes)(“多”的一侧)
    • 字段:Class_ID(主键),班级名称,教室编号,Teacher_ID(外键)

连接方式:

  • 一位老师(来自表1)可以教许多不同的班级(在表2中)。
  • 我们将表1的 Teacher_ID(主键)放入表2作为外键(外键),从而将它们链接起来。

这种设置正确地模拟了现实世界,避免了在老师所教的每一个班级的记录中,都要反复输入老师的全名和部门名称!

✅ 本章总结:必须记住的核心概念

  • 关系型数据库将数据存储在相互链接的中。
  • 记录(Record)是行;字段(Field)是列。
  • 主键(PK)在所属表中唯一标识一条记录。
  • 外键(FK)是来自另一个表的主键,用于建立关系
  • 关系的主要目标是减少数据冗余

恭喜!你已经成功掌握了数据库的理论基础!现在你已经准备好学习如何使用SQL与数据库进行沟通了!