文档介绍:本章内容
第4章关系数据库设计理论
问题的提出
规范化
数据依赖的公理系统*
小结
习题
问题的提出
这一章我们讨论关系数据库设计理论。即关于:如何使用关系模型设计关系数据库?也就是面对一个现实问题,如何选择一个比较好的关系模式的集合?其中每个关系模式又由哪些属性组成?这就是数据库逻辑设计主要关心的问题。
这一节有两方面的内容:
规范化理论概述
不合理的关系模式存在的问题
BACK
规范化理论概述
关系数据库设计理论主要包括三个方面的内容:函数依赖、范式(Normal Form)和模式设计。其中函数依赖起着核心作用,是模式分解和模式设计的基础,范式是模式分解的标准。
BACK
不合理的关系模式存在的问题
[例1] 要求设计学生-课程数据库,其关系模式SDC如下:
SDC(SNO,SN,AGE,DEPT,O,SCORE)
其中:SNO 表示学生学号
SN 表示学生姓名
AGE 表示学生年龄
DEPT 表示学生所在的系别
MN 表示系主任名
CNO 表示课程号
SCORE 表示成绩。
SNO
SN
AGE
DEPT
MN
CNO
SCORE
S1
赵红
20
计算机
张文斌
C1
90
S1
赵红
20
计算机
张文斌
C2
85
S2
王小明
17
外语
刘伟华
C5
57
S2
王小明
17
外语
刘伟华
C6
80
S2
王小明
17
外语
刘伟华
C7
S2
王小明
17
外语
刘伟华
C4
70
S3
吴小林
19
信息
刘伟华
C1
75
S3
吴小林
19
信息
刘伟华
C2
70
S3
吴小林
19
信息
刘伟华
C4
85
S4
张涛
22
自动化
钟志强
C1
93
关系SDC
在进行数据库的操作时,会出现以下几方面的问题。
(1) 数据冗余。
系名, 学生姓名、年龄等等都要重复存储多次
(2) 插入异常。
(O)是主键。缺少一个都无法插入数据另外,若学
生未选课,同样也不能进行插入操作。
(3) 删除异常。
删去学生数据,导致课程及教师信息丢失。如果某个学生不
再选修某课程,有关该学生的其他信息也随之丢失。
(4) 修改异常。
如果某学生改名,则该学生的所有记录都要逐一修改SN的值;稍有不慎,就有可能漏改某些记录。
我们把关系模式SDC分解为:
学生关系 S (SNO,SNO,AGE,DEPT)
系关系 D (DEPT,MN)
选课关系 SC(O,SCORE)
S
SNO
SN
AGE
DEPT
S1
赵红
20
计算机
S2
王小明
17
外语
S3
吴小林
19
信息
S4
张涛
22
自动化
D
DEPT
MN
计算机
张文斌
外语
刘伟华
信息
刘伟华
自动化
钟志强
关系SDC经分解后的三关系S、D与SC
SC
SNO
CNO
SCORE
S1
C1
90
S1
C2
85
S2
C5
57
S2
C6
80
S2
C7
S2
C4
70
S3
C1
75
S3
C2
70
S3
C4
85
S4
C1
93