数据库原理与应用 第 12 章 · 第一节
课程 › 第 12 章 › 第一节 章首规范化SCD四个问题原因与分解 版式
第 12 章 关系模式的规范化理论 · 第一节

规范化和常见异常

规范化要解决什么问题,泛关系 SCD 中的数据冗余、插入异常、删除异常和更新异常
本 节 知 识 点
  1. 01第 12 章 关系模式的规范化理论
  2. 02规范化的内容
  3. 03泛关系 SCD
  4. 04SCD 存在的四个问题
  5. 05问题的原因与模式分解
01
第 12 章 · 第一节 · 课件第 1、2 页

第 12 章 关系模式的规范化理论

上一章看到台账要拆,这一章讲拆到什么程度算好,以及怎样拆。

课件第 1 页

知道更多本章内容

本章三部分:规范化的内容和常见异常、函数依赖、范式。

02
第 12 章 · 第一节 · 课件第 3 页

规范化的内容

以函数依赖为工具,衡量关系模式规范到了哪一级,不够就分解。

课件第 3 页

关键术语

规范化normalization
按范式衡量关系模式,达不到就分解

重 点

规范化的输入是不规范的关系,输出是一组规范的关系,衡量的标准是范式。

知道更多来历

规范化理论由关系数据库的创始人 E. F. Codd 于 1970 年提出。

03
第 12 章 · 第一节 · 课件第 4、5 页合并重做

泛关系 SCD

学生、选课、系三件事,放在了一张表中。

12.1 规范化的内容和常见异常课件第 4、5 页合并

泛关系 SCD

SCD(SNo, SN, Age, Dept, MN, CNo, Score),依次是学号、姓名、年龄、系别、系主任、课程号、成绩。主码为 (SNo, CNo)。
语义
  • 一个系有若干名学生,一名学生只属于一个系
  • 一个系只有一名系主任,一名系主任可以同时兼任几个系的系主任
  • 一名学生可以选修多门课程,一门课程可以被多名学生选修
  • 每名学生学习每门课程有一个成绩,但不一定立即给出
SCD 的 10 行数据
SNoSNAgeDeptMNCNoScore
S1赵亦17计算机刘伟C190
S1赵亦17计算机刘伟C285
S2钱尔18信息王平C470
S2钱尔18信息王平C557
S2钱尔18信息王平C680
S2钱尔18信息王平C7NULL
S3孙珊20信息王平C175
S3孙珊20信息王平C270
S3孙珊20信息王平C485
S4李思21自动化刘伟C193

重 点

主码是 (SNo, CNo),两个属性合起来才能确定一行。本章的例子都用这张表。

实 验

实验 1-1 数一数重复的数据

04
第 12 章 · 第一节 · 课件第 6、7、8、9 页合并重做

SCD 存在的四个问题

数据冗余,以及由它引起的插入异常、删除异常和更新异常。

12.1 规范化的内容和常见异常课件第 6、7、8、9 页合并

SCD 存在的四个问题

问题在 SCD 中的表现后果
数据冗余信息系和系主任王平存了 7 次,钱尔的姓名、年龄、系别存了 4 次浪费存储空间,并引出后面三个问题
插入异常新成立的系还没有学生,学号和课程号都是空值,而主码不能为空这个系和它的系主任记不进去
删除异常自动化系只有李思一名学生,删除他的记录自动化系的信息跟着消失
更新异常信息系换系主任要改 7 行,学生改名要改他的每一条选课记录漏改一行,数据就前后矛盾
  • 插入异常:现实中存在的信息,表中放不进去
  • 删除异常:删掉一部分信息时,把不该删的信息也删掉了
  • 更新异常:同一个事实存了多份,修改时漏改就不一致

试一试四个问题在 SCD 中的位置

看
SNoSNDeptMNCNoScore

练一练

某学生改名,SCD 中他的记录要改几处?
  1. A改一处就够
  2. B选了几门课就改几处
  3. C不用改
答案 B

姓名跟着每一条选课记录存了一份,选了几门课就要改几处,漏改就前后矛盾。

实 验

实验 1-2 换一次系主任

05
第 12 章 · 第一节 · 课件第 10 页

问题的原因与模式分解

SCD 把三件事放在一张表中,分解为 S、SC、D 三个关系。

课件第 10 页

重 点

一个关系模式只描述一件事,四个问题就一起消失了。

想一想

该在哪里把表分开?用什么来判断?

保山学院·人工智能教研室·曹鼎鼎