第六章 关系数据理论 6.2 规范化.

合集下载

第6章 关系数据理论

第6章 关系数据理论
U ={ Sno, Sdept, Mname, Cname, Grade }
h
12
河北经贸大学信息技术学院
数据依赖对关系模式的影响(续)
属性组U上的一组函数依赖F: F ={ Sno → Sdept, Sdept → Mname,
(Sno, Cname) → Grade }
Sno
Cname
Grade
h
5
河北经贸大学信息技术学院
一、概念回顾
• 关系:描述实体、属性、实体间的联系。 从形式上看,它是一张二维表,是所涉及属性 的笛卡尔积的一个子集。
• 关系模式:用来定义关系。 • 关系数据库:基于关系模型的数据库,利用关系
来描述现实世界。
从形式上看,它由一组关系组成。
• 关系数据库的模式:定义这组关系的关系模式的 全体。
• 关系模式R(U, D, DOM, F) 简化为一个三元组:
R(U, F)
• 当且仅当U上的一个关系r满足F时,r称为关
系模式 R(U, F)的一个关系
h
8
河北经贸大学信息技术学院
四、什么是数据依赖
1. 完整性约束的表现形式 • 限定属性取值范围:例如学生成绩必须在0-100之间 • 定义属性值间的相互关连(主要体现于值的相等与
否),这就是数据依赖,它是数据库模式设计的关键
h
9
河北经贸大学信息技术学院
什么是数据依赖(续)
2. 数据依赖
• 一个关系内部属性与属性之间的约束关系 • 现实世界属性间相互联系的抽象 • 数据内在的性质 • 语义的体现
h
10
河北经贸大学信息技术学院
什么是数据依赖(续)
3. 数据依赖的类型
• 函数依赖(Functional Dependency,简 记为FD)

DB09-关系数据理论

DB09-关系数据理论

学号姓名
学号年龄 学号性别
学号籍贯
5
2014年12月10日
第六章 关系数据理论
函数依赖的种类
• 完全依赖
SC ( SNO , CNO , SD , Grade )
在 R(U) 中,如果 XY ,并且对于 X 的任何一个真子集 X’
f Y。 都有X’Y,则称Y对X完全依赖,记作X
• 部分依赖 若 XY 但 Y 不完全依赖于 X ,则称 Y 对 X 部分函数依赖,
CO(C_NO,TAGE,OFFICE ) 无损分解的判别算法
GTO(GRADE, TNAME,TAGE,OFFICE)
2014年12月10日 第六章 关系数据理论 21
一、无损分解的定义
={R1<U1,F1> , … , Rk<Uk,Fk>} 是 R<U,F> 的一 个分解,若对R<U,F>的任何一个关系r均有
17
2014年12月10日
第六章 关系数据理论
规范化小结
1、规范化的基本思想
逐步消除数据依赖中不合适的部分,使模式中的各关 系模式达到某种程度的“分离”,即“一事一地”的模式 设计原则。让一个关系描述一个概念、一个实体或者实体
间的一种联系。若多于一个概念就把它分离出去。
所谓规范化实质上是概念的单一化。
请问R2NF? 分解:
SC(S_NO,C_NO,GRADE) CTO(C_NO,TNAME,TAGE,OFFICE) FSC = { (S_NO,C_NO)GRADE } FCTO ={ C_NOTNAME, TNAMETAGE, TNAMEOFFICE };
2014年12月10日 第六章 关系数据理论 15

第6章关系数据理论

第6章关系数据理论

6.1.3 为什么要讨论函数依赖?
关系 : S-L-C(Sno,Sdept,SLOC,Cno,Grade)
Sno 9512101 9512101 9512101 9512102 9512102 9521102 9521102 9521102 9521102 9521103 9521103 9531101 9531101 Sname 李勇 李勇 李勇 刘晨 刘晨 吴宾 吴宾 吴宾 吴宾 张海 张海 钱小平 钱小平 Ssex 男 男 男 男 男 女 女 女 女 男 男 女 女 Sdept 计算机系 计算机系 计算机系 计算机系 计算机系 信息系 信息系 信息系 信息系 信息系 信息系 数学系 数学系 Sloc 2公寓 2公寓 2公寓 2公寓 2公寓 1公寓 1公寓 1公寓 1公寓 1公寓 1公寓 1公寓 1公寓 Cno c01 c02 c06 c02 c04 c01 c02 c04 c05 c02 c06 c01 c05 Grade 90 86 NULL 78 66 82 75 92 50 68 NULL 80 95
• 第一范式(1NF) • 第二范式(2NF) • 第三范式(3NF)
第一范式
第一范式(1NF):不包含重复组的关系
第二范式
第二范式(2NF) :如果R(U,F)∈1NF,并 且R中的每个非主属性都完全函数依赖 于主码,则R(U,F)∈2NF。
例: S-L-C(Sno,Sdept,SLOC,Cno,Grade)
第三范式
第三范式(3NF):如果R(U,F )∈2NF, 并且所有非主属性都不传递依赖于主码, 则R(U,F )∈3NF。
• S-L(Sno,Sdept,SLOC) • ∵Sno传递→SLOC, ∴不是3NF
分解方法
• (1)对于不是候选码的每个决定因子,从 表中删去依赖于它的所有属性; • (2)新建一个表,新表中包含在原表中所 有依赖于该决定因子的属性; • (3)将决定因子作为新表的主码。

最新数据库第6章-关系范式规范化理论ppt课件

最新数据库第6章-关系范式规范化理论ppt课件
数据库第6章-关系范式规范 化理论
6. 关系数据理论
6.1 问题的提出 6.2 规范化
6.1 问题的提出
关系数据库的逻辑设计
针对具体问题,如何构造一个适合于它的数 据模式 数据库逻辑设计的工具──关系数据库的规 范化理论
二、关系模式的形式化定义
一个关系模式由五部分组成,即是一个五元组: R(U, D, DOM, F)
解决方法如下:
☺把关系模式 S <U, F>分解为3个关系模式:
S(Sno,Sdept,Sno Sdept); SG(Sno,Cname,Grade,(Sno,Cname)Grade);
Dept(Sdept,Mname,SdeptMname)
6.2 规范化
规范化理论 正是用来改造关系模式,通过分解 关系模式来消除其中不合适的数据依赖,以解 决插入异常、删除异常,和数据冗余问题。
1. 数据冗余太大 ➢ 在每个学生元组中,系主任姓名重复出现浪费大量存储
空间
☺另外,如果某个系的系主任换人了,就要更改每个学生
的元组,维护代价很大
2. 插入异常
☺如果一个系刚成立尚无学生(没有Sno),就无法把这个
系及其系主任的信息存入数据库
3. 删除异常
☺如果某个系的学生全部毕业了,Sno将被全部删除,同时
规范化:通过分析关系(关系模式)中存在的 弱点,将该关系分解为若干个高一级的关系。
范式:关系规范化的程度称为范式,1NF, 2NF,3NF,BCNF
6.2.1 函数依赖
一、函数依赖 二、平凡函数依赖与非平凡函数依赖 三、完全函数依赖与部分函数依赖 四、传递函数依赖
一、函数依赖
定义6.1 设R(U)是一个属性集U上的关系模式 ,X和Y是U的子集。 若对于R(U)的任意一个可 能的关系r,r中不可能存在两个元组在X上的 属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或 “Y函数依赖于X”,记作 X→Y。

《数据库系统概论》第5版-王珊-第6章

《数据库系统概论》第5版-王珊-第6章

第7章 数据库设计
第8章 数据库编程
An Introduction to Database System
第六章 关系数据理论
6.1 问题的提出
6.2 规范化
6.3 数据依赖的公理系统
*6.4 模式的分解
6.5 小结
An Introduction to Database System
6.1 问题的提出
*
4. 传递函数依赖
定义6.3 在R(U)中,如果X→Y(Y⊈X),Y↛X, Y→Z,Z⊈Y, 则称Z对X传递函数依赖(transitive
functional dependency)。记为:X → Z。
注: 如果Y→X, 即X←→Y,则Z直接依赖于X,而不是 传递函数依赖。 [例] 在关系Std(Sno, Sdept, Mname)中,有:
如果一个系刚成立,尚无学生,则无法把这个系及其
系主任的信息存入数据库。
An Introduction to Database System
*
问题的提出(续)
(4)删除异常(Deletion Anomalies)
如果某个系的学生全部毕业了, 则在删除该系学生信
息的同时,把这个系及其系主任的信息也丢掉了。
即Sno函数决定Sname Sno函数决定Sdept 记作Sno→Sname,Sno→Sdept
An Introduction to Database System
*
问题的提出(续)
[例6.1] 建立一个描述学校教务的数据库。 涉及的对象包括:
学生的学号(Sno)
所在系(Sdept)
田七 . . .
男 . . .
20 . . .

第六章 关系数据理论.ppt

第六章 关系数据理论.ppt

5
3
3
解答:A->BC, B->C,AB->C…
21
6.2.1 函数依赖 (续)
2. 相关说明 函数依赖成立的条件 平凡的函数依赖 如果X Y,但Y X,则称其为平凡的函数依赖,否则 称为非平凡的函数依赖 如(Sno,SN) SN是平凡的函数依赖
22
6.2.1 函数依赖 (续)
32
6.2.3 范式(续)
3. 2NF
2NF的定义 • 若R1NF,且每个非主属性完全依赖于码,则称 R2NF • 消除非主属性对码的部分依赖 如S2NF,因为 (Sno,Cno)p SN (Sno,Cno)p SD
33
6.2.3 范式(续)
3. 2NF
1NF到2NF的改造
• 非主属性有两种,一种完全依赖于码,一种部分 依赖于码。 将S分解为: SC(Sno , Cno , G) S_SD(Sno , SN , SD , DEAN)
• 消除非主属性对码的部分函数依赖
34
改造结果
Sno SD
SD
DEAN
S01 杨明
D01
思齐
S02 李婉
D01
思齐
S03 刘海
D02
述圣
关系模式S(Sno , SN , SD , DEAN , Cno , G)在现实世 界中的体现的属性之间的依赖关系
• 一个系由若干学生,但一个学生只属于一个系(1-n) Sno -> SD
• 一个系只有一名主任 SD -> DEAN
• 每个学生学习一个课程,都有一个成绩G (Sno, Cno) -> G
27
范式关系图
1NF 2NF 3NF BCNF 4NF

关系数据理论

关系数据理论

如果一域列上的值互不相同, 则该域列一定 可以函数决定其他域列。
17
函数依赖的一些术语(参见P173.)



非平凡的函数依赖 如果 XY,且Y X,则称XY为非平凡 的函数依赖。 例如 (S#,C#) G 是非平凡的函数依赖 平凡的函数依赖 如果 X Y,但Y X,则称XY为平凡 的函数依赖。 例如 (S#,SN) SN是平凡的函数依赖 如果不特别说明,总是讨论非平凡的函数依赖
3
6.1 问题的提出

提出数据库逻辑设计的问题,即数据库模式的 设计问题:

给出一组数据,应该如何构造一个适合于它的数据 库模式。

以关系模型为背景讨论数据库模式的设计,因 为:

关系模型有严格的理论基础。 关系模型可以向别的模型转换。 给出一组数据,应该如何构造一个适合于这组数据 的关系数据库模式。


例如, 学生表 S(S# , SN, SD, DEAN, C# , G) 因为有 S# SD,SD DEAN,
所以
S#
T
DEAN
注意:XZ是传递函数依赖的几个条件。 练习:找出职工工资表中的传递函数依赖。
24
6.2.2 码(参见P173.)
定义6.4 设K为关系模式R<U, F>的属性(组), f 若K U,则称K为R的候选码。 主码:若R<U , F>有多个候选码,则可以从中 选定一个作为R的主码。 主属性:包含在任一个候选码中的属性,称作 主属性。 非主属性:不包含在任一个候选码中的属性, 称作非主属性(或非码属性)。

分解后的三个关系模式都不会发生插入异常、 删除异常、更新异常, 数据冗余也得到控制。

6 关系数据理论

6 关系数据理论
第六章 关系数据理论
课程名称:数据库原理 授课教师:季 斌
内容概述
定义:关系数据库设计理论就是借助于数学工具规定了一
整套的关系数据库设计理论和方法。
关系模型(第一篇 关系数据库基础理论)
设 计 如何选择一个比较好的关系模式的集合, 每个关系又应该由哪些属性组成。 (关系数据理论要解决的问题)
关系数据库(第二篇 关系数据库设计与应用开发)
而学号→年龄,(学号,课程号)→年龄, 所以有: 年龄对(学号,课程号)部分函数依赖。
传递函数依赖
定义 设有关系模式R(U),U是属性全集,X,Y,Z是U 的子集,
若X→Y,但Y X,而Y→Z(Y X,Z Y),则称Z对X传递函数 依赖(Transitive Functional Dependency)。 如果Y→X,则X Y,这时称Z对X直接函数依赖,而不是传递 函数依赖。
学号→年龄,学号→系别。 (3)如果属性X与Y有m: n的联系时,则X与Y之间不存在任何函数依赖关系。 例如,一个学生可以选修多门课程,一门课程又可以为多个学生选修, 所以学号与课程号之间不存在函数依赖关系。
由于函数依赖与属性之间的联系类型有关,所以在确定属性间的 函数依赖关系时,可以从分析属性间的联系类型入手,便可确定属性 间的函数依赖。
系名系主任随之删除而这个系依然存在在数据库中却无法找到该系的信息导致删除异常4更新异常学号s1s1s2s2s2s2s3s3s3s4姓名赵亦赵亦钱尔钱尔钱尔钱尔钱尔孙珊孙珊孙珊李思年龄171718181818202020男部门计算机计算机信息信息信息信息信息信息信息信息自动化系主任刘伟刘伟王平王平王平王平王刚王平王平王平王平刘伟课程号c1c2c5c6c7c5c1c2c4c1成绩9085578070700708593王刚王刚某系更换系主任则属于该系的学生记录都要修改内容稍有不慎就有可能漏改某些记录这就会造成数据的不一致性破坏数据的完整性导致更新异常
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章 关系数据理论 十、规范化举例
6.2 规范化
例1:设有关系模式R(职工编号,日期,日营业额,部门名, 部门经理),该关系模式统计商店里每个职工的日营业 额,以及职工所在的部门和经理信息。 如果规定:每个职工每天只有一个营业额;每个职工只在一 个部门工作;每个部门只有一个经理。 试回答下列问题: (1)根据上述规定,写出模式R的基本FD和候选码; (2)说明R不是2NF的理由,并把R分解成2NF模式集; (3)进而分解成3NF模式集。 解: (1)基本的FD有3个:(职工编号,日期)→ 日营业额 职工编号 → 部门名 部门名 → 部门经理 R的候选码为(职工编号,日期)。
第六章 关ENT( S#,SName,Term_Address, Faculty, Faculty_Head, UNIT#,Unit_Name,Result ),试将该关系模式分解到3NF。 解:基本FD有4个: S# → SName,Term_Address,Faculty Faculty → Faculty_Head UNIT# → Unit_Name S#,UNIT# → Result 所以码为(S#,UNIT#) 2NF 消除部分依赖 RESULT(S#,UNIT#,Result) UNIT(UNIT#,Unit_Name) STUDENT(S#,SName,Term_Address,Faculty, Faculty_Head) 3NF 消除传递依赖 RESULT关系和UNIT关系同上,而STUDENT分解为: STUDENT(S#,SName,Term_Address,Faculty) FACULTY(Faculty, Faculty_Head) 这样ρ={RESULT, UNIT, STUDENT, FACULTY} 是一个3NF模式集。
第六章 关系数据理论
例4:重做例2
6.3 数据依赖的公理系统
W(U, F),U={C, T, H, R, S, G}, 这些属性分别表示课程 名、任课教师、上课时间、上课教室、学生姓名、成绩, F={CT,CSG,HRC,HTR,HSR}
第六章 关系数据理论
6.3 数据依赖的公理系统
三、求关系模式的候选码
1、方法:求出关系模式R(U, F)的属性集U所有可能的真 子集X关于函数依赖集F的属性集闭包XF+ ,若有U XF+ 且 X的任何一个真子集Y的YF+, 有UYF+, 则X为一候选码。 2、举例 例1:设有关系模式R(U, F),U={A,B,C,D}, F={AB, BC} 求R的所有候选码。 解:AF+={ABC}, BF+={BC}, CF+={C}, DF+={D} (AB)F+=(AC)F+={ABC}, (AD)F+={ABCD}, (BC)F+={BC}, (BD)F+={BCD}, (CD)F+={CD} (ABC)F+={ABC}, (BCD)F+={BCD}, (ACD)F+=(ABD)F+= {ABCD} , 故R只有一个候选码AD
第六章 关系数据理论
6.2 规范化
(2)∵R中存在非主属性“部门名”对码(职工编号,日期) 的部分依赖,所以R不是2NF模式。 R应分解成R1(职工编号,日期,日营业额) R2(职工编号,部门名,部门经理) 这里,R1和R2都是2NF模式。 (3)R1已是3NF模式。 ∵在R2中存在两个FD:职工编号 → 部门名, 部门名 → 部门经理 因此,R2中存在非主属性“部门经理”对码“职工编 号” 的传递依赖,R2不是3NF模式。 将R2分解成R2l(职工编号,部门名) R22(部门名,部门经理) 这样ρ={ R1, R21, R22 }是一个3NF模式集。
第六章 关系数据理论
6.3 数据依赖的公理系统
候选码的求解理论和算法
对于给定的关系R(U, F),可将其属性分为四类: L类:仅出现在函数依赖集F的左部的属性。 R类:仅出现在函数依赖集F的右部的属性。 LR类:在函数依赖集F的左右两边均出现的属性。 N类:在函数依赖集F的左右两边均未出现的属性。 快速求解候选码的一个充分条件: 定理1:对于给定的关系模式R(U, F),若 X(X ∈U)是R的L 类属性,则X必为R的任一候选码中的属性。 例3:设有关系模式R(U, F),U={A, B, C, D},F={D→B, B→D, AD→B, AC→D},求R的所有候选码。 解:考察F发现,A、C两属性是R的L类属性,由定理1可 知,AC必是R的任一候选码中的属性,又∵(AC)关于F的 闭包=ABCD,∴AC是R的唯一候选码。
第六章 关系数据理论
6.3 数据依赖的公理系统
例2:设有关系模式W(U, F),U={C, T, H, R, S, G}, 这些属性 分别表示课程名、任课教师、上课时间、上课教室、 学生姓名、成绩,F={CT,CSG,HRC,HTR,HSR} 求R的所有候选码。 解:CF+={CT},TF+={T},HF+={H},RF+={R},SF+={S},GF+={G} (CT)F+={CT}, (CH)F+={CTHR}, (CR)F+={CTR}, (CS)F+={CTSG}, (CG)F+={CTG}, (TH)F+={THRC}, (TR)F+={TR}, (TS)F+={TS}, (TG)F+={TG}, (HR)F+={HRCT}, (HS)F+={CTHRSG}, (HG)F+={HG}, (RS)F+={RS}, (RG)F+={RG}, (SG)F+={SG}, (CTH)F+=(THR)F+={CTHR}, (CTR)F+={CTR}, (CTS)F+={CTS}, (CTG)F+={CTG}, (THS)F+=(HRS)F+={CTHRSG},(THG)F+=(HRG)F+={THRCG}, (RSG)F+={RSG}, (CTHR)F+={CTHR}, (CTHS)F+=(THRS)F+=(HRSG)F+={CTHRSG}, (CTHG)F+=(THRG)F+={CTHRG}, 故R只有一个候选码HS
相关文档
最新文档