第4章 关系数据库设计理论
数据库原理与应用--第4章 关系数据库设计理论 第12页
如何构造一个好的关系模式?
• 消除关系模式中的数据冗余,更新异常,插入异常和删
除异常
如何改造关系模式? • 如何把一个不好的关系模式分解改造为一个好的关系模 式,应分析一个关系模式有哪些数据依赖,消除那些不 合适的数据依赖,这就是关系数据库设计过程中要讨论 的规范化理论问题。
说明:扩张性实现了两函数依赖决定因素与被决定因素的分别合并后
扔保持决定关系。
数据库原理与应用--第4章 关系数据库设计理论
第21页
2、函数依赖的基本性质
(3) 合并性
若X→Y且X→Z则必有X→(Y,Z)。例如,在关系SDC中,SNO→(SN, AGE),SNO→DEPT,则有SNO →(SN,AGE,DEPT)。 说明:决定因素相同的两函数依赖,他们的被决定因素合并后,函数依 赖关系依然保持。
SDC(SNO,SN,AGE,DEPT,MN,CNO,SCORE)
现实世界已知事实的语义:
• 一个系有若干学生,一个学生只属于一个系; • 一个系只有一名系主任; • 一个学生可以选修多门课程,每门课程有多名学生选修; • 每个学生所学的每门课程都有一个成绩。
数据库原理与应用--第4章 关系数据库设计理论
数据库原理与应用--第4章 关系数据库设计理论
第9页
S
SNO S1 S2 S3 SN 赵红 王小明 吴小林 AGE 20 17 19 DEPT 计算机 外语 信息
SC
SNO S1 CNO C1 SCORE 90
S1
S2
C2
C5
85
57
S4
张涛
22
自动化
ห้องสมุดไป่ตู้S2
S2 S2
C6
C7 C4 C1 C2 C4 C1
设计者可以对现实世界做强制规定;关系模式的所有关系实
例都要满足约束条件。
数据库原理与应用--第4章 关系数据库设计理论 第19页
1、函数依赖说明
3)函数依赖关系的存在与时间无关 必须根据语义来确定属性之间的函数依赖,而不能单凭 某一时刻关系中的实际数据值来判断。 4)函数依赖可以保证关系分解的无损连接性 设R(X,Y,Z),X、Y、Z为不相交的属性集合,如果 X→Y或X→Z则有R(X,Y,Z)=R[X,Y]∞R[X,Z],其中R[X ,Y]表示关系R在属性(X,Y)上的投影,即R等于两个分别 含决定因素X的投影关系(分别是R[X,Y]与R[X,Z])在X上 的自然连接,这样便保证了关系R分解后不会丢失原有的信 息,称作关系分解的无损连接性。
(4) 分解性
若X→(Y,Z),则X→Y且X→Z。很显然,分解性为合并性的逆过程。
说明:决定因素能决定全部,当然也能决定全部中的一部分。
由合并性和分解性,很容易得到以下事实: X→A1,A2,…,An成立的充分必要条件是X→Ai(i=1,2,…,n)成立。
数据库原理与应用--第4章 关系数据库设计理论
张文斌 张文斌 刘伟华 刘伟华 刘伟华 刘伟华 刘伟华 刘伟华 刘伟华 钟志强
CNO SCORE
C1 C2 C5 C6 C7 C4 C1 C2 C4 C1 70 75 70 85 93 90 85 57 80
存在的问题
在进行数据库的操作时,会出现以下几方面的问题。 数据冗余
• 如果一个系有多名学生或该学生选修了多门课程,则系名称和系主 任姓名就要存储多次,学生的姓名、年龄等信息也要存储多次;
第7页
操作异常 • 插入异常:如果一个系刚成立,无学生,或者虽然有学 生但尚未安排课程,那么就无法把这个系及其负责人的 信息加入数据库。
--应该插入而未被插入
• 删除异常:如果某个系的学生全部毕业了, 我们在删除
该系学生信息的同时,把这个系及其系主任的信息也丢
掉了。 --不该删除的数据被删掉
数据库原理与应用--第4章 关系数据库设计理论 第8页
结论:
• SDC关系模式不是一个好的关系模式。 • “好”的关系模式:不会发生插入异常、删除异常、更 新异常,数据冗余应尽可能少。 如果将关系模式SDC划分为三个关系模式S(Sno, SN,AGE, DEPT)、SC(Sno,Cno,Score )和D(dept, MN ),可基本解决
以上问题,但分解后是否是最佳的模式,也不是绝对的。
数据库原理与应用--第4章 关系数据库设计理论 第20页
2、函数依赖的基本性质
(1) 投影性
根据平凡的函数依赖的定义可知,一组属性函数决定它的所有子集。
例如,在关系SDC中,(SNO,CNO)→SNO和(SNO,CNO)→CNO。
说明:投影性产生的是平凡的函数依赖。
(2) 扩张性
若X→Y且W→Z,则(X,W)→(Y,Z)。例如,SNO→(SN,AGE), DEPT→MN,则有(SNO,DEPT)→(SN,AGE,MN)。
第23页
1)平凡函数依赖与非平凡函数依赖
在关系模式R(U)中,对于U的子集X和Y: 如果X→Y,但Y X,则称X→Y是平凡的函数依赖;
如果X→Y,但Y X, 则称X→Y是非平凡的函数依赖;
若X→Y,则X称为这个函数依赖的决定属性组,也称为决定因素。
注:对于任一关系模式,平凡函数依赖都是必然成立的,它不 反映新的语义,若不特别声明,我们总是讨论非平凡的函数依赖。
数据库原理与应用
第4章 关系数据库设计理论
本章主要内容
4.1 问题的提出
4.2 关系模式的规范化(重点)
4.3 数据依赖的公理系统*
4.4 关系分解保持性*
4.5 小结
数据库原理与应用--第4章 关系数据库设计理论
第2页
4.1 问题的提出
设计任何一个数据库应用系统,现实世界→E-R模型→关系 模型,都会遇到如何构造合适的数据模式,即逻辑结构的问 题; 对于初步的关系模式,可能存在这样或那样的问题(如插入 异常、删除异常等),需要利用关系数据库设计理论进行规 范化,以逐步消除存在的问题,从而得到一定规范程度的关 系模式,这就是本章的主要内容; 本章将阐述关系数据库中最深的一些特性——函数依赖、多 值依赖和连接依赖,以及由此引出的诸多异常,如插入异常 、更新异常、删除异常及数据冗余等,对于出现的问题,通 过理论引入,对关系模式的规范化进行系统阐述。
数据库原理与应用--第4章 关系数据库设计理论
第17页
以关系模式SDC为例 系与系主任是1:1,故有dept→mn和mn→dept; 系与学生是1:n,故有sno → dept 学生与课程是m:n,故sno和cno之间不存在函数依赖 由于函数依赖与属性之间的联系类型有关,所以在确定属 性间的函数依赖时,可以从分析属性间的联系入手,便可确定
但是SCORE可以被(SNO,CNO)唯一地确定。所以可 表示为:(SNO,CNO)→SCORE。
数据库原理与应用--第4章 关系数据库设计理论 第16页
1、函数依赖说明
1)函数依赖与属性间的联系有关
对于关系模式R ,U为属性集合,X、Y为其属性子集, 根据函数依赖定义和实体间联系的定义,可得出如下结论: 1)若X和Y是1:1的联系,则存在函数依赖X→Y 和Y→X; 2)若X和Y是1:n的联系,则存在函数依赖Y→X; 3)若X和Y是m:n的联系,则X和Y之间不存在函数依赖关系。
数据库原理与应用--第4章 关系数据库设计理论
第13页
4.2 关系模式的规范化
关系规范化理论正是用来改造关系模式,通过分解关系模式 来消除其中不合适的数据依赖,以解决插入异常、删除异常、
更新异常和数据冗余问题。
• 4.2.1 函数依赖
• 4.2.2 码
• 4.2.3 范式(1NF,2NF,3NF,BCNF,4NF)
第22页
3、函数依赖分类
函数依赖分类及其定义 • 1)平凡函数依赖(Trivial FD)和 非平凡函数依赖 (Nontrivial FD)
• 2)完全函数依赖(Full FD)和部分函数依赖(Partial FD)
• 3)传递函数依赖(Transitive FD)
数据库原理与应用--第4章 关系数据库设计理论
第5页
关 系 SDC
SNO
S1 S1 S2 S2 S2 S2 S3 S3 S3 S4
SN
赵红 赵红 王小明 王小明 王小明 王小明 吴小林 吴小林 吴小林 张涛
AGE
20 20 17 17 17 17 19 19 19 22
DEPT
计算机 计算机 外语 外语 外语 外语 信息 信息 信息 自动化
MN
数据库原理与应用--第4章 关系数据库设计理论
第14页
4.2.1 函数依赖
函数依赖定义
定义4.1 设关系模式R(U,F),U是属性全集,F是U上 的函数依赖集,X和Y是U的子集,如果对于R(U)的任意一个 可能的关系r,对于X的每一个具体值,Y都有唯一的具体的值 与之对应,则称X函数决定Y,或Y函数依赖于X,记X→Y。我们 称X为决定因素,Y为依赖因素。当Y不函数依赖于X时,记作: X→Y。当X→Y且Y→X时,则记作:X Y。 理解:所谓函数依赖是指一个或一组属性的值可以决定其它 属性的值。函数依赖正如一个函数 y = f(x) ,x的值给定 后,y的值也就唯一地确定了。
数据库原理与应用--第4章 关系数据库设计理论 第4页
4.1.2 关系模式中可能存在的异常
例1:要求设计学生-课程数据库,其中:SNO:学生学号,SN : 学生姓名,AGE:学生年龄,DEPT :学生所在的系别,MN: 系主任名,CNO :课程号,SCORE :成绩。
假设用单一的关系模式 SDC来表示,则关系模式SDC如下:
80
70 75 70 85 93
D
DEPT 计算机 外语 信息 MN 张文斌 刘伟华 刘伟华