第5章 关系模式的规范化设计
数据库技术及应用课程第5章教案

思考与创新
(1)结合大作业的逻辑设计部分,判断自己设计的关系模式是否满足规范化理论要求。
(2)如果不满足,要求设计出规范化理论要求的关系模式。
课后习题
讨论:选出两个数据库设计大作业(优劣对比),并分别对其关系模式设计部分进行模式求精。
教学小结
(1)一个“好”的关系模式应该是:
数据冗余应尽可能少。
不发生插入异常、删除异常、更新异常等问题。
模式分解时,分解后的模式应具有无损连接和保持依赖等特性。
(2)函数依赖是关系模式中属性之间存在的一种约束关系。
思考与创新
(1)结合大作业的逻辑设计部分,判断自己设计的关系模式是否存在大量数据冗余问题和分解不正确而带来的有损连接或不保持依赖关系的问题。
使学生会”用”数据库,具有较强的数据库设计、数据库系统管理和应用开发能力,能够灵活运用数据库技术解决实际应用问题,并能够成为数据库设计员。
教学内容
(1)规范化理论:1NF、2NF、BNCF范式、3NF基本概念。
(2)模式分解算法:BCNF分解算法和3NF分解算法。
(3)数据库模式求精:运用关系理论对已有关系模式进行结构调整、分解、合并和优化,以满足应用系统的功能及性能等需求。基于函数依赖理论的模式求精步骤为:①确定函数依赖;②确定模式所属范式;③分析是否满足应用需求;④模式分解;⑤模式合并。
第1讲问题及函数依赖理论
任课教师
刘爱红
单位
信息学院
上课地点
2501
教学目的
(1)掌握判断并设计一个好的关系模式的基本原则和方法。
(2)熟练掌握函数依赖理论。
数据库原理及应用第5章

五
表(a)
表(b)
章
关
系 数
A
B
C
D
A
B
C
D
据
• A →AB1在表(a)关B系1 上成立,C但1 A →B在D表1(b)关系上不A成1 立。 B1
C1
D1
库
的
A1
B1
C2
D2
A1
B2
C2
D2
规
A2
B2
C3
D3
A2
B2
C3
D3
范
化
A3
B2
C4
D4
D4
A3
B1
C4
理
论
14
函数依赖(续)
第
五
章
• 定义5.2
规
F
范
化
理
论
P
传递
17
函数依赖(续)
第
例: 在关系SC(Sno, Cno, Grade)中,
五
由于: Sno Grade, Cno Grade,
章
因此: (Sno, Cno) Grade
但:
F
关
(Sno, Cno) Sno, (Sno, Cno) Cno
系
数
例: 在关系Std(Sno, Sdept, Mname)中, 有:
五
章 • 练习:已知R(ABCD),F={B→C,D →A,BD →ABCD},求R的候选码。
B ABCD, D ABCD, BD ABCD
关
所以,R的候选码为BD
系 数 据 库
• 例: 全码
F
考虑关系模式R(P,W,A)
– 其中: P—演奏者, W—作品, A—听众
第5章-关系数据库规范化理论-复习题

对于某个床位在某个时间是由特定的住客入住的: (客 ,床 房 ,位 住 号 号 宿 ( 日 住 期 ,客 预 ) ,身 付 退份 款 房证 日
根据上述函数依赖,可以求得关系模式的候选键为: (客房号,床位号,住宿日期)
2021/5/23
7
关系模式收费中: 主属性:客房号,床位号,住宿日期 非主属性:住客身份证号,住客姓名,性别,地址,收费标准, 退房日期,预付款。 根据关系模式存在的函数依赖有非主属性收费标准为候选键部分 依赖关系,所以关系模式最高直达到第一范式。如何将关系模式 进行分解使其达到第二范式。 收费标准(客房号,床位号,收费标准) 住宿(客房号,床位号,住宿日期,住客身份证,住客姓名, 性别,地址,退房日期)
解:关系R存在的函数依赖有
(商店编号,商) 品 编 部号 门编号
(商店编号,部) 门 编 负号 责人
(商店编号,商) 品 编 数号 量
2021/5/23
4
利用函数依赖求候选键: L类属性:商店编号,商品编号;LR类:部门编号;R类:负责人 数量。而且(商店编号,商品编号)+=U,所以关系模式R的候 选键为(商店编号,商品编号)。 判断R属于第几范式: 非主属性为:部门编号,负责人,数量。它们对候选键都是完全函 数依赖关系,所以R是满足第二范式的。但是,
2021/5/23
3
3、假设某商业集团数据库有一关系模式R如下: R(商店编号,商品编号,数量,部门编号,负责人)
现规定:1、每个商店的每种商品只在一个部门销售。 2、每个商店的每个部门只有一个负责人。 3、每个商店的每种商品只有一个库存数量。
回答下列问题:1、写出R的基本函数依赖 2、找出关系模式R的候选键 3、关系模式R最高达到第几范式?为什么
大学计算机教程第六版 第5章数据库技术应用

3.连接运算(Join简记为JN)
连接是从关系R与S的笛卡尔积中,选取R的第i 个属性值和S的第j个属性值之间满足一定条件表达 式,构成关系子集。
关系R与T作θ连接。如表5.13和表5.14所示。
5.6.1 数据库设计理论的应用 数据库数据相关性称为数据依赖。数据依赖主
要分为内在关系的函数依赖(简记FD)和多值依赖 (简记MVD)。
把关系看成一个集合,集合运算如并、交、差、 笛卡尔积等运算,均可用到关系运算中。
设有三个关系实例R、S和T,如表5.6所示。
关系R和S的并是由属于R或S或同时属于R和S的 元组组成的集合,记为R∪S,如表5.7所示。
2. 差运算(Difference)
关系R和S的差是由属于R而不属于S的所有元组 组成的集合,记为R-S,如表5.8所示。
3. 交运算(Intersection)
关系R和S交是由同时属于R和S的元组组成的集 合,记为R∩S,如表5.9所示。
4. 笛卡尔积
关系R和S的笛卡尔积R×S的结果如表5.10所 示。
1.选择运算(Selection 简记为SL)
选择条件用F表示,在关系R中挑选满足条件F的 所有元组,组成一个新的关系,这个关系是关系R 的一个子集,记为:
设D1,D2,…Dn为n个集合,称D1×D2×…×Dn={(d1, d2, …dn)∈Di,(i=1,2, …n)}为集合D1,D2,…Dn 的笛卡尔积。
其中,Di(i=1,2,…n)可能有相同的,称它们为域, 域是值的集合。
笛卡尔积可表示为一个二维表。如果给出三个域:
D1={王欣,刘伟平} D2={张德君,李波} D3={网络技术应用,数据库原理} 则D1,D2,D3的笛卡尔积为D1×D2×D3={ (王欣,张德君,网络技术应用),(王欣,张德君,数据库原理), (王欣,李波,网络技术应用),(王欣,李波,数据库原理),(刘 伟平,张德君,网络技术应用),(刘伟平,张德君,数据库原理), (刘伟平,李波,网络技术应用),(刘伟平,李波,数据库原理)}
第5章 关系数据理论.ppt

一、数据依赖
1、属性间的联系:也是1:1,1:n,m:n三种
1:1联系:设A、B为某实体集中的两个属性的值集,如
如:车间--主任
果对于A中的任一值,B中至多有一个值与之 对应,且反之亦然。
1:n联系:设A、B为某实体集中的两个属性的值集,如
果对于A中的任一值,B中有多个值(包括0个)
与之对应;而对于B中的任一值,A中至多有
该关系的主键为? 工号 日期 该关系模式存在以下四个严重问题:
(1)数据冗余大 对同一个人来说,其姓名、工种、车间、车间主任等多次重复
…… ……
1001,05年08月,张三,车工,180,20%,金工车间,李四
1001,05年09月,张三,车工,180,15%,金工车间,李四
1001,05年10月,张三,车工,180,18%,金工车间,李四
本节首先用一个例子来说明对关系模式为什么要规范化,
不经过规范化会产生什么样的结果。
2020/2/8
数据库系统
3
第五章 关系数据理论
例:假设车间考核职工完成生产定额的关系模式如下: W(工号,日期,姓名,工种,定额,超额,车间,车间主任)
比如设某工号某年月超额完成定额的20%,其记录的内容为: (1001,05年11月,张三,车工,180,20%,金工车间,李四)
这就是数据库逻辑设计问题
网状、层次模型的数据库设计,主要凭设计者的经验直观 地选择和确定实体集、属性以及实体间的联系。哪些实体应该 合并或分解以及如何合并和分解、每个实体中应该包括哪些属 性为宜、属性间的联系如何确定和处理等一系列问题的解决是 没有什么固定规则和理论可循的。
2020/2/8
数据库系统
R <U,D,dom,F>
关系数据库设计理论

五、FD的推理规则
从已知的FD集推导未知的FD,可以使用的推导规则 (Armstrong) 设有关系模式R(U),X、Y、Z是U的子集: A1(自反性):如果 Y X ,则有 XY 在R上成立。 A2(增广性):如果 XY 在R上成立,那么有 XZYZ A3(传递性):如果 XY和 YZ在R上成立,则有 XZ
S# -> SNAME C# -> TNAME (S#,C#) ->GRADE
三、属性间的联系和函数依赖 属性间的联系有三种,但并不是每一种关系中都存在函数 依赖,设有属性集X、Y属于关系模式R,
如果X和Y之间是‘1-1’关系,则存在函数依赖:
X YY, X
如果X和Y之间是‘1-M’关系,则存在函数依赖:
第五章 关系数据库设计理论
5.1 问题的提出-什么是不好的数据库设计
实际问题,假定在设计数据库时出现如下的关系模式: Student(Sno, Sname, Dept,Cno, Grade) 学生(学号,姓名,院系,课程号,成绩)
Sno Sname Dept Cno Grade
1000 李平 计算机 001
FD的分类: 1、对于FD:XY ,如果 Y X ,则称为“平凡的FD” 2、对于FD:XY ,如果 YX ,则称为“非平凡的FD” 3、对于FD:XY ,如果 YXφ则为“完全非平凡的FD”
Armstrong的推论: 1、合并规则: 由 XYX,Z可以 得 YZ 到X 2、分解规则: 由 XYZ可以 得 YX, 到 ZX 3、伪传递规则:由 XYY,WZ则得 到 Z XW
86
1000 李平 计算机 002
97
1000 李平 计算机 003
83
1001 王莉 计算机 001
关系数据库规范化理论(05)

5.3 函数依赖
关系模式S(S# , SN , SD , DEAN , C# , G)
根据一般的事实,有: 一个系有若干学生,而一个学生只属于一个系;
一个系只有一名系主任;一个学生可以选修多门课 程,每门课程也可以由多个学生选修;每个学生的 每门课程都只有一个成绩。据此语义,可以得到一 组FD F
9
5.2 数据依赖
G
SNO
DN
CN
DM
关系的规范化理论就是用于改造关系模式,通过 分解关系模式来消除其中不合适的数据依赖,以 解决插入异常、删除异常、更新异常和数据冗余 问题。
10
5.3 函数依赖
函数依赖
设R(U)是属性集U上的关系模式,X , Y U, r是 R(U) 上的任意一个关系,如果成立
对t , s r,若t[X] = s[X],则t[Y] = s[Y] 那么称“X函数决定Y”,或“Y函数依赖于X”,记 作XY 称X为决定因素
如S# SN, (S#,C#) G
不存在t , s r,t[X] = s[X],但t[Y] ≠ s[Y]
11
5.3 函数依赖
A
B
C
D
a1
b1
c1
d1
a1
快速热身
关系模式R(A,B,C,D),码为AB,给出它的一个函数 依赖集,使得R属于2NF而不属于3NF
33
5.4 .4 BC范式(BCNF)
STC(S# , T# , C#)
每位老师只教授一门课
T# C#
某学生选定一门课,就对应一位老师
(S#,C#) T#
候选码
(S#,T#),(S#,C#)
28
5.4 .3 3NF
S# SN SD DEAN S01 杨明 D01 思齐 S02 李婉 D01 思齐 S03 刘海 D02 述圣 S04 安然 D02 述圣 S05 乐天 D03 省身
数据库第五章习题及答案

第五章 关系数据理论一、 单项选择题1、设计性能较优的关系模式称为规范化,规范化主要的理论依据是 ( )A 、关系规范化理论B 、关系运算理论C 、关系代数理论D 、数理逻辑2、关系数据库规范化是为解决关系数据库中( )问题而引入的。
A 、插入、删除和数据冗余B 、提高查询速度C 、减少数据操作的复杂性D 、保证数据的安全性和完整性3、当关系模式R (A ,B )已属于3NF ,下列说法中( )是正确的。
A 、它一定消除了插入和删除异常B 、一定属于BCNFC 、仍存在一定的插入和删除异常D 、A 和C 都是4、在关系DB 中,任何二元关系模式的最高范式必定是( )A 、1NFB 、2NFC 、3NFD 、BCNF5、当B 属性函数依赖于A 属性时,属性A 与B 的联系是( )A 、1对多B 、多对1C 、多对多D 、以上都不是6、在关系模式中,如果属性A 和B 存在1对1的联系,则说( )A 、A B B 、B A C 、A B D 、以上都不是7、关系模式中,满足2NF 的模式,( )A 、可能是1NFB 、必定是1NFC 、必定是3NFD 、必定是BCNF8、关系模式R 中的属性全部是主属性,则R 的最高范式必定是( )A 、2NFB 、3NFC 、BCNFD 、4NF9、关系模式的候选关键字可以有( c ),主关键字有( 1个 )A 、0个B 、1个C 、1个或多个D 、多个10、如果关系模式R 是BCNF 范式,那么下列说法不正确的是( )。
A 、R 必是3NFB 、R 必是1NFC 、R 必是2NFD 、R 必是4NF11、图4.5中给定关系R ( )。
A 、不是3NFB 、是3NF 但不是2NFC 、是3NF 但不是BCNFD 、是BCNF12、设有如图4.6所示的关系R ,它是( )A 、1NFB 、2NFC 、3NFD 、4NF二、 填空题1、如果模式是BCNF ,则模式R 必定是(3NF ),反之,则( 不一定 )成立。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
定义5.2 在R(U)中,如果X→Y,并且对于X的 任何一个真子集X',都有 , 则称Y对X完全函数依赖,记作 若X→Y,但Y不完全函数依赖于X,则称Y对X 部分函数依赖,记作 .
13
例题
[例] 在成绩表SC(Sno,Cno,Credit,Grade)中,Sno 是学号,Cno是课程号,Credit是学分,Grade是 成绩.
7
5.2.2 函数依赖
函数依赖(function dependency)是最基本的一种数 据依赖,也是设计关系模式时应着重考虑的因素. -平凡函数依赖与非平凡函数依赖 -完全函数依赖与部分函数依赖 -传递函数依赖 1.函数依赖 定义5.1 设R(U)是属性集U上的一个关系模式.X和Y是 U的子集.若对于R(U)中任意一个可能关系r,r中不存在 有两个元组,它们在X上的属性值相等,而在Y上的属性 值不等,则称"X函数决定Y",或称"Y函数依赖于X". 8 记作X→Y.
表1 不规范的关系 籍贯 姓名 省 王洪 李利 黑龙江 吉林 市/县 齐齐哈尔 长春 李利 吉林 长春
21
表2 规范后的关系 小表 姓名 王洪 省 黑龙江 市/县 齐齐哈尔
不允许 表 中 有 表
5.3.2 第二范式
[例5-6] 关系模式S-L-C(Sno, Sdept, Sloc, Cno, G) 其中,Sno为学生的学号,Sdept为学生的系别, Sloc为学生住处,假设每个系的学生住在同一个 地方,Cno为课程号,G为学生的成绩. 本例中的函数依赖包括:
函数依赖
Y=f(X) Y=sin(X)
函数
Y=X+1 Y=X2+2X+1
X是自变量,自变量确定了,Y的值也就确定了 是自变量,自变量确定了,
省=f(城市) 城市=f (省)
系名=f(学号) 学号=f(系名)
√
9
一个关系模式由五部分组成,即它是一个五元组: 描述为:R( U, D, dom, F ). 其中: (1)R是关系名; (2)U是一组属性,即组成R的全部属性的集合; (3)D为域的集合,即属性取值范围的集合; (4)dom为U与D之间的映象; (5)F是属性组U上的一组函数依赖. 说明:由于域的定义对关系模式设计关系不大,(3) 和(4)往往可以忽略.
部分函数依赖 (学号,课程号) →课程名 部分函数依赖 (学号,课程号) →学分 (学号,课程号) →成绩 完全函数依赖
14
定义5.3 在R(U)中,如果X→Y,Y→Z,且Y不是 X的子 集,Z不是Y的子集(非平凡的函数依赖), 则称Z对X传递函数依赖. 记为: 说明: 如果Y→X, 即X←→Y,则Z直接依赖于X. [例] : 在关系Std(Sno, Sdept, Mname)中,Sno是学号, Sdept是系名,Mname是系主任名,有: Sno → Sdept,Sdept → Mname Mname传递函数依赖于Sno
2
5.1 问题提出
前面的章节已经介绍了数据库当中涉及到 的基本概念,关系模型的三个部分(关系数据 结构,关系操作集合和关系完整性)以及关系 数据库的标准语言. 但是有一个很基本的问题没有提及,就是 针对一个具体的问题,应该构造几个关系模式, 每个关系由哪些属性组成,各属性之间的依赖 关系及其对关系模式性能的影响等. 这就是关系数据库逻辑设计的问题.本章 主要来讨论实体内部属性与属性之间的数据关 3 联,目标就是要设计一个"好"的数据库.
数据依赖的类型
函数依赖(Functional Dependency,简记 为FD) 多值依赖(Multivalued Dependency,简记 为MVD) 其他
6
数据依赖对关系模式的影响
"好"的模式:
不会发生插入异常,删除异常,更新异常, 数据冗余应尽可能少
"不好"原因:由存在于模式中的某些 数据依赖引起的 解决方法:通过分解关系模式来消除其 中不合适的数据依赖
S-L-C不是一个"好"的关系模 式
(1) 插入异常 没有选课的学生记录插不进去,因为Cno是主码的一部分,主 码不能为空. (2) 删除异常 删除选课记录会将学生信息也一同删掉.即不该删除的信息也 删除掉了. (3) 数据冗余度大 系别和学生住处会重复存放.如一个学生选修了10门课程,那 么他的Sdept和Sloc的值就要重复存储10次. (4) 修改复杂 如某个学生从电子商务系转到外语系,本来只需要修改此学生 的Sdept值.但因为关系模式SLC中还含有系的住处Sloc属性, 学生转系将同时改变住处,因此还必须修改Sloc的值.如果该 学生选修了3门课,由于Sdept和Sloc的值重复存放了3次,当 数据更新时必须无遗漏的修改3个元组中全部Sdept和Sloc的值, 25 这就造成了修改的复杂化.
30
采用投影分解法将一个1NF的关系分解为 多个2NF的关系,可以在一定程度上减轻 原1NF关系中存在的插入异常,删除异常, 数据冗余度大,修改复杂等问题. 但是,将一个1NF关系分解为多个2NF的 关系,并不能完全消除关系模式中的各 种异常情况和数据冗余.
31
5.3.3 第三范式
定义5.9 若R∈2NF,且每一个非主属性 都不传递函数依赖于键,则R∈3NF. 说明:
17
5.3 规范化的关系模式
范式是符合某一种级别的关系模式的集合. 关系数据库中的关系必须满足一定的要求.满足不同程度要 求的为不同范式. 范式的种类: 第一范式(1NF),第二范式(2NF),第三范式(3NF) BC范式(BCNF),第四范式(4NF),第五范式(5NF)
18
各种范式之间的关系
10
术语和符号
如果X→Y,但Y不是X的子集,则称X→Y是非 平凡的函数依赖. 如果X→Y ,但Y是X的子集,则称X→Y为平凡 的函数依赖. 说明:平凡函数依赖对于任一关系模式都是必 : 然成立的.因此, 然成立的.因此,一般讨论的都是非平凡的函 数依赖. 数依赖. 例:在关系选修(学号, 课程号, 成绩)中,
"不好"原因 分析该例,可见有2种非主属性,一是G, 它对码(Sno,Cno)是完全函数依赖.另一种 是Sdept和Sloc,它们都是部分函数依赖于码 (Sno,Cno) . 解决方法 用投影分解把S-L-C分解为两个关系模式, 以消除这些部分函数依赖 SC(Sno,Cno,G) S-L(Sno,Sdept,Sloc)
26
"分解"以后的函数依赖图:
关系模式SC的码为(Sno,Cno) 关系模式S-L的码为Sno 这样非主属性对码都是完全函数依赖
27
5.3.2 第二范式
定义5.8 若R∈1NF,且每一个非主属性完全函数依 赖于键,则R∈2NF. S-L-C(Sno, Sdept, Sloc, Cno, G) SC(Sno,Cno,G) S-L(Sno,Sdept,Sloc)
若R∈3NF,则每一个非主属性既不部分依 赖于键也不传递依赖于键. 若R∈3NF,则若R∈2NF; 反之不成立.
32
【例5-6】2NF关系模式S-L(Sno, Sdept, Sloc) 中函数依赖: 由于 Sno→Sdept Sno Sdept Sdept→Sloc 可得: ,即S-L中存在非主属性对键的传递 函数依赖,因此
第5章 关系模式的规范化设计 章
主要内容:本章讨论关系模式的规范化设计.这章 主要内容 将从数据库逻辑设计中如何构造一个好的数据库模 式这一问题出发,阐明了关系规范化理论研究的实 际背景,介绍关系内部属性与属性之间的一种约束 关系即函数依赖的各种形式.介绍规范化理论,讨 论各种范式及可能存在的插入,删除等问题,并直 观地描述解决办法.
关系模型原理的核心内容就是规范化概念. 规范化是把数据库组织成在保持存储数据 完整性的同时最小化冗余数据的结构的过程. 规范化的数据库必须符合关系模型的范式 规则.范式可以防止在使用数据库时出现不一 致的数据,并防止数据丢失. 关系模型的范式有第一范式,第二范式, 第三范式,BCNF范式,第四范式等多种.
4
5.2 数据依赖
数据依赖是关系内部属性与属性之间的一种约 束关系.这种约束关系是通过属性间值的相等 与否体现出来的数据间的相关联系,它是现实 世界属性间相互联系的抽象,是数据内在的性 质,是语义的体现. 如教师姓名和地址之间,每一个教师都有个确 教师姓名和地址之间,每一个教师都有个确 定的地址,意味着: 教师编号确定了,地址就确定了.地址依赖 于教师编号. 5
第二范式(2NF)是在第一范式(1NF)的基础上建 立起来的,即满足第二范式(2NF)必须先满足第 一范式(1NF) . 第二范式(2NF)要求实体的非主属性完全函数依 赖于主键,不存在非主属性对主键的部分函数依赖 28
2NF总结:
所有非主属性都完全函数依赖 完全函数依赖于主键, 完全函数依赖 即:不存在部分函数依赖
33
解决方法 采用投影分解法,把S-L分解为两个 关系模式,以消除传递函数依赖: S-D(Sno, Sdept) D-L(Sdept,Sloc) 其中,S-D的键为Sno, D-L的键为Sdept. 分解后的关系模式S-D与D-L中不再存在 传递函数依赖
34
15
5.2.4 键
本节用函数依赖的概念来定义键. 定义5.5 设K为R(U,F)中的属性或属性组合,若K → U 则K为R的候选键.若候选键多于一个,则选定其中的一个为 主键(Primary key). 含在任何一个候选键中的属性,叫做主属性(Prime attribute). 不包含在任何键中的属性称为非主属性(Nonprime attribute). 最简单的情况:单个属性是键. 最极端的情况:整个属性组是键,称为全键(All-key). 16
定义5.6 关系模式R中属性或属性组X并非R的键, 但X是另一个关系模式的键,则称 X是R的外部 键(Foreign key)也称外键.