关系数据理论演示文稿_第1页
关系数据理论演示文稿_第2页
关系数据理论演示文稿_第3页
关系数据理论演示文稿_第4页
关系数据理论演示文稿_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

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

文档简介

关系数据理论演示文稿当前1页,总共99页。(优选)第关系数据理论当前2页,总共99页。6.1关系模式设计问题6.2函数依赖(FD)6.3*多值依赖(MD)6.4关系模式的范式(1NF、2NF、3NF、BCNF、*4NF)6.5关系模式的分解特性第六章关系数据理论3当前3页,总共99页。了解:关系规范化理论及其作用理解:FD、范式、无损连接性、保持函数依赖性的概念。掌握:关系模式的范式判断,并运用理论进行3NF模式分解第六章关系数据理论【要求】4当前4页,总共99页。6.1关系模式设计问题6.1.1问题的提出6.1.2关系模式的形式化定义6.1.3关系模式的简化定义6.1.4数据依赖5当前5页,总共99页。6关系数据库逻辑设计针对具体问题,如何构造一个满足用户需求的数据模式数据库逻辑设计的依据关系数据库的规范化理论问题的提出当前6页,总共99页。1)关系数据库设计的核心:关系模式设计如何构造一个关系模式?应构造几个关系模式?每个关系模式由那些属性组成?2)关系模式的设计按照一定的原则从数量众多而又相互关联的数据中,构造出一组既能较好地反映现实世界,而又有良好的操作性能的关系模式。3)关系模式优劣,如何评价,如何改进?2、关系模式的评价问题的提出7当前7页,总共99页。例:设计一个关系数据模型,存放学生各门课考试成绩。1)CJ(SNO,SNAME,CNO,CNAME,GRADE)2)CJ(SNOSNAMECNOGRADE)

COURSE(CNO,CNAME)1、如何设计一个合理的关系数据库模式?8问题的提出当前8页,总共99页。3、关系模式的冗余和异常问题在数据管理中,数据冗余是影响系统性能的大问题。数据冗余是指同一个数据在系统中多次重复出现文件系统中的文件之间没有联系,引起一个数据在多个文件中出现。DBS克服了文件系统的这种缺陷,但不能完全消除数据冗余。如果一个关系模式设计得不好,仍然会出现像文件系统一样的数据冗余、异常、不一致等问题。9问题的提出当前9页,总共99页。问题分析:CJ(SNOSNAMECNOCNAMEGRADE)6.1.1问题的提出10(1)数据冗余。如果一门课有多个学生选修,在关系中要出现多个元组。当前10页,总共99页。CJ(SNOSNAMECNOCNAMEGRADE)6.1.1问题的提出11(2)操作异常。由于数据的冗余,引起数据操作异常1)修改异常(UpdateAnomalies):产生不一致现象。2)插入异常(InsertionAnomalies)。如安排一门新课程(C4,计算机),在尚无学生选修时,在属性Sno上就会出现空值3)删除异常(DeletionAnomalies)。如果要删除学生9901选课元组,那么就要把这门课程的课程号和课程名和姓名一起删除当前11页,总共99页。问题分析:

冗余度高修改困难插入异常删除异常产生问题的原因:属性间约束关系(即数据间的依赖关系)太强CJ(SNOSNAMECNOCNAMEGRADE)6.1.1问题的提出12当前12页,总共99页。4、什么是关系数据库设计理论?解决如何设计好一个关系数据模式的问题

1.怎样评价关系模式的优劣

2.怎样将关系模式分解为一组较理想的关系模式理解数据库语义学的重要内容它借助近代代数工具,提出了一整套严密的理论和实用算法,把抽象的数学理论和具体的实际问题结合起来关系数据库设计的理论基础:数据的依赖(数据的相关性)问题的提出13当前13页,总共99页。、关系模式的形式化定义关系模式由五部分组成,即它是一个五元组:

R(U,D,DOM,F)R:关系名U:组成该关系的属性名集合D:属性组U中属性所来自的域DOM:属性向域的映象集合F:属性间数据的依赖关系集合14当前14页,总共99页。例:R(U,D,DOM,F)已知U={A,B,C}DOM(A)={l,2},DOM(B)={X,Y},DOM(C)={1,2}。问下列关系中哪些属于该模式?ABC1X2BCAX21X12BCA1X2X12ABC1X22Y11X2r1、r2是15当前15页,总共99页。关系模式R(U,D,DOM,F)简化为一个三元组:

R(U,F)当且仅当U上的一个关系r

满足F时,r称为关系模式R(U,F)的一个关系关系模式的简化定义16当前16页,总共99页。6.1.4数据依赖在数据库中,数据之间存在着密切的联系(数据的相关性)1、完整性约束的表现形式主码约束:实体完整性外码约束:参照完整性限定属性取值范围:例如学生成绩必须在0-100之间定义属性值间的相互关连(主要体现于值的相等与否),这就是数据依赖,是数据库模式设计的关键Ssdept系主任专业学院B99张艳计算机信息B98吴林计算机信息C99何杉控制自动化…………17当前17页,总共99页。是通过一个关系中属性间值的相等与否体现数据间的相互关系是现实世界属性间相互联系的抽象是数据内在的性质是语义的体现2、数据依赖SnoCnoGradeCnameTname9901C190数学李红9902C180数学李红9902C270英语钱程9903C368物理张扬6.1.4什么是数据依赖18当前18页,总共99页。3、数据依赖的类型函数依赖(FunctionalDependency,简记为FD)多值依赖(MultivaluedDependency,简记为MVD)其他6.1.4什么是数据依赖19当前19页,总共99页。6.2.函数依赖6.2.1函数依赖6.2.2平凡函数依赖与非平凡函数依赖6.2.3完全函数依赖与部分函数依赖6.2.4传递函数依赖6.2.5函数依赖集与关系模式20当前20页,总共99页。在关系模式中,属性之间可能存在着决定关系,如:1)每个客户都只有唯一的股东代码。客户股东代码就决定了客户姓名以及其他属性,属性间的这种决定关系可理解为:只要客户股东代码相同,客户姓名就一定相同;2)每个学生只有一个学号,学号决定了该学生的姓名、所在系等;每个学生所学的每门课程只能有一个总评成绩…6.2.1函数依赖(FunctionalDependency)21当前21页,总共99页。一、函数依赖(FunctionalDependency)在关系模式中,有些属性之间不存在这种决定关系如:1)在客户类别和年龄之间;2)学生年龄与所在系22当前22页,总共99页。用函数依赖这一术语表示属性间的这种决定关系有一个X值就有一个Y值与之对应,或者说Y值由X值决定。因而这种依赖称为函数依赖。

Y=f(X)函数依赖是数据依赖的一种,它反映属性或属性组之间互相依存,互相制约的关系,即反映现实世界的约束关系。1、函数依赖的概念6.2.1函数依赖(续)23当前23页,总共99页。24说明:

1.)函数依赖要求R的所有关系实例均要满足的约束条件2)函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。例如“姓名→年龄”只在不允许有同名人的条件下成立3)数据库设计者可以对现实世界作强制的规定当前24页,总共99页。定义6.1

设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”

或“Y函数依赖于X”,记作X→Y。

X称为这个函数依赖的决定属性集(Determinant)。

t(X)=s(X)t(Y)=s(Y)2、函数依赖的定义6.2.1函数依赖(续)25当前25页,总共99页。Sno→SnameSno→SsexSno→SdeptSno→Sage6.2.1函数依赖(续)26SnoSnameSsexSageSdept当前26页,总共99页。Cno→CnameCno→CpnoCno→Ccredit6.2.1函数依赖(续)27CnoCnameCpnoCcredit当前27页,总共99页。(Sno,Cno)→Grade关系r中不存在两个元组,它们在X上的属性值相同,而在Y上的值不相同。即:对于当前关系r的任意两个元组,如果X值相同,则要求Y值也相同6.2.1函数依赖(续)28SnoCnoGrade当前28页,总共99页。296.2.1函数依赖(续)3、关于函数依赖的说明(1)函数依赖反映属性之间的一般规律,不是关系模式R的某个或某些关系实例满足的约束条件,而是R的所有关系实例均要满足的约束条件。当且仅当U上的一个关系r满足F时,r称为关系模式R(U,F)的一个关系如:U={ABC},F={A→B,C→B},则(U,F)构成关系R的模式。若r是关系模式R(U,F)上的关系,是指对于任意t(t∈r),均满足函数依赖集F。当前29页,总共99页。例:设R(U,F)是选修关系模式U={学号,课号,成绩}F={(学号,课号)→成绩}下列关系是否是R(U,F)的关系?95002C18095003C27595002C28595002C18095002C17595003C285rl是,r2否6.2.1函数依赖(续)30当前30页,总共99页。rl是,r2否6.2.1函数依赖(续)例:设Dl=D2=D3={1,2,3}U={A,B,C}F={A→B,B→C}试判断下列关系中哪些是R(U,F)的关系,哪些不是。ABC123211323ABC113312123ABC121321221ABC12321341231当前31页,总共99页。(2)函数依赖由属性的语义决定,属于语义范畴,即:由现实信息系统环境决定如:允许客户在不同的券商中设立帐户,进行委托交易,股票数量由三个属性,股东代码,股票代码,券商名称所决定。股东代码券商名称

股票代码数量75632801君安证卷600207100075632801北京证卷600207200075632801南方证卷600289200075632802北京证卷600882150075612803君安证卷60083930006.2.1函数依赖(续)32当前32页,总共99页。6.2.1函数依赖(续)33(3)函数依赖与函数的区别1)在数学中,函数值通常可通过数学式计算,与时间无关;而函数依赖的决定性(右部的值)可以随时间改变例如,在(股东代码,股票代码)→股票数量的函数依赖中,随着某些股票被卖出,拥有数量随之下降。2)函数依赖只强调决定性(属性值相同),不意味着能通过决定因素计算出函数依赖右部的值。(4)数据库设计者可以对现实世界作强制的规定。例如,函数依赖“姓名→年龄”当前33页,总共99页。设X、Y均是U的子集

1)X和Y间联系是1:1,则X→Y,Y→X

2)X和Y间联系是M:1(M>1),则X→Y

3)X和Y间联系是M:N(M,N>1),则X、Y之间不存在函数依赖

4、属性间的联系决定函数依赖关系6.2.1函数依赖(续)34当前34页,总共99页。例:设一名学生可上若干门课,并在一个系注册,每个系只有一个办公地点,模式的属性集如下:学号Sno,课号Cno,所在系Sdept,办公地点Splace,考试成绩Grade。该模式中的函数依赖(FD)为:(Sno,Cno)→GradeSno→Sdept,Sdept→Splace

6.2.1函数依赖(续)35当前35页,总共99页。考虑:1)每门课程可有多位教师。一位教师只能教一门课2)每门课程可有多位教师。一位教师能教多门课(sno,cno)→tno例:SCT(Sno,Cno,Tno,Sname,Grade,Cname,Tname)若每门课程只有一位教师,则Sno→Sname,Cno→Cname,(Sno,Cno)→Grade

Cno→(Cname,Tno)Tno→Tname6.2.1函数依赖(续)36当前36页,总共99页。5、函数依赖图(FD图)关系中函数依赖关系可以用函数依赖图表示例:关系模式SCT(sno,cno,tno,sname,grade,cname,tname)的FD图snocnotnogradetnamesnamecname关系模式SCT函数依赖图6.2.1函数依赖(续)37当前37页,总共99页。6、函数依赖对关系模式的影响例:描述学生的数据库:学号(Sno)、所在系(Sdept)、系主任姓名(Mname)、课程名(Cname)、成绩(Grade单一的关系模式:Student<U、F>U={Sno,Sdept,Mname,Cname,Grade}snosdeptMnameCnamegrade9901IS李洋数据库889902IS李洋数据库789903CS张东数据库699904IS李洋信息系统75……………6.2.1函数依赖(续)38当前38页,总共99页。属性组U上的一组函数依赖F:F={Sno→Sdept,Sdept→Mname,(Sno,Cname)→Grade}SnoCnameSdeptMnameGrade

语义:

1)一个系有若干学生,一个学生只属于一个系;

2)一个系只有一名主任;

3)一个学生可以选多门课,每门课有若干学生选修;

4)每个学生所学的每门课程都有一个成绩。6.2.1函数依赖(续)39当前39页,总共99页。结论:Student关系模式不是一个好的模式。原因:由存在于模式中的某些数据依赖引起解决方法:通过分解关系模式来消除其中不合适的数据依赖“好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少。6.2.1函数依赖(续)40当前40页,总共99页。6.2.2平凡函数依赖与非平凡函数依赖定义:在关系模式R(U)中,对于U的子集X和Y,如果X→Y,但YX,则称X→Y是非平凡的函数依赖.若X→Y,但YX,则称X→Y是平凡的函数依赖例:在关系SC(Sno,Cno,Grade)中,非平凡函数依赖:(Sno,Cno)→

Grade

平凡函数依赖:(Sno,Cno)→

Sno(Sno,Cno)→Cno41当前41页,总共99页。对于任一关系模式,平凡函数依赖都是必然成立的。不可能在一个关系中存在两个元组,在X上相等,而在X的某个子集上不相等。它不反映新的语义,只有非平凡的FD才和“真正的”完整性约束条件相关因此若不特别声明,总是讨论非平凡函数依赖。SnoSnameSsexSageSdept95001李勇男20CS95002刘晨女19IS95003王名男18MA95004张立女19IS6.2.2平凡与非平凡函数依赖(续)42当前42页,总共99页。6.2.3完全函数依赖与部分函数依赖(续)

定义:在关系模式R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’→Y,则称Y完全函数依赖于X,记作Xf

Y。若X→Y,但Y不完全函数依赖于X,则称Y部分函数依赖于X,记作XPY。通俗地说:XPY,就是X的一部分就能决定Y。43当前43页,总共99页。1)当决定因素是单属性时,无非空真子集,因此,肯定是完全函数依赖集。2)当决定因素是多属性时,须根据语义进行判断如:在关系SC(Sno,Cno,Sdept,Grade)中,{Sno,Cno}有两个非空真子集{Sno},{Cno},根据对模式属性语义的规定,它们均不能分别决定考试成绩。Sno→Grade,Cno→Grade,(Sno,Cno)fGrade成立。(Sno,Cno)→Sdept是部分函数依赖。6.2.3完全函数依赖与部分函数依赖44当前44页,总共99页。如果规定,每个学号只能有一个学生姓名,每个课程号对应一门课程,每门课程不只一位教师。每个教师只教一门课程该模式的FD如下:Sno→Sname

tname→cno

cno→cname

tname→Tage

(sno,cno)→grade例:R(Sno,Sname,Cno,Cname,Grade,Tname,Tage)6.2.3完全函数依赖与部分函数依赖(续)45当前45页,总共99页。6.2.4传递函数依赖定义:在关系模式R(U)中,如果X→Y,Y→Z,且YX,Y→X,则称Z传递函数依赖于X。注:(1)如果Y→X,即X←→Y,则Z直接依赖于X。(2)Y不包含于X:该条件排除了部分函数依赖是传递函数依赖的可能。

(3)可能出现Z是X子集的传递函数依赖。如:(A,B,C)→(C,D),(C,D)→A

构成了一个传递函数依赖(A,B,C)t→A。考虑:(A,B,C)→(B,C),(B,C,)→A46当前46页,总共99页。例:在关系Std(Sno,Sdept,Mname)中,有:

Sno→Sdept,Sdept→MnameMname传递函数依赖于Sno6.2.4传递函数依赖(续)47当前47页,总共99页。例:设关系R(A,B,C,D),满足下列函数依赖集F。判定F函数依赖集中,哪些是部分函数依赖?哪些是传递函数依赖?哪些是完全函数依赖?F={AB→C,D→BC,B→C,BC→A,C→B,D→A}AB→C是部分函数依赖(因为有:B→C)

D→BC是完全函数依赖B

C互为完全函数依赖(B→C,C→B)C→A是完全函数依赖D→A是完全函数依赖

AB→B是平凡的函数依赖(因为有:AB→C、C→B)D→A是传递函数依赖(因为有:D→BC、BC→A)48当前48页,总共99页。例:设客户模式由以下属性构成:客户(股东代码,姓名,类别,年龄,客户帐号,营业部)。试确定该模式的函数依赖集。规定:(1)每个客户只有一个股东代码【确定主码】(2)每个客户在指定营业部只能开设一个帐号(3)可在多个营业部进行交易解:股东代码→(姓名,客户类别,年龄)(股东代码,营业部)→客户帐号客户帐号→股东代码

6.2.4传递函数依赖(续)49当前49页,总共99页。1、关系模式R(U,D,DOM,F)简化为一个三元组:R(U,F)(1)当R(U)确定,符合R(U)的所有关系是Dl×D2×…×Dn的笛卡尔积子集。(2)当R(U,F)确定以后,符合R(U,F)的所有关系只是Dl,D2,…,Dn的笛卡尔积的部分子集、即那些满足函数依赖集的D1×D2×…×Dn的子集。6.2.5函数依赖集与关系模式50当前50页,总共99页。2、码定义:设K为关系模式R<U,F>中的属性或属性组合。若KfU,则K称为R的一个侯选码(CandidateKey)。若关系模式R有多个候选码,则选定其中的一个做为主码(Primarykey)主属性与非主属性ALLKEY6.2.5函数依赖集与关系模式(续)51当前51页,总共99页。1)对于任意r∈R(u),若X是R(U)的码,则对任何t,s∈r,有t(x)≠s(x)(t≠s)

码在关系R中是唯一的。如:{股东代码}是唯一区分股东的属性,构成码2)若X是码,则X→U是完全函数依赖,这是码的最小性。它的任一真子集都不构成码。如:{学号,课号,系}不构成码说明:6.2.5函数依赖集与关系模式52当前52页,总共99页。6.2.5函数依赖集与关系模式3)X是码的充分必要条件是:X完全函数决定关系中的所有属性4)一个关系模式至少存在一个码,也可能存在多个码,称侯选码,并且选定其中的一个作为主码如:股票关系表中增加客户帐号属性,并规定每个客户只能设立一个帐号。则存在两个码:股东代码和客户帐号53当前53页,总共99页。R(Sno,Sname,Cno,Grade,Cname,Tname,Tage)若:每个学生每学一门课只有一个成绩;每个学生只有一个姓名;每个课程号只有一个课程名;每门课程不只一位任课教师。根据规则,可确定(Sno,Cno)能函数决定R的全部属性,是一个码。(Sno,Cno)→(Sname,Grade,Cname,Tname,Tage)Sno→Sname,Cno→Cname,(Sno,Cno)→Grade(Sno,Cno)→(Tname,Tag),Tname→Tage例:在学生选课、教师任课的关系模式中:6.2.5函数依赖集与关系模式54当前54页,总共99页。3、外码定义:

关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码(Foreignkey)也称外码主码又和外部码一起提供了表示关系间联系的手段。6.2.5函数依赖集与关系模式:55当前55页,总共99页。6.4关系模式的范式范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。范式的种类:

第一范式(1NF)

第二范式(2NF)

第三范式(3NF) BC范式(BCNF)

第四范式(4NF)*

第五范式(5NF)*56当前56页,总共99页。各种范式之间存在联系:某一关系模式R为第n范式,简记为R∈nNF。6.4关系模式的范式57当前57页,总共99页。6.4.11NF1NF的定义如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。第一范式是对关系模式的最起码的要求。不满足1NF的表不属于关系在关系数据库中不允许这种表存在。但是满足第一范式的关系模式并不一定是一个好的关系模式。58当前58页,总共99页。例1:A1,A2,A3,…,Ak,…,An

Ak1Ak2例2:工资(工号,姓名,工资(基本工资,年绩津贴,煤电补贴))△转化方法:1)A1,A2,A3,…,Ak1,Ak2,…,An2)工资(工号,姓名,基本工资,津贴,奖金)6.4.11NF(续)59当前59页,总共99页。6.4.22NF(续)例:关系模式SLC(Sno,Sdept,Sloc,Cno,Grade)Sloc为学生住处,假设每个系的学生住在同一个地方主键:(Sno,Cno)函数依赖包括:

(Sno,Cno)fGradeSno→Sdept(Sno,Cno)PSdeptSno→Sloc(Sno,Cno)PSlocSdept→Sloc60当前60页,总共99页。SLC的码为(Sno,Cno)SLC满足第一范式。非主属性Sdept和Sloc部分函数依赖于码(Sno,Cno)SnoCnoGradeSdeptSlocSLC6.4.22NF(续)(1)插入异常未选课学生无法插入(2)删除异常删除选课信息将导致该学生信息整个元组删除(3)数据冗余度大(4)修改复杂学生转系,修改K个元组中全部Sdept、Sloc信息61当前61页,总共99页。函数依赖图:SnoCnoGradeSCSLSnoSdeptSloc原因:Sdept、Sloc部分函数依赖于码。解决方法:SLC分解为两个关系模式,以消除这些部分函数依赖

SC(Sno,Cno,Grade)

SL(Sno,Sdept,Sloc)6.4.22NF(续)62当前62页,总共99页。2NF的定义若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于R的码,则R∈2NF。例:SLC(Sno,Sdept,Sloc,Cno,Grade)∈1NFSLC(Sno,Sdept,Sloc,Cno,Grade)∈2NF分解:SC(Sno,Cno,Grade)∈2NFSL(Sno,Sdept,Sloc)∈2NF采用投影分解法将一个1NF的关系分解为多个2NF的关系,可在一定程度上减轻原1NF关系中存在的插、删异常,冗余大,修改复杂等问题6.4.22NF(续)63当前63页,总共99页。6.4.33NF上例:SC(Sno,Cno,Grade)∈2NFSL(Sno,Sdept,Sloc)∈2NFSL(Sno,Sdept,Sloc)中函数依赖:

Sno→SdeptSdept→SlocSno→SlocSloc传递函数依赖于Sno,即SL中存在非主属性对码的传递函数依赖。将一个1NF关系分解为多个2NF的关系,并不能完全消除关系模式中的各种异常情况和数据冗余。64当前64页,总共99页。解决方法采用投影分解法,把SL分解为两个关系模式,以消除传递函数依赖:SD(Sno,Sdept)DL(Sdept,Sloc)SD的码为Sno,DL的码为Sdept。6.4.33NF(续)SnoSdeptSDSdeptSlocDL65当前65页,总共99页。3NF的定义定义:关系模式R<U,F>

中若不存在这样的码X、属性组Y及非主属性Z(ZY),使得X→Y,Y→X,Y→Z,成立,则称R<U,F>∈3NF。例:SL(Sno,Sdept,Sloc)∈2NFSD(Sno,Sdept)∈3NFDL(Sdept,Sloc)∈3NF6.4.33NF(续)66当前66页,总共99页。若R∈3NF,则R的每一个非主属性既不部分函数依赖于主码也不传递函数依赖于主码。如果R∈3NF,则R也是2NF。采用投影分解将一个2NF的关系分解为多个3NF的关系,可以在一定程度上解决原2NF关系中存在的插、删、改异常,冗余大等问题但不能完全消除关系模式中的各种异常情况和数据冗余6.4.33NF(续)67当前67页,总共99页。例:学生数据库:学号(Sno)、所在系(Sdept)、系主任姓名(Mname)、课程名(Cname)、成绩(Grade)SMC(Sno,Sdept,Mname,Cname,Grade)语义:⒈一个系有若干学生,一个学生只属于一个系;⒉一个系只有一名主任;⒊一个学生可以选多门课,每门课有若干学生选修;⒋每个学生所学的每门课程都有一个成绩。

6.4.33NF(续)68当前68页,总共99页。

属性组U上的一组函数依赖F:

F={Sno→Sdept,Sdept→Mname,(Sno,Cname)→Grade}确定主键:(Sno,Cname)

SnoCnameSdeptMnameGrade6.4.33NF(续)69当前69页,总共99页。SC(Sno,Cname,Grade)SM(Sno,Sdept,Mname)SC(Sno,Cname,Grade)SD(Sno,Sdept)DM(Sdept,Mname)706.4.33NF(续)当前70页,总共99页。

6.4.33NF(续)71例:借书人的关系模式。BORROW(CardNo,Name,Addr,BookNo,Date)函数依赖集:F={(CardNo,BooKNo)→Date,CardNo→Name,Addr}CardNoNameAddrBookNoDateC01张三Addr1B011998.1.1C01张三Addr1B031998.2.5…C08李四Addr2B011998.3.2当前71页,总共99页。例如:BORROW关系中:Addr依赖于CardNo,ie:

CardNo→Name,Addr给定CardNo,必有一确定的Addr与之对应Date依赖于(CardNo,BooKNo),ieCardNo,BooKNo→Date给定CardNo和BooKNo,唯一可确定Date.CardNoNameAddrCardNoBookNoDateDateCardNoNameAddrBookNo当前72页,总共99页。6.4.33NF(续)BORROW(CardNo,Name,Addr,BookNo,Date)分解为:Person(CardNo,Name,Addr)∈3NFBorrowBook(CardNo,BookNo,Date)∈3NF当前73页,总共99页。S(Sno,Sname)T(Tno,Tname)C(Cno,Cname)STC(Sno,Tno,Cno,Grade)例:设计教学管理关系数据库模型假定:每一教师只教一门课。每门课由若干教师教,某一学生选定某门课,则确定教师

6.4.4BCNF74当前74页,总共99页。

关系SCT如果:每一教师只教一门课,则有:

(Sno,Cno)→Grade

(Sno,Tno)→Grade

Tno→Cno6.4.4BCNF(续)75当前75页,总共99页。1、定义:设关系模式R<U,F>∈1NF,如果对于R的每个函数依赖X→Y,若Y不属于X,则X必含有候选码,那么R∈BCNF,即:若R∈BCNF每一个决定属性集(因素)都包含(候选)码R中的所有属性(主、非主属性)都完全函数依赖于码,不存在决定因素不包含码的函数依赖BCNF范式和第三范式的区别在于:第三范式只对非主属性消除了操作异常;而BCNF范式则是针对U中任何属性,包括了主属性。

6.4.4BCNF(续)76当前76页,总共99页。

对于STC关系STC(Sno,Tno,Cno,Grade)F={Sno,Cno→Grade

,Tno→Cno,Sno,Cno→Tno}STC∈3NF(Sno,Cno)和(Sno,Tno)都可以作为候选码

Sno、Tno、Cno都是主属性STC∈BCNFTno→Cno,Tno是决定属性集,Tno不是候选码

6.4.4BCNF(续)77当前77页,总共99页。

6.4.4BCNF(续)78

将STC分解为二个关系模式:

SC(Sno,Cno,Grade)∈BCNF

TC(Tno,Cno)∈BCNF没有任何属性对码存在部分函数依赖和传递函数依赖当前78页,总共99页。2、BCNF的关系模式所具有的性质1)所有非主属性都完全函数依赖于每个码2)所有主属性都完全函数依赖于每个不包含它的码3)没有任何属性完全函数依赖于非码的任何一组属性BCNF满足3NF(BCNF∈3NF∈2NF∈1NF)如果R∈3NF,且R只有一个候选码,则R必属于BCNFBCNF范式是基于函数依赖集的最高级别的范式

6.4.4BCNF(续)79当前79页,总共99页。

6.4.4BCNF(续)80例判断下列关系模式的码,范式等级

U={A,B,C,D,E}

F={AB→C,BC→D,AB→E,BC→A,BED→BE}解:码为:AB,BC因为BED→BE是平凡函数依赖,除此以外其他的函数依赖的左部均包含码,所以该模式为BCNF范式。当前80页,总共99页。6.5.1关系规范化6.5.2关系模式的分解6.5.3关系模式分解的标准6.5关系模式的分解特性81当前81页,总共99页。6.5.1关系模式规范化(续)关系数据库的规范化理论是数据库逻辑设计的工具。规范化程度可以有多个不同的级别一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化规范化程度过低的关系不一定能够很好地描述现实世界,可能会存在插入异常、删除异常、修改复杂、数据冗余等问题82当前82页,总共99页。

1NF ↓消除非主属性对码的部分函数依赖消除决定属性2NF集非码的非平↓消除非主属性对码的传递函数依赖凡函数依赖3NF ↓消除主属性对码的部分和传递函数依赖

BCNF ↓消除非平凡且非函数依赖的多值依赖

4NF关系模式规范化的基本步骤6.5.1关系模式规范化(续)83当前83页,总共99页。规范化的基本思想所谓规范化实质上是概念的单一化:让一个关系描述一个概念、一个实体或者实体间的一种联系消除不合适的数据依赖将各关系模式达到某种程度的“分离”设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式并不是规范化程度越高的关系模式就越好6.5.1关系模式规范化(续)84当前84页,总共99页。6.5.2模式的分解关系模式R<U,F>的分解是指R为它的一组子集ρ={R1<U1,F1>,R2<U2,F2>,...Rk<Uk,Fk>}所代替的过程。即:把一个关系模式分解成若干个关系模式的过程关系模式分解的方法不是唯一的只有能够保证分解后的关系模式与原关系模式等价,分解方法才有意义85当前85页,总共99页。定义:设:Ul,U2,…,Un均包含于U,F是R(U,F)的函数依赖集,若模式Rl(U1,F1),R2(U2,F2),…,Rn(Un,Fn)满足如下条件:(1)U1∪

U2…∪Un=U(2)Fi分别是F在Ui(i=l,2,…,n)上的投影(3)不存在Ui包含于Uj(i≠j)(i,j=1,2,…,n)则称Rl(U1,F1),R2(U2,F2),…,Rn(Un,Fn)是R(U,F)的分解。记为ρ

={Rl(Ul,F1),R2(U2,F2),…,Rn(Un,Fn)}6.5.2模式的分解(续)86当前86页,总共99页。6.5.3关系模式分解的标准三种模式分解的等价定义1、分解要保持函数依赖2、分解具有无损连接性3、分解既要保持函数依赖,又要具有无损连接性87当前87页,总共99页。6.5.3关系模式分解的标准881、保持函数依赖的分解保留所有函数依赖,即保留了模式的语义。模式的语义是对模式所对应的关系集的限定。保持函数依赖不会因分解而丢失语义,这是分解的一个重要标准。若分解与原来模式R(U,F)相差甚远,原来在F中的函数依赖,分解后消失了。这种消失意味着丢掉了关于属性之间的语义联系。当前88页,总共99页。定义:设F是关系模式R的函数依赖集,

ρ={R1<U1,F1>,R2<U2,F2>,...Rk<Uk,Fk>}为R的一个分解,如果Fi=πRi(F)的并集(F1∪F2∪...∪Fk)≡F(i=1,2,…,k),则称分解ρ具有函数依赖保持性。保持函数依赖的分解对关系的约束是十分重要的。如果分解不能保持函数依赖,必须通过其他手段保持模式语义的完整性6.5.3关系模式分解的标准89当前89页,总共99页。例设R(U,F),U={学号,所在系,课号,成绩,姓名},F={(学号,课号)→成绩,学号→所在系,学号→姓名}。R(U,F)模式的一个分解P:

P:U1={学号,课号,成绩}Fl={(学号,课号)→成绩}U2={姓名,所在系},F2=空集。在分解P中,一个学生只能在一个系注册的语义消失了。这一语义在R(U,F)中是通过“学号→所在系”的函数依赖表现出来的。保持函数依赖的分解是:

P:Ul={学号,课号,成绩}Fl={(学号,课号)→成绩}U2={学号,所在系,姓名}F2={学号→所在系,学号→姓名}6.5.3关系模式分解的标准90当前90页,总共99页。912、无损连接分解在分解中,除希望保持函数依赖外,还希望分解不会出现数据失真。数据失真:对分解后的关系进行再连接后,所得到的关系不再是分解前的关系。能够保证连接后的关系等于分解前的关系称为无损连接分解。6.5.3关系模式分解的标准当前91页,总共99页。定义:设F是关系模式R的函数依赖集,

温馨提示

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

评论

0/150

提交评论