第5章 关系模式的规范化设计
第5章-关系数据库的模式设计习题解答
第5章关系数据库的模式设计
习题解答
一. 简答题
1.理解并给出下列术语的定义:
函数依赖,部分函数依赖,完全函数依赖,传递函数依赖,键码、主键码、,外键码,全码,1NF,2NF,3NF,BCNF,多值依赖,4NF。
此处从略,详见书上。
2.各举一个属于1NF,2NF,3NF,BCNF和4NF的例子,并加以说明。
此处从略,详见书上。
二.问答题
1. 设有关系模式 R(A,B,C,D,E),F={AB→C,B→D,D→E,C→B},要求:
(l)通过闭包的计算来求出 R的所有键码,并说明该模式是哪一类范式?
单属性:A+=A,B+=BDE,C+=BCDE,D+=DE,E+=E
双属性:AB+=ABCDE,AC+=ABCDE,AD+=ADE,AE+=AE,BC+=BCDE,
BD+=BDE,BE+=BDE,CD+=BCDE,CE+=BCDE,DE+=DE
三属性:ABC+=ABCDE,BCD+=BCDE,CDE+=BCDE,ADE+=ADE,ABE+=ABCDE,
ABD+=ABCDE,BCE+=BCDE,ACD+=ABCDE,BDE+=BDE,ACE+=ABCDE
四属性:ABCD+=ABCDE,BCDE+=BCDE,ACDE+=ABCDE,ABDE+=ABCDE,ABCE+=ABCDE
五属性:ABCDE+=ABCDE
R的所有键码是:AB,AC。
注:R的所有超键码是:ABC、ABE、ABD、ACD、ACE、ABCD、ACDE、ABDE、ABCE、ABCDE。
若选AB为主键码,由于D是部分函数依赖于AB,故R∈1NF。
大学计算机教程第六版 第5章数据库技术应用
第5章数据库技术应用
清华大学出版社
• 数据库系统组成与系统功能 • 数据库技术应用与发展 • 信息实体数据模型和实体联系模型的构建 • 数据实体关系关系运算与转换 • 关系数据库设计理论 • 关系模式的规范化 • 结构化查询语言SQL
关系模式的规范化问题是E.F.Codd提出的,他 还提出了范式(NF,Normal Form)的概念,各个 范式之间的关系,如图5.14所示的包含关系。
定义8,如果一个关系模式R的每一个属性的域 都只包含单一的值,则称R满足第一范式。
例如,在“客户商品”关系CP中,客户编号C#, 客户名CNMAE,客户地址AREA,主管MA,商品编号P#, 商品价格PRICE。有关系
2.信息实体的数据联系
实体间的联系是错综复杂的,但就两个实体 的联系来说,有以下三种情况:
(1)一对一的联系
如果A中的任意一个体,至多对应于B中的一 个个体,反之B中的任意一个个体,至多对应于A 中的一个个体,如图5.6所示。
(2)一对多的联系
如果A中至少有一个个体对应于B中的一个以 上个体,反之B中任一个体应于A中至多一个个体, 如图5.7所示。
3.函数依赖的逻辑蕴涵
定义2,设F是关系模式R上的一个函数依赖集合, X、Y是R的属性子集,如果从F的函数依赖推导出 X→Y,则称F逻辑地蕴涵X→Y,或称X→Y可以从F中 导出,或X→Y逻辑蕴涵于F。
5第五章第4讲关系模式的规范化
5第五章第4讲关系模式的规范化
关系模式的规范化是数据库设计中的一个重要概念,它通过一系列规则和规范化原则,使得关系模式能够更加合理、高效地组织和管理数据。规范化的目的是消除冗余和数据依赖,以避免数据异常和不一致的情况发生。本文将介绍关系模式规范化的基本概念、规则和原则,并讨论规范化的实际应用。
关系模式规范化的基本概念是:在关系数据库中,每个关系模式都应该经过规范化,以达到最佳的数据结构和数据组织方式。规范化是一个多阶段的过程,每个阶段都有特定的规则和原则。
第一范式(1NF)是最基本的规范化原则。它要求每个关系模式的属性都是原子性的,即不可再分的。这意味着属性的值不可以是集合、数组或多值的。如果一个属性的值可以被分解为更小的数据项,则需要拆分为多个属性,使得每个属性都是原子的。
第二范式(2NF)要求在满足1NF的基础上,消除非主属性对码的部分函数依赖。函数依赖指的是当一个属性的值确定之后,另一个属性的值也能确定。如果一个属性只依赖于码中的一部分属性,而不是整个码,那么它就存在部分函数依赖,需要拆分为多个关系模式,以消除这种依赖。
第三范式(3NF)要求在满足2NF的基础上,消除非主属性对互相之间的传递依赖。传递依赖指的是当一个属性的值确定之后,其他非主属性的值也能确定。如果一个非主属性依赖于另一个非主属性,而不是直接依赖于码,那么它就存在传递依赖,需要拆分为多个关系模式,以消除这种依赖。
此外,还有更高级的规范化形式,如BCNF(巴斯-科德范式)和第四
范式。BCNF要求在满足3NF的基础上,消除所有非主属性对码的冗余依赖。第四范式则要求在满足BCNF的基础上,消除多值依赖和联合依赖。
第5章 关系数据理论.ppt
微分方程
高等代数 数学分析
这是产生问题的原因吗?
…… 数据库系统
17
第五章 关系数据理论
2、多值依赖(MultiValued Dependency,缩写为MVD)
设 R(U)是属性集U上的关系模式,X、Y、Z是U的子集,
且Z=UXY,多值依赖XY成立当且仅当对R(U)的任一关
系r,任给的一对(x,z)值有一组Y的值,这组值仅仅取决于
赖关系。
3、函数依赖分类
(1)非平凡的函数依赖: XY,但Y X。
(2)平凡的函数依赖: XY,但Y X。
(3)完全函数依赖:XY,且对任意的X’ X,都有 X’ Y。记作 X f Y
如在 SC(Sno,Cno,G)中,(Sno,Cno) G, 但sno G, cno G,因此(Sno,Cno)f G。
一方面,修改工作量大; 另一方面,可能漏改或该错,会造成数据的不一致性;
上例充分说明对关系模式若随意设计,其后果是严重的。 本章将要讨论产生上述问题的原因以及解决办法,即如何改 造一个不好的关系模式。这就是规范化理论要解决的主要问题。
2020/2/8
数据库系统
6
第五章 关系数据理论
比如,对于上述关系模式,若分解成下面三个关系,则前面 提到的几个问题将全部或部分地得到解决:
如学生关系中,当学号确定后,其姓名也就唯一确定了。
教学课件第5章关系数据库的规范化设计
➢当某个学生尚未选课,只要在关系S中添加一条 学生记录,而与选课关系无关,这就避免了插入 异常。
➢当一个系的学生全部毕业时,只需在S中删除该 系的全部学生记录,而关系D中有关该系的信息 仍然保留,从而不会引起删除异常。
➢同时,由于数据冗余度的降低,数据没有重复存 储,也不会引起更新异常。
➢如何设计一个适合的关系数据库系统,关键
是关系数据库模式的设计,一个好的关系数 据库模式应该包括多少关系模式,而每一个 关系模式又应该包括哪些属性,又如何将这 些相互关联的关系模式组建一个适合的关系 模型,这些工作决定了到整个系统运行的效 率,也是系统成败的关键所在,所以必须在 关系数据库的规范化理论的指导下逐步完成
➢一个系有若干个学生,但一个学生只属于一个系; ➢一个系只有一名系主任,但一个系主任可以同时
兼几个系的系主任;
➢一个学生可以选修多门功课,每门课程可有若干
学生选修
➢每个学生学习课程有一个成绩
SNO SN AGE DEPT MN CNO SCORE
S1
赵亦
17
计算机 刘伟
C1
90
S1
赵亦
17
计算机 刘伟
(3)如果属性X与Y有m: n的联系时,则X与Y 之间不存在任何函数依赖关系。
➢ 例如,一个学生可以选修多门课程,一门课 程又可以为多个学生选修,所以SNO与CNO之间 不存在函数依赖关系。
第5章 关系数据库规范化理论-复习题
解答
学号- 姓名 出生年月,系名,班号, 姓名, 学号->姓名,出生年月,系名,班号,宿舍区 班号- 专业名 系名,人数, 专业名, 班号->专业名,系名,人数,入校年份 系号- 系名 系办公室地点, 系名, 系号->系名,系办公室地点,人数 社团名- 成立年份 地点, 成立年份, 社团名->成立年份,地点,人数 专业名- 系号 专业名->系号 专业名,入校年份- 班号 专业名,入校年份->班号
(商店编号,商品编号) (部门编号,商店编号) → (商店编号,商品编号) 负责人 →
所以非主属性负责人对候选键传递依赖,那么 不满足第三范式 不满足第三范式, 所以非主属性负责人对候选键传递依赖,那么R不满足第三范式, 因此R最高满足第二范式。 因此 最高满足第二范式。 最高满足第二范式
4、 旅馆的住宿管理问题主要是收费管理,现在对旅馆进行了 、 旅馆的住宿管理问题主要是收费管理, 咨询后得到了旅馆的关于住宿收费的这样一些数据项。 咨询后得到了旅馆的关于住宿收费的这样一些数据项。 收费(住客身份证,住客姓名,性别,地址,客房号, 收费(住客身份证,住客姓名,性别,地址,客房号, 床位号,收费标准,住宿日期,退房日期,预付款) 床位号,收费标准,住宿日期,退房日期,预付款) 现规定: 现规定: 1、旅店的住客可能存在同名情况 、 2、一个客人可以多次,不同时间到该旅馆住宿。 2、一个客人可以多次,不同时间到该旅馆住宿。 回答下列问题: 回答下列问题: 1、写出关系模式收费存在的基本函数依赖 、 2、写出关系模式R的候选键 、写出关系模式 的候选键 3、关系模式R最高达到第几范式,为什么? 、关系模式 最高达到第几范式 为什么? 最高达到第几范式,
数据库第5章 关系理论
1
教学内容
5.1 基本概念&& 5.2 函数依赖的公理系统&& 5.3 规范化理论&& 5.4 模式分解&&
2
学习目的
了解规范化理论的在数据库设计中的作用 掌握函数依赖的有关概念 掌握第一范式、第二范式、第三范式、 BCNF、第四范式的定义 重点掌握如何把一个不好的关系模式转换成 一个好的关系模式的方法
且对于K的任何一个真子 集K′,都有K′不 能决定U,则K为R的候选码,若有多个候选 码,则选择一个为主码,候选码也称候选关 键字。
24
主属性和非主属性:包含在一个候选码中的属 性叫做主属性;否则叫做 非主属性。
外码:若R(U)中的属性或属性组X不是R的
码,但X 是另一个关系的码,则称X为 外码。
30
证明Armstrong公理是正确的:
①证明自反律:
设YX U 对关系模式R的任一关系 r 中的任意
两个元组t和s,如果t[X]=s[X],由于Y X, 所 以 t[Y]=s[Y], 由 定 义 5 . 1 有 X→Y成立,自反律得证。
31
②证明增广律:
设X→Y,且ZU,r、t、s的含义同上 如果t[XZ]=s[XZ],则一定有
3
例:设有库存关系:
仓库号 WH1 WH1 WH2 WH3 WH3
5第5章关系数据库设计理论
SCLASS
SCORE
CNAME
SDEPT
3
完全函数依赖: 部分函数依赖 传递函数依赖
X FY X PY
(候选)码 特性:唯一性、最小性(不可约性)
主属性 非主属性 主码 外码
4
函数依赖与属性之间的关系
属性X、Y之间 1-1(如学院和院长) 属性X、Y之间 m-1(如学号和班级) 属性X、Y之间 m-n(如学生和课程)
17
习题6
设某商业关系模式 R(商店编号,商品编号,库存数量,部门编号,负责人)
(1)每个商店的每种商品只在一个部门销售; (2)每个商店的每个部门只有一个负责人; (3)每个商店的每种商品只有一个库存数量 试解答下列问题: (1)写出R的基本函数依赖; (2)找出R的候选码; (3)试问R最高已经达到第几范式; (4)如果R不属于3NF,请将R规范化到3NF。
ຫໍສະໝຸດ Baidu13
习题2
写出下列关系的候选码 R1(A,B,C,D), F={D->A, D->B};
R2(A,B,C,D,E,P), F={A->B, C->P, E->A, CE->D};
R3(A,B,C,D,E), F={A->D, E->D, D->B, BC->D, DC->A};
14
习题3
数据库第五章习题及答案
第五章 关系数据理论
一、 单项选择题
1、设计性能较优的关系模式称为规范化,规范化主要的理论依据是 ( )
A 、关系规范化理论
B 、关系运算理论
C 、关系代数理论
D 、数理逻辑
2、关系数据库规范化是为解决关系数据库中( )问题而引入的。
A 、插入、删除和数据冗余
B 、提高查询速度
C 、减少数据操作的复杂性
D 、保证数据的安全性和完整性
3、当关系模式R (A ,B )已属于3NF ,下列说法中( )是正确的。
A 、它一定消除了插入和删除异常
B 、一定属于BCNF
C 、仍存在一定的插入和删除异常
D 、A 和C 都是
4、在关系DB 中,任何二元关系模式的最高范式必定是( )
A 、1NF
B 、2NF
C 、3NF
D 、BCNF
5、当B 属性函数依赖于A 属性时,属性A 与B 的联系是( )
A 、1对多
B 、多对1
C 、多对多
D 、以上都不是
6、在关系模式中,如果属性A 和B 存在1对1的联系,则说( )
A 、
A B B 、B A C 、A B D 、以上都不是
7、关系模式中,满足2NF 的模式,( )
A 、可能是1NF
B 、必定是1NF
C 、必定是3NF
D 、必定是BCNF
8、关系模式R 中的属性全部是主属性,则R 的最高范式必定是( )
A 、2NF
B 、3NF
C 、BCNF
D 、4NF
9、关系模式的候选关键字可以有( c ),主关键字有( 1个 )
A 、0个
B 、1个
C 、1个或多个
D 、多个
10、如果关系模式R 是BCNF 范式,那么下列说法不正确的是( )。
A 、R 必是3NF
B 、R 必是1NF
习题集第5章关系理论
第7章 关系数据库设计理论
7.1 学习要点
关系数据库设计理论是关系数据库的又一个重点。关系数据库的逻辑设计主要是设计关系模式,而深入了解函数依赖和码的概念则是设计和分解关系模式的基础。学习本章的目的有两个。一个是理论方面的,本章用更加形式化的关系数据理论来描述和研究关系模型。另一个是实践方面的,关系数据库设计理论是我们进行数据库设计的有力工具。
1、 知道什么是函数依赖、完全函数依赖、部分函数依赖和传递函数依赖,能确定
两个或多个属性间的函数依赖,计算属性的闭集;
2、 理解关系的码和超码、主属性和非主属性;
3、理解1NF 、2NF 、3NF 和BCNF 的定义,并能辨别某关系属于哪种范式类型;
4、掌握规范化一个关系模式的原则方法,能够将某1NF 关系规范化为3NF 或BCNF ;
5、理解多值依赖和连接依赖,初步掌握分解成第四范式的方法。
7.2 习题讲解
1. 理解并给出下列名词的涵义:
函数依赖、部分函数依赖、传递函数依赖、超码、多值依赖。
答:
函数依赖是数据库中两个属性集之间的约束。设R(U)是属性集U 上的关系模式,X 、Y 是U 的子集,r 是R 的任一具体关系。设t 1、t 2是关系r 中的任意两个元组,如果t 1[X]=t 2[X],有t 1[Y]=t 2[Y],则称X 函数决定Y ,或Y 函数依赖于X ,记作X →Y 。
在关系模式R(U)中,X, Y 是U 的子集,若X →Y ,且存在X '⊂X ,使X '→Y ,则称X →Y 是部分函数依赖(partial functional dependency ),记作X → P
数据库第五章课后习题答案
数据库第五章课后习题答案
关系规范化理论题⽬
4.20 设关系模式R(ABC),F是R上成⽴的FD集,F={B→A,C→A },ρ={AB,BC }是R上的⼀个分解,那么分解ρ是否保持FD集F?并说明理由。
答:已知F={ B→A,C→A },⽽πAB(F)={ B→A },πBC(F)=φ,显然,分解ρ丢失了FD C→A。
4.21 设关系模式R(ABC),F是R上成⽴的FD集,F={B→C,C→A },那
么分解ρ={AB,AC }相对于F,是否⽆损分解和保持FD?并说明理由。
答:①已知F={ B→C,C→A },
⽽πAB(F)=φ,πAC(F)={ C→A }
显然,这个分解丢失了FD B→C
②⽤测试过程可以知道,ρ相对于F是损失分解。
4.22 设关系模式R(ABCD),F是R上成⽴的FD集,F={A→B,B→C,A→D,
D→C },ρ={AB,AC,BD }是R的⼀个分解。
①相对于F,ρ是⽆损分解吗?为什么?
②试求F在ρ的每个模式上的投影。
③ρ保持F吗?为什么?
答:①⽤测试过程可以知道,ρ相对于F是损失分解。
②πAB(F)={ A→B },πAC(F)={ A→C },πBD(F)=φ。
③显然,分解ρ不保持FD集F,丢失了B→C、A→D和D→C等三个FD。
4.23设关系模式R(ABCD),R上的FD集F={A→C,D→C,BD→A},试
说明ρ={AB,ACD,BCD }相对于F是损失分解的理由。
答:据已知的F集,不可能把初始表格修改为有⼀个全a⾏的表格,因此ρ相对于F是损失分解。
4.24 设关系模式R(ABCD)上FD集为F,并且F={A→B,B→C,D→B}。
第5章 数据库正确性分析
传递函数依赖
在一个属性集合中,若属性(组)X能够函数决定属性(组)Y, 而
Y又函数决定属性(组)Z, 但Y不能函数决定X, 而且Y不包含于 X, 则说Z传递函数依赖于X。 例(1):{ “学号” ,“姓名” ,“系号” ,“系主任” }中, “学号” 函数决定“系号”,而“系号”函数决定“系主任” ,则“系主任”传递依赖于“学号
例(1):{ “学号”,“课程号”,“成绩” }中,
(“学号,课程号”) (“成绩”) 例(2): { “学号”,“姓名” ,“系号” ,“系主任” }中 (“学号,系号”) (“系主任”) (“学号,系号”) (“姓名”)
请大家分析下列属性或属性组之间存在的完全或部分函数依赖关系
“学号”, “年龄”,“家庭住址”,“课程号”,“课程名称”,“成 绩”,“任课教师编号”,“教师姓名”… …
存在问题的原因:
• 上述表的关键字是(Ono, Pno, Cno),而产品信息(Pname, Pprice)本 来可以由Pno唯一确定。也就是说,产品信息并不完全依赖于订单编 号;同样客户信息也不完全依赖于订单编号,这是引起插入、删除 异常及冗余的原因。
第5章关系模式的规范化设计
第5章关系模式的规范化设计
关系模式的规范化设计(Normalization)是数据库设计中的一个重
要步骤,目的是消除冗余数据、提高数据的完整性和一致性,减少数据操
作的复杂性和数据的存储空间。下面将介绍关系模式的规范化设计的原则、规范化的各个阶段和规范化的优缺点。
一、规范化设计的原则
规范化设计的原则包括:
1.消除冗余数据:即通过将数据分散到多个关系中,避免将相同数据
重复存储在多个地方,减少了存储空间的浪费。
2.提高数据的完整性:通过将数据分开存储到多个关系中,可以降低
数据的重复性,确保数据的一致性和准确性。
3.简化数据操作:通过将数据分解成多个关系,可以简化数据的操作
和维护,提高数据查询和更新的效率。
4.减少数据的存储空间:通过消除冗余数据和提高数据的完整性,可
以减少数据的存储空间占用,节省存储资源。
二、规范化设计的各个阶段
规范化设计通常分为一般化(First Normal Form,1NF)、第二范式(Second Normal Form,2NF)、第三范式(Third Normal Form,3NF)
等多个阶段。
1.一般化:将关系模式中的属性分解成原子属性,即每个属性都是不
可再分的单元,消除属性中的重复数据。同时,每个记录是唯一的,并且
属性的顺序也无关紧要。
2.第二范式:在达到一般化的基础上,消除非主属性对主键的部分依赖。即要求每个非主属性完全依赖于主键。
3.第三范式:在达到第二范式的基础上,进一步消除传递依赖。即要求每个非主属性只依赖于主键,而不依赖于其他非主属性。
三、规范化设计的优缺点
关系数据库规范化理论(05)
S04 安然 D02 述圣 C02 78
S05 乐天 D03 省身 C01 82
快速热身1:它存在哪些问题?
6
5.2 数据依赖
1、关系模式中的数据依赖
1) 关系=关系模式+关系实例 2) 关系是属性的笛卡尔积的一个子集 3) 描述关系模式的五元组R(U,D,DOM,F) 4) F:属性间数据的依赖关系集合 5) 描述关系模式的简化三元组R(U,F) 6)关系数据库模式:一个数据库中所有关系模
27
5.4 .2 2NF
S_SD中可以插入尚未选课的学生---插入异常缓解 删除学生选修情况只涉及SC,而不涉及 S_SD ,不会丢 失学生信息---删除异常缓解 选修课与学生基本情况分开存储---降低冗余。 转系时只需要修改S_SD关系中该学生元组的SD和 DEAN ---简化修改。
快速热身
关 系 模 式 R(A,B,C,D), 码 为 AB, 给 出 它 的 一 个 函数依赖集,使得R属于1NF而不属于2NF
改造
将S分解为
STUDENT(S# , SN , SD) DEPT(SD , DEAN)
将关系模式S分解成两个关系模式将消除DEAN对码 的传递函数依赖。它将缓解上述四个问题。
32
Βιβλιοθήκη Baidu
5.4 .3 3NF
DEPT中可以插入无在校学生的系的信息---插入异常缓解 某个系的学生即使全部毕业了,也只删除STUDENT中的 相应元组,不会丢失系的信息---删除异常缓解 系的系主任信息只在DEPT中存储一次---降低冗余。 调整系的系主任,只需修改DEPT中的一个元组 ---简化 修改。
第5章 关系数据库规范化理论
5.3 模式分解
定义5.11 设关系模式R(U,F)被分解 为若干个关系模式R1(U1,F1),R2 (U2,F2)…..Rn(Un,Fn),(其中 U=U1∪U2……∪Un,且不存在Ui包含 于Uj中,Ri为F在Ui上的投影),若F所逻 辑蕴含的函数依赖一定也由分解得到的 某个关系模式中的函数依赖Fi所逻辑蕴含, 则称关系模式R的分解具有保持函数依赖 性。
4. 更新异常(Update Anomalies)
由于存在大量数据冗余,系统要付出很大代价来维护数据库的完整性。 否则就带来数据不一致的危险。比如,当某系的系主任更换后,系统必 须修改与该系学生有关的每个元组。
所谓数据依赖(Data Dependency),是指一 个关系内部属性与属性之间的一种约束关系, 这种约束关系是通过关系中属性间值的相等与 否体现出来的数据间的相互关系。这种数据依 赖是现实世界中属性间相互联系的抽象,是数 据内在的性质,是语义的体现。 数据依赖有很多种,其中最重要的是函数依赖 (Functional Dependency,简称FD)和多值依 赖(Multivalued Dependency,简称MVD)。
下面介绍一些术语和记号。
X→Y,但则称X→Y是非平凡的函数依赖。若不 特别声明,总是讨论非平凡的函数依赖。 X→Y,但YX则称X→Y是平凡的函数依赖。 若X→Y,则X叫做决定因素(Determinant)。 若X→Y,Y→X,则X与Y一一对应,记作X← →Y。 若Y函数不依赖于X,则记作 X Y
数据库系统概论 第5章
AM1 AM2
所借书名 T1 T2 T3 T2 T4 所借书名 T1 T2 T3 T2 T4
日 期 D1 D2 D3 D4 日 期 D1 D2 D3 D4 D4
例:以下两例为1NF关系。
部门名 部门号
正经理 副经理
借书人 张 平 张 平 张 平 李文化 李文化
DN1 DN2
D1 D2
M1 M2
AM1 AM2
一个低一级范式的关系模式,通过模式分解可以 转换为若干个高一级范式的关系模式的集合,这种 过程就叫规范化。各种范式之间的关系为:
1NF 2NF
3NF BCNF 4NF
5NF
例:以下两例为非1NF关系。借书人
部门名 部门号
经理
正经理 副经理
张 平 李文化
DN1 DN2
D1 D2
M1 M2
学生名 所在系 宿舍楼 S1 D1 H1 S2 D1 H1 S3 D1 H1 S4 D1 H1 S5 D2 H2
以上关系存在高度的冗余。有插入异常,修改 困难等问题。若将S(S,D,H)分解成S(S,D)和D(D,H) 则可解决其冗余等问题。
5.2.6 BCNF
BCNF(Boyce Codd Normal Form)是第三范式的另 一种形式,它的限制条件比3NF强。它是由Boyce 和Codd提出的。 定义:关系模式R(U,F)中,若X→Y且Y X时X必 含有码,则 R(U,F) ∈BCNF。 在关系模式R(U,F)中,若每一个决定因素都包含 码, R(U,F) ∈BCNF。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
部分函数依赖 (学号,课程号) →课程名 部分函数依赖 (学号,课程号) →学分 (学号,课程号) →成绩 完全函数依赖
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
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)
15
5.2.4 键
本节用函数依赖的概念来定义键. 定义5.5 设K为R(U,F)中的属性或属性组合,若K → U 则K为R的候选键.若候选键多于一个,则选定其中的一个为 主键(Primary key). 含在任何一个候选键中的属性,叫做主属性(Prime attribute). 不包含在任何键中的属性称为非主属性(Nonprime attribute). 最简单的情况:单个属性是键. 最极端的情况:整个属性组是键,称为全键(All-key). 16
"不好"原因 分析该例,可见有2种非主属性,一是G, 它对码(Sno,Cno)是完全函数依赖.另一种 是Sdept和Sloc,它们都是部分函数依赖于码 (Sno,Cno) . 解决方法 用投影分解把S-L-C分解为两个关系模式, 以消除这些部分函数依赖 SC(Sno,Cno,G) S-L(Sno,Sdept,Sloc)
4
5.2 数据依赖
数据依赖是关系内部属性与属性之间的一种约 束关系.这种约束关系是通过属性间值的相等 与否体现出来的数据间的相关联系,它是现实 世界属性间相互联系的抽象,是数据内在的性 质,是语义的体现. 如教师姓名和地址之间,每一个教师都有个确 教师姓名和地址之间,每一个教师都有个确 定的地址,意味着: 教师编号确定了,地址就确定了.地址依赖 于教师编号. 5
数据依赖的类型
函数依赖(Functional Dependency,简记 为FD) 多值依赖(Multivalued Dependency,简记 为MVD) 其他
6ຫໍສະໝຸດ Baidu
数据依赖对关系模式的影响
"好"的模式:
不会发生插入异常,删除异常,更新异常, 数据冗余应尽可能少
"不好"原因:由存在于模式中的某些 数据依赖引起的 解决方法:通过分解关系模式来消除其 中不合适的数据依赖
函数依赖
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)往往可以忽略.
第二范式(2NF)是在第一范式(1NF)的基础上建 立起来的,即满足第二范式(2NF)必须先满足第 一范式(1NF) . 第二范式(2NF)要求实体的非主属性完全函数依 赖于主键,不存在非主属性对主键的部分函数依赖 28
2NF总结:
所有非主属性都完全函数依赖 完全函数依赖于主键, 完全函数依赖 即:不存在部分函数依赖
S-L-C不是一个"好"的关系模 式
(1) 插入异常 没有选课的学生记录插不进去,因为Cno是主码的一部分,主 码不能为空. (2) 删除异常 删除选课记录会将学生信息也一同删掉.即不该删除的信息也 删除掉了. (3) 数据冗余度大 系别和学生住处会重复存放.如一个学生选修了10门课程,那 么他的Sdept和Sloc的值就要重复存储10次. (4) 修改复杂 如某个学生从电子商务系转到外语系,本来只需要修改此学生 的Sdept值.但因为关系模式SLC中还含有系的住处Sloc属性, 学生转系将同时改变住处,因此还必须修改Sloc的值.如果该 学生选修了3门课,由于Sdept和Sloc的值重复存放了3次,当 数据更新时必须无遗漏的修改3个元组中全部Sdept和Sloc的值, 25 这就造成了修改的复杂化.
19
5.3.1 第一范式
1NF的定义 定义5.7 如果一个关系模式R的所有属性都是 R 1NF 不可分的基本数据项,则R∈1NF 说明:
第一范式是对关系模式的最起码的要求.不满足第 一范式的数据库模式不能称为关系数据库. 但是满足第一范式的关系模式并不一定是一个好的 关系模式
20
例如,在表1,籍贯含有省,市/县两项,出 现了"表中有表"的现象,则为非规范化关 系(不符合"第一范式"),而把籍贯分成 省,市/县两列,将其规范化,如表2所示.
表1 不规范的关系 籍贯 姓名 省 王洪 李利 黑龙江 吉林 市/县 齐齐哈尔 长春 李利 吉林 长春
21
表2 规范后的关系 小表 姓名 王洪 省 黑龙江 市/县 齐齐哈尔
不允许 表 中 有 表
5.3.2 第二范式
[例5-6] 关系模式S-L-C(Sno, Sdept, Sloc, Cno, G) 其中,Sno为学生的学号,Sdept为学生的系别, Sloc为学生住处,假设每个系的学生住在同一个 地方,Cno为课程号,G为学生的成绩. 本例中的函数依赖包括:
30
采用投影分解法将一个1NF的关系分解为 多个2NF的关系,可以在一定程度上减轻 原1NF关系中存在的插入异常,删除异常, 数据冗余度大,修改复杂等问题. 但是,将一个1NF关系分解为多个2NF的 关系,并不能完全消除关系模式中的各 种异常情况和数据冗余.
31
5.3.3 第三范式
定义5.9 若R∈2NF,且每一个非主属性 都不传递函数依赖于键,则R∈3NF. 说明:
第5章 关系模式的规范化设计 章
主要内容:本章讨论关系模式的规范化设计.这章 主要内容 将从数据库逻辑设计中如何构造一个好的数据库模 式这一问题出发,阐明了关系规范化理论研究的实 际背景,介绍关系内部属性与属性之间的一种约束 关系即函数依赖的各种形式.介绍规范化理论,讨 论各种范式及可能存在的插入,删除等问题,并直 观地描述解决办法.
10
术语和符号
如果X→Y,但Y不是X的子集,则称X→Y是非 平凡的函数依赖. 如果X→Y ,但Y是X的子集,则称X→Y为平凡 的函数依赖. 说明:平凡函数依赖对于任一关系模式都是必 : 然成立的.因此, 然成立的.因此,一般讨论的都是非平凡的函 数依赖. 数依赖. 例:在关系选修(学号, 课程号, 成绩)中,
关系模型原理的核心内容就是规范化概念. 规范化是把数据库组织成在保持存储数据 完整性的同时最小化冗余数据的结构的过程. 规范化的数据库必须符合关系模型的范式 规则.范式可以防止在使用数据库时出现不一 致的数据,并防止数据丢失. 关系模型的范式有第一范式,第二范式, 第三范式,BCNF范式,第四范式等多种.
(学号,课程号)→成绩 (学号,所在系)→所在系
非平凡依赖 平凡依赖 11
术语和符号(续)
如果X→Y,则X称作决定因素或决定属性集. 决定因素或决定属性集. 决定因素或决定属性集 如:学号→所在系,则学号称作决定因素. 如果X→Y,并且Y→X,则可记作X←→Y. 如果Y不函数依赖于X,则记作 .
12
定义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是 成绩.
33
解决方法 采用投影分解法,把S-L分解为两个 关系模式,以消除传递函数依赖: S-D(Sno, Sdept) D-L(Sdept,Sloc) 其中,S-D的键为Sno, D-L的键为Sdept. 分解后的关系模式S-D与D-L中不再存在 传递函数依赖
34
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.
若R∈3NF,则每一个非主属性既不部分依 赖于键也不传递依赖于键. 若R∈3NF,则若R∈2NF; 反之不成立.
32
【例5-6】2NF关系模式S-L(Sno, Sdept, Sloc) 中函数依赖: 由于 Sno→Sdept Sno Sdept Sdept→Sloc 可得: ,即S-L中存在非主属性对键的传递 函数依赖,因此
22
本例中的函数依赖包括:
关系模式S-L-C的函数依赖关系图 说明:实线表示完全函数依赖, 虚线表示部分函数依赖 S-L-C满足第一范式. S-L-C的码为(Sno, Cno) 非主属性Sdept和Sloc部分函数依赖于码(Sno, Cno)
23
一个"非2NF"的关系模式
Sno (学号) S1 S1 S1 S2 S2 S3 S4 Sdept Sloc Cno G (系别) (学生住处)(课程号) (成绩) 1 80 电子商务 10号楼 2 90 电子商务 10号楼 3 75 电子商务 10号楼 1 85 计算机 20号楼 3 82 计算机 20号楼 2 88 外语 15号楼 5 86 24 会计 30号楼
定义5.6 关系模式R中属性或属性组X并非R的键, 但X是另一个关系模式的键,则称 X是R的外部 键(Foreign key)也称外键.
如在SC(Sno,Cno,Grade)中,Sno不是 码,但Sno是关系模式S(Sno,Sdept,Sage) 的码,则Sno是关系模式SC的外码. 主键与外部键提供了一个表示关系间联系的手段.
2
5.1 问题提出
前面的章节已经介绍了数据库当中涉及到 的基本概念,关系模型的三个部分(关系数据 结构,关系操作集合和关系完整性)以及关系 数据库的标准语言. 但是有一个很基本的问题没有提及,就是 针对一个具体的问题,应该构造几个关系模式, 每个关系由哪些属性组成,各属性之间的依赖 关系及其对关系模式性能的影响等. 这就是关系数据库逻辑设计的问题.本章 主要来讨论实体内部属性与属性之间的数据关 3 联,目标就是要设计一个"好"的数据库.
17
5.3 规范化的关系模式
范式是符合某一种级别的关系模式的集合. 关系数据库中的关系必须满足一定的要求.满足不同程度要 求的为不同范式. 范式的种类: 第一范式(1NF),第二范式(2NF),第三范式(3NF) BC范式(BCNF),第四范式(4NF),第五范式(5NF)
18
各种范式之间的关系
例:学生成绩表(课程号,学号,姓名, 成绩)是否满足2NF?为什么? 不满足2NF ,因为成绩依赖于(课程号,学号) 因为成绩依赖于(课程号,学号) 不满足 而姓名只依赖于学号, 而姓名只依赖于学号,因此存在部分函数依赖
29
解决办法: 把此关系分解为如下两个表: 学生: (学号, 姓名); 选课: (学号, 课程号, 成绩) 这样的数据库表是符合第二范式的