计算机应用

导航

第02周 数据库三级模式体系结构与关系模型

第2周 | MySQL数据库 —— 数据库三级模式体系结构与关系模型

同一个数据库,教务员能查成绩、学生只能看课表——他们看到的「内容」为什么不一样?数据库底层又怎么做到「换硬盘、改存储」却不影响你写好的程序?这一周用两张图把这两个问题彻底讲清,并正式认识关系模型的术语。

一、三级模式:数据库对外有三张「脸」

数据库从「用户看到的」到「磁盘上存的」,分三个层次。记住一句总纲:一个数据库只有 1 个模式和 1 个内模式,但可以有多个外模式。

模式 别名 看什么 数量 一句话
模式 逻辑模式 / 概念模式 全体数据的全局逻辑结构 唯一 1 个 数据库的「总设计图」
外模式 子模式 / 用户模式 某个用户能看到的局部数据 可多个 总图裁出来的「用户视图」
内模式 存储模式 数据在磁盘上怎么存 唯一 1 个 最底层的「物理存储」

1.1 模式(Schema)

描述数据库中全体数据的逻辑结构和特征,是所有用户的公共数据视图。好比一栋楼的总图纸。

1.2 外模式(External Schema)

描述某个用户能看到和使用的局部逻辑结构,是模式的一个子集。不同用户权限不同,看到的外模式也不同(教务员看成绩视图,学生看选课视图)。

1.3 内模式(Internal Schema)

描述数据在数据库内部的物理存储方式(文件组织、索引、压缩等),最靠近硬件。

二、两级映像:靠它实现「数据独立性」

光有三级还不够,必须靠「两级映像」把三层连起来,才能做到改下层不影响上层。

       外模式 A(教务员视图)      外模式 B(学生视图)
            │                          │
       【外模式/模式映像】        【外模式/模式映像】
            └──────────┬───────────────┘
                   模  式(全局逻辑,唯一)
                        │
                 【模式/内模式映像】
                        │
                   内模式(物理存储,唯一)

2.1 外模式 / 模式映像 → 逻辑数据独立性

定义外模式和模式之间的对应。当模式(全局逻辑)改变时,DBA 只改这层映像、保持外模式不变,用户程序就不用改。这就是逻辑数据独立性

2.2 模式 / 内模式映像 → 物理数据独立性

定义模式和内模式之间的对应。当内模式(物理存储,比如换了硬盘、改了索引)改变时,只改这层映像、保持模式不变,应用程序照样不用改。这就是物理数据独立性

一句话记:改「全局逻辑」不影响程序 → 逻辑独立;改「物理存储」不影响程序 → 物理独立。两级映像就是这两道「缓冲层」。

三、关系模型术语:一张表用专业话说

关系模型用二维表组织数据,先把「表里每样东西」的专业名记住:

术语 指什么 例子(student 表)
关系(Relation) 一张二维表 整个 student 表
元组(Tuple) 表中的一行(一条记录) 20260101 / 张三 / 17 / 25计应1班 这一行
属性(Attribute) 表中的一列(一个字段) sname
域(Domain) 属性的取值范围(同一类型值的集合) sage 取整数集合;sclass 取「XX班」集合
候选码(Candidate Key) 能唯一标识一行的最小属性集 sid
主码(Primary Key) 从候选码中选一个当「身份证」 sid
外码(Foreign Key) 本表中引用另一张表主码的属性 选课表 sc.sid 参照 student.sid

四、关系完整性:三道「红线」

数据不能乱填,关系模型用三条完整性规则兜底:

  • 实体完整性:主码不能为空且不能重复。(每行都得有唯一身份)
  • 参照完整性:外码要么为空,要么必须等于被参照表里某个主码值。(sc.sid 必须能在 student 里找到,不能凭空出现)
  • 用户定义完整性:针对具体业务的约束,如「成绩 0–100」「性别只能男/女」。

五、关系的基本性质:它和 Excel 表不一样

关系(二维表)有五条硬规矩,违反任何一条就不是「合格的关系」:

  1. 列同质:同一列的数据必须出自同一个域(同一类型)。
  2. 列名不同:不同列可以出自同一个域,但属性名必须不同。
  3. 行列顺序无关:行、列换个先后,表示的还是同一批数据。
  4. 行不重复:任意两行不能完全相同(由主码保证唯一)。
  5. 分量原子性:单元格(分量)不可再分——一个格子只能放一个值。这就叫第一范式(1NF)

六、动手画:三级模式两级映像结构图(操作教程)

跟着画一遍,抽象就变具体:

  1. 在纸/白板上画三层横条:外模式(上)/ 模式(中)/ 内模式(下)
  2. 在外模式层画两个小人:①教务员(能看到成绩)②学生(只能看课表)。
  3. 画两条映像线:外模式↔模式 标「外模式/模式映像」,模式↔内模式 标「模式/内模式映像」。
  4. 在右侧标注:上层映像失效会怎样?把「模式」改名叫 student_v2——只要映像跟着改,教务员和学生的程序一行都不用动(逻辑独立性)。
  5. 底层标注:把数据库从机械硬盘迁到 SSD、重排存储——只要映像跟着改,上面两层完全无感(物理独立性)。

![三级模式两级映像结构图(可替换为手绘照片)]

七、动手标:把 student 表映射成关系术语(操作教程)

下面这张表,逐项标出本周术语:

sid sname sage sclass
20260101 张三 17 25计算机应用1班
20260102 李四 18 25计算机应用1班
  • 关系=整张 student 表;元组=任意一行;属性sid/sname/sage/sclass 任一列。
  • sage 取自整数集合,sclass 取自「XX班」字符串集合。
  • 主码sid(唯一标识每个学生)。
  • 再加一张选课表 sc(sid, cid, score),其中 sc.sid 是外码,它参照 student.sid——这就把两张表连起来了(参照完整性要求 sc 里的 sid 必须在 student 中存在)。

八、动手挑错:下面哪些是「不合格的关系」(操作教程)

判断并改:

  • 表 A:| 学号 | 姓名 | 家庭地址 |,家庭地址里写「广东,惠州」。 → 错:家庭地址 一个格子放了「省+市」两个值,违反分量原子性(1NF)。应拆成 省份城市 两列。
  • 表 B:没有设主码,允许插入两条完全相同的行。 → 错:违反「行不重复」(性质④),也破坏实体完整性。应设主码(如学号)。
  • 表 C:两列都叫 name。 → 错:违反「列名不同」(性质②)。

九、常见易混点

现象(易错) 正确说法
以为一个数据库有多个「模式」 模式全局唯一;可以有多个的是「外模式」
分不清外模式/内模式 外模式=用户看到的局部逻辑(上层);内模式=物理存储(底层)
把「逻辑独立性」和「物理独立性」搞反 改全局逻辑不影响程序→逻辑独立;改物理存储不影响程序→物理独立
认为外码也是本表的主码 外码是「引用别表主码」的属性,本身不一定是主码
觉得 Excel 表天然就是关系 Excel 单元格能塞多个值、能重名、能重复行,不一定满足 1NF 五条性质

十、小测验(不翻书试试)

  1. 画出三级模式(外模式/模式/内模式),并说明两级映像如何实现逻辑独立性与物理独立性。
  2. 关系模型中「关系、元组、属性、主码、外码、域」分别指什么?结合 student 表举例。
  3. 关系(二维表)区别于普通表格,至少列出 4 条基本性质。

参考教材:《数据库技术基础(MySQL版)》王立力 / 上海交通大学出版社(模块 1)。文中 ![...] 为配图占位,发布时换成手绘或课件截图即可。


【声明】本文由 AI 辅助生成,仅供 MySQL 数据库教学参考,如有疑误以教材为准。

posted on 2026-08-29 10:26  eagle福  阅读(24)  评论(0)    收藏  举报