并且对于每一个非平凡函数依赖XY课件_第1页
并且对于每一个非平凡函数依赖XY课件_第2页
并且对于每一个非平凡函数依赖XY课件_第3页
并且对于每一个非平凡函数依赖XY课件_第4页
并且对于每一个非平凡函数依赖XY课件_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章关系数据库规范化理论6.1函数依赖

6.2关系规范化

6.3关系模式的规范化

6.1函数依赖定义:如果有一个关系模式R(A1,A2,…,An),X和Y为{A1,A2,…,An}的子集,那么对于关系R中的任意一个X值,都只有一个Y值与之对应,则称X函数决定Y,或Y函数依赖于X。 例:Student(Sno,SName,Sdept,Sage)Sno→SName,Sno→Sdept,Sno→Sage

例:

SC(Sno,Cno,Grade)(Sno,Cno)→Grade一些术语和符号1.如果X→Y,但Y不包含于X,则称X→Y是非平凡的函数依赖。如不作特别说明,我们总是讨论非平凡函数依赖。2.如果Y不函数依赖于X,则记作X—/→Y。3.如果X→Y,则称X为决定因子。4.如果X→Y,并且Y→X,则记作X←→Y。一些术语和符号(续)5.如果X→Y,并且对于X的一个任意真子集X’都有X’—/→Y,则称Y完全函数依赖于X,记作:6.如果X→Y(非平凡函数依赖,并且Y—/→X)、Y→Z,则称Z传递函数依赖于X。如果X’→Y成立,则称Y部分函数依赖于X,记作:示例例1:有关系模式:SC(Sno,Sname,Cno,Credit,Grade)则函数依赖关系有:

Sno→Sname

(Sno,Cno)→

Sname(Sno,Cno)→

Grade示例例2:有关系模式:S(Sno,Sname,Dept,Dept_master)函数依赖关系有:Sno由于:SnoDept,DeptDept_master所以有:Sno

Dept_masterSname为什么要讨论函数依赖SnoSdeptSLOCCnoGrade9812101计算机2公寓DB809812101计算机2公寓OS859821101信息1公寓C909821101信息1公寓DS

849821102信息1公寓OS

78存在问题数据冗余问题数据更新问题数据插入问题数据删除问题6.2关系规范化6.2.1关系模式中的码6.2.2范式6.2.1关系模式中的码1.候选码:设K为R(U,F)中的属性或属性组,若Kf→U,则K为R候选码。(K为决定R全部属性值的最小属性组)。 主码:关系R(U,F)中可能有多个候选码,则选其中一个作为主码。

全码:候选码为整个属性组。 主属性与非主属性: 在R(U,F)中,包含在任一候选码中的属性称为主属性,不包含在任一候选码中的属性称为非主属性示例例:SC(SNO,CNO,Grade) 候选码:(SNO,CNO),也为主码 主属性:SNO,CNO,非主属性:Grade例:教师_课程(教师号,课程号,授课学年)

语义:一个教师在一个学年可以讲授多门课程,而且一门课程在一个学年也可以由多个教师讲授,同一个学年可开始多门课程。

候选码:(教师号,课程号,授课学年)

称这样的表为全码表6.2.1关系模式中的码(续)外码:用于关系表之间建立关联的属性(组)。定义:若R(U,F)的属性(组)X(X属于U)是另一个关系S的主码,则称X为R的外码。6.2.2范式关系数据库中的关系要满足一定的要求,满足不同程度要求的为不不同的范式。5NF4NFBCNF3NF2NF1NF第一范式第一范式:若关系模式R中的所有属性都是不可分的基本数据项,则R∈1NF第二范式2.第二范式:如果R(U,F)∈1NF,并且R中的每个非主属性都完全函数依赖于主码,则R(U,F)∈2NF例:S-L-C(Sno,Sdept,SLOC,Cno,Grade)有:SnoP→SLOC,不是2NF。分解办法首先,对于组成主码的属性集合的每一个子集,用它作为主码构成一个表。然后,将依赖于这些主码的属性放置到相应的表中。最后,去掉只由主码的子集构成的表。分解示例对于S-L-C表,首先分解为如下形式的三张表:

S-L(Sno,…)

C(Cno,…)

S-C(Sno,Cno,…)然后,将依赖于这些主码的属性放置到相应的表中

S-L(Sno,Sdept,Sloc)

C(Cno)

S-C(Sno,Cno,Grade)最后,去掉只由主码的子集构成的表,最终分解为:S-L(Sno,Sdept,Sloc)S-C(Sno,Cno,Grade)

S-L(Sno,Sdept,Sloc)存在问题数据冗余:有多少个学生就有多少个重复的Sdept和SLOC;插入异常:当新建一个系时,若还没有招收学生,则无法插入;第三范式

定义:如果R(U,F)∈2NF,并且所有非主属性都不传递依赖于主码,则R(U,F)∈3NF。3NF基本上能消除冗余和更新异常对S-L(Sno,Sdept,SLOC)∵Sno传递→SLOC,∴不是3NF分解过程对于不是候选码的每个决定因子,从表中删去依赖于它的所有属性;新建一个表,新表中包含在原表中所有依赖于该决定因子的属性;将决定因子作为新表的主码。S-L分解后的关系模式为:S-D(Sno,Sdept)S-L(Sdept,Sloc)BCNF定义:若R∈1NF,并且对于每一个非平凡函数依赖X

Y,X必含有码,则R∈BCNF。结论: 所有非主属性都完全函数依赖于每个码 所有主属性都完全函数依赖于每个不包含它的码 没有任何属性完全函数依赖于非码的任何一组属性3NF与BCNF的关系?第四范式多值依赖定义:设R(U)是属性集U上的一个关系模式,X,Y,Z是U的子集,Z=U-X-Y,若R(U)的任意一个关系,对于(X,Z)的每个值,存在Y的一组值与其对应,且Y的这组值仅仅决定于X值而与Z值的无关,则:

Z为空时,称XY为平凡的多值依赖

Z非空时,称XY为非平凡的多值依赖Teach(C,T,B)C

BC

TWMP(W,M,P)多值依赖第四范式定义:若R∈1NF,并且对于每一个非平凡多值依赖X

Y(Y不被X包含),X必含有码,则R∈4NF。BCNF与4NF的关系?WMP(W,M,P)WM(W,M)WP(W,P)投影分解∈4NF6.3关系模式的规范化一、关系模式规范化的步骤1NF

消除非主属性对码的部分函数依赖2NF

消除非主属性对码的传递函数依赖3NF

消除主属性对码的部分和传递函数依赖BCNF

消除非平凡且非函数依赖的多值依赖4NF

消除不是由候选码所蕴含的连接依赖5NF*消除决定属性集非码的非平凡函数依赖6.3关系模式的规范化二、关系模式的分解定义:关系模式R(U,F)的分解就是用一组关系模式R1(U1,F1),R2(U2,F2)…,Rn(Un,Fn)来取代R,其中U=U1∪U2∪…∪Un,且不存在Ui

Uj,Fi为F在Ui上的投影。分解后的关系模式应与原关系模式等价无损连接的分解不丢失信息,且定能达到4NF

保持函数依赖的分解减轻异常,且定能达到3NF

既保持函数依赖又无损连接的分解定能达到3NF二、关系模式的分解6.3关系模式的规范化例:在一个选课系统中,假设每个学生可以选多门课,但在一门课中只能选一位老师;每门课可以由多个老师授课,每位老师可授多门课。下表给出的关系SC用于描述选课系统。Sno学号Cno课程号Ctitle课程名Iname教师姓名Iloca教师住址Grade成绩80152C1OS王平D17080153C2DB李雨D28580154C1OS王平D18680154C3AI刘键中D37280155C4CL李雨D2926.3关系模式的规范化问:关系SC为第几范式?是否存在插入、删除异常?若存在,则说明是什么情况下发生?发生的原因是什么?将它分解为高一级范式,分解后的关系能否解决操作异常问题?(1)本关系中所有的键均不可再分,因此,本关系符合1NF。由题意,本关系的主键为:(Sno,Cno,Iname)。本关系中有如下函数依赖:

Cno→Ctitle、Iname→Iloca

因此,此关系中存在部分函数依赖,故此关系不符合2NF。由此可知,此关系为1NF。6.3关系模式的规范化(2)本关系存在插入异常和删除异常。如果系统中需新增教师、课程均会发生插入异常。因为此时无法确定选课的学生,因此插入的学号将为空,系统会因为主键为空而出错。按上图如果删除第2、4或5行,均会发生删除异常。因为在删除这些行后,相应的课程和教师的信息也被删除了。6.3关系模式的规范化(3)将上面的关系分解为如下三个关系可符合2NF及3NF。Sno学号Cno课程号Iname教师姓名Grade成绩80152C1王平7080153C2李雨8580154C1王平8680154C3刘键中7280155C4李雨92选课Cno课程号Ctitle课程名C1OSC2DBC3AIC4CLIname教师姓名Iloca教师住址王平D1李雨D2刘键中D3课程教师这个分解后的关系可解决操作异常问题。

小结3NF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论