第关系数据理论

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
F={ 教师→课程,(学生,课程)→教师,(学生, 教师)→课程 }
该关系的候选码为(学生,课程)或(学生,教 师), 该关系一定是3NF的。 但由于决定因素教师没包 含码,该关系不属于BCNF。假设有100名学生选课,存 在冗余(教师,课程),可分解为:
教师(教师,课程)
学生(学生,教师)
第25页/共81页
或者说,属性X函数决定属性Y,记作X→Y。 其中X称为这 个函数依赖的决定属性组,也称为决定因素,Y称为被决 定因素。
此定义可简单表述为: 如果属性X的值决定属性Y的值,那么属性Y函数依赖于 属性X。 换一种说法是,如果知道X的值,就可以获得Y的值。
第4页/共81页
术语和记号
Sno
sname sage spno cno cname
因此引出下面的定义:
第10页/共81页
定义6.3 传递函数依赖
在R(U )中,如果 X Y , (Y X ),Y X ,Y Z ,
传递
则称Z对X传递函数依赖,记作: X Z。
为什么要加上条件Y X ?
若不添加,则XY,变成
直接
X Z
第11页/共81页
问题:主码从函数依赖的角度,如何定义?
若X Y,Y X ,记作X Y。 若Y不函数依赖于X ,则记作X Y。
第6页/共81页
在前面关系中,存在哪些函数依赖?
Sno
sname sage spno cno
cname
mark
(Sno,cno)mark Snosname,Snosage,Snospno Cnocname 有没有其他函数依赖关系?

R U, F 3NF
即若R是3NF,则在关系中每一个非码属性既不部分函数 依赖于码也不传递依赖于码。因此:
S_L Sno Sdept Sloc
S_D Sno Sdept
D_L Sdept Sloc
分解后的两个关系是否满足3NF,分解的原则是什么?
第18页/共81页
若关系不满足3NF,则分解关系去掉传递函数依赖关系, 使分解后的各个关系满足3NF。
课程C 物理 数学
教员T 李勇 王军
李勇 张平
参考书B
普通物理学 光学原理 物理习题集
数学分析 微分方程 高等代数
什么是函数依赖,该数 据中,各个属性间存在 函数依赖吗?
计算数学 …
张平 周峰

数学分析 …
… 第28页/共81页
它们之间的关系应 该是怎样的?
写成规范化形式如下:
课程C
物理 物理 物理 物理 物理 物理 数学 数学 数学 数学 数学 数学
第13页/共81页
6.2范式
• 第1范式的内容是什么? • 主码与其他非码属性的关系应该是怎样的? • 考虑如下关系,(Sno,Cno)为码。
Sno(学号) Sdept(院系) Sloc(宿舍) Cno(课程号) Grade(成绩)
该关系中存在哪些完全函数依赖关系和部分函数依赖
关系?
F
(Sno,Cno) Grade
cname
结论:表之所以存在前面的问题是因为它的 非码属性之间存在函数依赖,即非码属性部 分函数依赖于码,如何解决?
第9页/共81页
考查下面关系:
Sno(学号) Sdept(学生所在院系)
Mname(系负责人)
存在哪些完全函数依赖关系,特点是什么? SnoSdept,SdeptMname SnoMname 问题:SdeptSno是否成立?
小结: •2NF的定义:强调完全函数依赖。 •3NF的定义:强调不存在传递函数依赖。 •BCNF的定义:强调只有码才可以是决定因素。
它们之间的关系如何?
第26页/共81页
关系是 • 2NF,不能保证是3NF和BCNF; • 3NF,能保证是2NF,但不能保证是BCNF; • BCNF,能保证是2NF和3NF。 关系如下:
F
X Y
若XY,但Y不完全函数依赖于X,则称Y对X部分函数 依赖,记作:
P
X Y
问题:
第8页/共81页
下列关系中有哪些完全函数依赖关系,有哪些部分函数 依赖关系?
Sno
sname sage spno cno
cname
mark
Sno
sname sage spno cno
Sno
cno
mark
分解后是否存在部分函数依赖?
从另一个角度讲,一旦确定了学号的值或课程号的值就可以知道 相应的其他信息,如姓名,年龄,课程名称。
我们说姓名或年龄函数依赖于学号,课程名称函数依赖于课程 号。
在前面的关系中还有那些依赖关系?
函数依赖的定义:
第3页/共81页
定义6.1 函数依赖
所谓函数依赖是指在关系R(型)中,X、 Y为R的两个属性或 属性组,如果对于R的所有关系r(记录)都存在: 对于X的每 一个具体值,Y都只有一个具体值与之对应,则称属性Y函数 依赖于属性X。
但是如果R∈3NF,R未必属于BCNF。 3NF比BCNF放宽 了一个限制,即允许决定因素不包含码。 请看下面两个 例子:
第23页/共81页
例 1: 通讯(城市名,街道名 ,邮政编码) 该关系的码是(城市名,街道名),根据语义其函
数依赖集为: F={(城市名,街道名)→邮政编码,邮政编码→城市名} 所以非主属性邮政编码完全函数依赖于码,且无
sname和sage是否函数依赖于(Sno,cno),还函数依赖于哪个属性, 这个属性与(Sno,cno)的关系是什么?
是,sno,包含与被包含的关系。
第7页/共81页
因此
定义6.2 完全函数依赖与部分函数依赖
在R(U)中,如果XY,并且对于X的任何一个真子集X’,
都有
X'Y
则称Y对X完全函数依赖,记作
Customer-name Loan-number
实质是非主属性含有决定因素,如Loan-number。分解后 去掉了非主属性的决定因素。
第20页/共81页
定义6.8
关系模式R<U,F> 1NF。若XY且Y X 时X必含
有码,则称
R U, F BCNF
X必含有码的含义是什么,请举例?
由BCNF的定义可以得到以下推论: 如果R∈BCNF,则 •R中所有非主属性对每一个码都是完全函数依赖;
BCNF与3NF的关系是什么?
第22页/共81页
定理: 如果R∈BCNF,则R∈3NF一定成立。
证明: 用反证法。 如果R∈BCNF,但不是3NF,则R中一定存在传递函数依赖。 即R中必定存在候选码X,
非主属性A,属性组Y,其中A X,A Y, X→Y,使得X→Y→A成立。 Y不是R的码,但Y是R的 决定因素(Y→A),根据BCNF的定义,R不是BCNF,与假设相矛盾。 所以假设不成立。

教员T
李勇 李勇 李勇 王军 王军 王军 李勇 李勇 李勇 王平 王平 王平

参考书B
普通物理学 光学原理 物理习题集 光学原理 普通物理学
物理习题集 数学分析 微分方程 高等代数 数学分析 微分方程 高等代数

在这个关系中码是 什么?
Sno(学号) Sdept(院系) Sloc(宿舍) Cno(课程号) Grade(成绩)
S_L
Sno Sdept Sloc
S_C
Sno
Cno
Grade
分解后的各个关系是否满足2NF,分解的原则是什么?
第16页/共81页
若关系中存在非主属性部分函数依赖于主码(不满足2NF), 则修改关系去掉这些部分函数依赖关系,一般做法就是 分解关系成为多个关系,使它们满足2NF。 考虑一下,分解后的关系S_L的特性?
3、若有一个学生选修个多门课程,现在他要调宿舍, 需要怎样修改表中的记录?
需要修改多个记录——修改复杂
4、假设有一个学生选修了多门课程,需要怎样添加
记录?
Sdept和Sloc多次填写——冗余大
第15页/共81页
如何解决
定义6.6
若关系R1NF,且每个非主属性完全函数依赖 于码,则R 2NF。
前面的关系是否满足2NF,若不满足该如何修改使它满 足2NF?
银行系统现有关系如下:分行,客户,借贷编号,如何构 造一个关系,体现3者的联系。
Branch-name Customer-name Loan-number
(分行)
(客户)
(借贷编号)
该关系哪些属性是码,是否满足2NF,是否满足3NF?
(Branch-name, Customer-name)是码,非主属性完全依赖于 码,其没有传递依赖,故满足2NF和3NF,但是若借 贷编号是为每个分行的不同金额的借贷业务编的号, 则有没有数据冗余?
2NF 3NF
BCNF
一个关系模式如果达到了 BCNF,那么在函数依赖范 围内,它已实现了彻底的分 离,消除了数据冗余、 插入 和删除异常。
第27页/共81页
现有例子如下:
学校中某一门课程由多个教员讲授,他们使用相同的一套参考书。 每个教员可以讲授多门课程,每种参考书可以供多门课程使用, 非规范化数据如下:
1、在表中每添加一个选课记录(元组),需要添加的信息包括哪 些,这些数据有什么特点?
学生的姓名,年龄和课程名称也需要添加,同一个学生或同一 门课程在多次添加选课记录时,重复太大——存在的冗余大。
2、假设“刘洋”同学的姓名改为“刘杨”,应该怎样操作?
需要修改每一个与“刘洋”有关的记录。——更新异常。
3、假设新增一门新课,还没有学生选修,如何在数据库中体现
定义6.4 主码
设K为R U , F 中的属性或属性组合,
F
若K U则K为R的候选码。当候选码多 于一个时,则选择其中一个作为主码。
ቤተ መጻሕፍቲ ባይዱ
第12页/共81页
函数依赖小结
• 函数依赖 • 非平凡的函数依赖 • 完全函数依赖 • 部分函数依赖 • 传递函数依赖
在关系(表)的“合理”化过程中如何使用函数依赖?
P
Sno Sdept, (Sno,Cno) Sdept
P
Sno Sloc, (Sno,Cno) Sloc
第14页/共81页
1、若要添加一个学生,他还没有选课,会出现怎样 的现象? 主码不全,添加出错,——插入异常
2、假设有一门课程C3只有某一个学生(如S6)选了,现 在该学生退学了,需要删除他的信息,在删除时会发 生怎样的现象? 将课程的信息也删除了——删除异常
出?
无法体现出——插入异常
4、假设有一部分同学毕业了,需要删除他们的记录,会发生怎 样的情况?
可能将课程的信息丢失了。——删除异常
若使用合并前的表,是否也会出现上述现象?因此…
第2页/共81页
合并后的表,它的结构不合理,原因分析:
1、学号,姓名,年龄,专业编号4个属性,从常识上讲只要知道 学号,其他3个属性便可得知,同理可知,知道了课程号就可以 知道课程的名称。
S_L
Sno Sdept Sloc
Sno Sdept, (Sdept Sno),Sdept Sloc
传递
可得:Sno Sloc
在添加学生的记录时,需要添加哪些属性,哪些是冗余 的,应该如何修改?
第17页/共81页
定义6.7
关系模式R<U,F>中若不存在这样的码X,属性组Y及
非主属性Z( Z Y)使得XY,YZ成立,YX,则
第19页/共81页

既然每个分行为不同金额的借贷业务编了号,
Loan-number和Brach-name属性存在重复,且Loan-number不是码。 因此对上述关系作如下修改:
Branch-name Customer-name Loan-number
(分行)
(客户)
(借贷编号)
Loan-number Branch-name Amount
传递依赖,属于3NF。 但邮政编码也是一个决定因素,它 没有包含码,所以该关系不属于BCNF。存在冗余(城市 名, 邮政编码) ,可以作如下分解:
(城市名, 邮政编码)
(街道名 ,邮政编码)
第24页/共81页
例 2 授课(学生,教师,课程)
假设该校规定: 一个教师只能教一门课,每门课 可由多个教师讲授。 学生一旦选定某门课,教师就相应 地固定。 根据语义关系的函数依赖集为:
mark
在该关系中下列函数依赖是否成立? 1、Snosname
2、(Sno,cno)sno
两者有什么不同?
X Y ,但Y X则称X Y是非平凡的函数依赖 X Y ,但Y X则称X Y是平凡的函数依赖
第5页/共81页
问题:什么时候存在平凡的函数依赖? 对于任何一个关系模式,平凡函数依赖都必然成立, 因此,若不做特别说明,函数依赖总是指非平凡的 函数依赖。
• 若不是,会得出什么结论?
非主属性起决定作用,与定义矛盾。
第21页/共81页
•R中所有主属性对每一个不包含它的码,都是完全函数依赖——关系有多个候选码的情况;
——反之,会怎样?
非主属性起决定作用,与定义矛盾。
•R中没有任何属性完全函数依赖于非码的任何一组属性。
—反之,会怎样? 非主属性起决定作用,与定义矛盾。
相关文档
最新文档