欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    关系数据理论优秀课件.ppt

    • 资源ID:78732053       资源大小:3.16MB        全文页数:83页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    关系数据理论优秀课件.ppt

    关系数据理论关系数据理论关系数据理论关系数据理论第1页,本讲稿共83页本章概要本章概要 前面已经讲述了关系数据库、关系模型的基本概念以及关系数据库的标准语言。如何使用关系模型设计关系数据库,也就是面对一个现实问题,如何选择一个比较好的关系模式的集合,每个关系又应该由哪些属性组成。这属于数据库设计的问题,确切地讲是数据库逻辑设计的问题,有关数据库设计的全过程将在第7章详细讨论。本章讲述关系数据库规范化理论,这是数据库逻辑设计的理论依据。要求了解规范化理论的研究动机及其在数据库设计中的作用,掌握函数依赖的有关概念,第一范式、第二范式、第三范式和BC范式的定义,重点掌握并能够灵活运用关系模式规范化的方法和关系模式分解的方法,这也是本章的难点。第2页,本讲稿共83页6.1 6.1 规范化问题的提出规范化问题的提出6.1.1 规范化理论的主要内容v关系数据库的规范化理论最早是由关系数据库的创始人E.F.Codd提出的,v后经许多专家学者对关系数据库理论作了深入的研究和发展,形成了一整套有关关系数据库设计的理论。第3页,本讲稿共83页6.1 6.1 规范化问题的提出规范化问题的提出 如何设计一个适合的关系数据库系统,关键是关系数据库模式的设计,一个好的关系数据库模式应该包括多少关系模式,而每一个关系模式又应该包括哪些属性,又如何将这些相互关联的关系模式组建一个适合的关系模型,这些工作决定了到整个系统运行的效率,也是系统成败的关键所在,所以必须在关系数据库的规范化理论的指导下逐步完成。关系数据库的规范化理论主要包括三个方面的内容:函数信赖范式(Normal Form)模式设计 其中,函数信赖起着核心的作用,是模式分解和模式设计的基础,范式是模式分解的标准。第4页,本讲稿共83页6.1.2 6.1.2 关系模式的存储异常问题关系模式的存储异常问题v数据库的逻辑设计为什么要遵循一定的规范化理论?v什么是好的关系模式?v某些不好的关系模式可能导致哪些问题?v下面通过例子进行分析:第5页,本讲稿共83页6.1.2 6.1.2 关系模式的存储异常问题关系模式的存储异常问题例如,要求设计教学管理数据库,其关系模式SCD如下:SCD(SNO,SNAME,AGE,DEPT,MNAME,CNO,GRADE)其中,SNO表示学生学号,SNAME表示学生姓名,AGE表示学生年龄,DEPT表示学生所在的系别,MNAME表示系主任姓名,CNO表示课程号,GRADE表示成绩。根据实际情况,这些数据有如下语义规定:1.一个系有若干个学生,但一个学生只属于一个系;2.一个系只有一名系主任,但一个系主任可以同时兼几个系的系主任;3.一个学生可以选修多门功课,每门课程可有若干学生选修;4.每个学生学习课程有一个成绩。在此关系模式中填入一部分具体的数据,则可得到SCD关系模式的实例,即一个教学管理数据库,如图6.1所示。第6页,本讲稿共83页6.1.2 6.1.2 关系模式的存储异常问题关系模式的存储异常问题图图6.1 6.1 关系关系SCDSCDSNOSNAMEAGEDEPTMNAMECNOGRADES1赵亦17计算机刘伟C190S1赵亦17计算机刘伟C285S2钱尔18信息王平C557S2钱尔18信息王平C680S2钱尔18信息王平C770S2钱尔18信息王平C170S3孙珊20信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思男自动化刘伟C193第7页,本讲稿共83页 根据上述的语义规定,并分析以上关系中的数据,我们可以看出:(SNO,CNO)属性的组合能唯一标识一个元组,所以(SNO,CNO)是该关系模式的主关系键。但在进行数据库的操作时,会出现以下几方面的问题。1.1.数数据据冗冗余余。每个系名和系主任的名字存储的次数等于该系的学生人数乘以每个学生选修的课程门数,同时学生的姓名、年龄也都要重复存储多次,数据的冗余度很大,浪费了存储空间。2.2.插插入入异异常常。如果某个新系没有招生,尚无学生时,则系名和系主任的信息无法插入到数据库中。因为在这个关系模式中,(SNO,CNO)是主关系键。根据关系的实体完整性约束,主关系键的值不能为空,而这时没有学生,SNO和CNO均无值,因此不能进行插入操作。另外,当某个学生尚未选课,即CNO未知,实体完整性约束还规定,主关系键的值不能部分为空,同样不能进行插入操作。第8页,本讲稿共83页6.1.2 6.1.2 关系模式的存储异常问题关系模式的存储异常问题3.3.删除异常删除异常 某系学生全部毕业而没有招生时,删除全部学生的记录则系名、系主任也随之删除,而这个系依然存在,在数据库中却无法找到该系的信息。另外,如果某个学生不再选修C1课程,本应该只删去C1,但C1是主关系键的一部分,为保证实体完整性,必须将整个元组一起删掉,这样,有关该学生的其它信息也随之丢失。4.4.更新异常更新异常 如果学生改名,则该学生的所有记录都要逐一修改SNAME;又如某系更换系主任,则属于该系的学生记录都要修改MNAME的内容,稍有不慎,就有可能漏改某些记录,这就会造成数据的不一致性,破坏了数据的完整性。第9页,本讲稿共83页6.1.2 6.1.2 关系模式的存储异常问题关系模式的存储异常问题 由于存在以上问题,我们说,SCD是一个不好的关系模式。产生上述问题的原因,直观地说,是因为关系中“包罗万象”,内容太杂了。那么,怎样才能得到一个好的关系模式呢?我们把关系模式SCD分解为下面三个结构简单的关系模式,如图6.2所示。学生关系S(SNO,SNAME,AGE,DEPT)选课关系SC(SNO,CNO,GRADE)系关系D(DEPT,MNAME)第10页,本讲稿共83页S SCS SCS SCS SCSNOSNAMEAGEDEPTSNOCNOGRADES1赵亦17计算机S1C190S2钱尔18信息S1C285S3孙珊20信息S2C557S4李思21自动化S2C680S2C770D D D DS2C170DEPTMNAMES3C10计算机刘伟S3C270信息王平S3C485自动化刘伟S4C193图图6.2 6.2 分解后的关系模式分解后的关系模式第11页,本讲稿共83页6.1.2 6.1.2 关系模式的存储异常问题关系模式的存储异常问题v在以上三个关系模式中,实现了信息的某种程度的分离,S中存储学生基本信息,与所选课程及系主任无关;D中存储系的有关信息,与学生无关;SC中存储学生选课的信息,而与学生的详细信息及系的有关信息无关。v与SCD相比,分解为三个关系模式后,数据的冗余度明显降低。当新插入一个系时,只要在关系D中添加一条记录。当某个学生尚未选课,只要在关系S中添加一条学生记录,而与选课关系无关,这就避免了插入异常。当一个系的学生全部毕业时,只需在S中删除该系的全部学生记录,而关系D中有关该系的信息仍然保留,从而不会引起删除异常。同时,由于数据冗余度的降低,数据没有重复存储,也不会引起更新异常。第12页,本讲稿共83页6.1.2 6.1.2 关系模式的存储异常问题关系模式的存储异常问题 经过上述分析,我们说分解后的关系模式是一个好的关系数据库模式。从而得出结论,一个好的关系模式应该具备以下四个条件:1.尽可能少的数据冗余。2.没有插入异常。3.没有删除异常。4.没有更新异常。第13页,本讲稿共83页6.1.2 6.1.2 关系模式的存储异常问题关系模式的存储异常问题 但要注意,一个好的关系模式并不是在任何情况下都是最优的,比如查询某个学生选修课程名及所在系的系主任时,要通过连接,而连接所需要的系统开销非常大,因此要以实际设计的目标出发进行设计 如何按照一定的规范设计关系模式,将结构复杂的关系分解成结构简单的关系,从而把不好的关系数据库模式转变为好的关系数据库模式,这就是关系的规范化。规范化又可以根据不同的要求而分成若干级别。我们要设计的关系模式中的各属性是相互依赖、相互制约的,这样才构成了一个结构严谨的整体。因此在设计关模式时,必须从语义上分析这些依赖关系。数据库模式的好坏和关系中各属性间的依赖关系有关,因此,我们先讨论属性间的依赖关系,然后再讨论关系规范化理论。第14页,本讲稿共83页6.2 6.2 函数依赖函数依赖6.2.16.2.1函数依赖的定义及性质函数依赖的定义及性质 关系模式中的各属性之间相互依赖、相互制约的联系称为数据依赖。数据依赖一般分为函数依赖、多值依赖和连接依赖。其中,函数依赖是最重要的数据依赖。函数依赖(Functional Dependency)是关系模式中属性之间的一种逻辑依赖关系。例如在上一节介绍的关系模式SCD中,SNO与SNAME、AGE、DEPT之间都有一种依赖关系。由于一个SNO只对应一个学生,而一个学生只能属于一个系,所以当SNO的值确定之后,SNAME,AGE,DEPT的值也随之被唯一的确定了。这类似于变量之间的单值函数关系。设单值函数Y=F(X),自变量X的值可以决定一个唯一的函数值Y。在这里,我们说SNO函数决定(SNAME,AGE,DEPT),或者说(SNAME,AGE,DEPT)函数依赖于SNO。第15页,本讲稿共83页6.2 6.2 函数依赖函数依赖6.2.1.16.2.1.1函数依赖的定义函数依赖的定义定义4.1设关系模式R(U,F),U是属性全集,F是U上的函数依赖集,X和Y是U的子集,如果对于R(U)的任意一个可能的关系r,对于X的每一个具体值,Y都有唯一的具体值与之对应,则称X函数决定Y,或Y函数依赖于X,记作XY。我们称X为决定因素,Y为依赖因素。当Y不函数依赖于X时,记作:X Y。当XY且YX时,则记作:X Y。对于关系模式SCDU=SNO,SNAME,AGE,DEPT,MNAME,CNO,GRADEF=SNOSNAME,SNOAGE,SNODEPT一个SNO有多个GRADE的值与其对应,因此GRADE不能唯一地确定,即GRADE不能函数依赖于SNO,所以有:SNO GRADE。但是GRADE可以被(SNO,CNO)唯一地确定。所以可表示为:(SNO,CNO)GRADE。第16页,本讲稿共83页6.2 6.2 函数依赖函数依赖有关函数依赖的几点说明:有关函数依赖的几点说明:1平凡的函数依赖与非平凡的函数依赖。当属性集Y是属性集X的子集时,则必然存在着函数依赖XY,这种类型的函数依赖称为平凡的函数依赖。如果Y不是X的子集,则称XY为非平凡的函数依赖。若不特别声明,我们讨论的都是非平凡的函数依赖。2函数依赖是语义范畴的概念。我们只能根据语义来确定一个函数依赖,而不能按照其形式化定义来证明一个函数依赖是否成立。例如:对于关系模式S,当学生不存在重名的情况下,可以得到:SNAMEAGESNAMEAGE,SNAMEDEPTSNAMEDEPT,这种函数依赖关系,必须是在没有重名的学生条件下才成立的,否则就不存在函数依赖了。所以函数依赖反映了一种语义完整性约束。第17页,本讲稿共83页6.2 6.2 函数依赖函数依赖3函数依赖与属性之间的联系类型有关。(1)在一个关系模式中,如果属性X与Y有1:1联系时,则存在函数依赖XY,YX,即X Y。例如,当学生无重名时,SNO SNAMESNO SNAME。(2)如果属性Y与X有1:m的联系时,则只存在函数依赖XY。例如,AGE,DEPT 与SNO之间均为1:m联系,所以有SNOAGESNOAGE,SNODEPTSNODEPT。(3)如果属性X与Y有m:n的联系时,则X与Y之间不存在任何函数依赖关系。例如,一个学生可以选修多门课程,一门课程又可以为多个学生选修,所以SNO与CNO之间不存在函数依赖关系。由于函数依赖与属性之间的联系类型有关,所以在确定属性间的函数依赖关系时,可以从分析属性间的联系类型入手,便可确定属性间的函数依赖。第18页,本讲稿共83页6.2 6.2 函数依赖函数依赖4函数依赖关系的存在与时间无关。因为函数依赖是指关系中的所有元组应该满足的约束条件,而不是指关系中某个或某些元组所满足的约束条件。当关系中的元组增加、删除或更新后都不能破坏这种函数依赖。因此,必须根据语义来确定属性之间的函数依赖,而不能单凭某一时刻关系中的实际数据值来判断。例如,对于关系模式S,假设没有给出无重名的学生这种语义规定,则即使当前关系中没有重名的记录,也只能存在函数依赖SNOSNAME,而不能存在函数依赖SNAMESNO,因为如果新增加一个重名的学生,函数依赖SNAMESNO必然不成立。所以函数依赖关系的存在与时间无关与时间无关,而只与数据之间的语义规定语义规定有关。第19页,本讲稿共83页6.2.1.2 6.2.1.2 函数依赖的基本性质函数依赖的基本性质1投影性。根据平凡的函数依赖的定义可知,一组属性函数决定它的所有子集。例如,在关系SCD中,(SNO,CNO)SNO和(SNO,CNO)CNO。2扩张性。若XY且WZ,则(X,W)(Y,Z)。例如,SNO(SNAME,AGE),DEPTMNAME,则有(SNO,DEPT)(SNAME,AGE,MNAME)。3合并性。若XY且XZ则必有X(Y,Z)。例如,在关系SCD中,SNO(SNAME,AGE),SNO(DEPT,MNAME),则有SNO(SNAME,AGE,DEPT,MNAME)。4分解性。若X(Y,Z),则XY且XZ。很显然,分解性为合并性的逆过程。由合并性和分解性,很容易得到以下事实:XA1,A2,,An成立的充分必要条件是XAi(i=1,2,n)成立。第20页,本讲稿共83页6.2.2 6.2.2 6.2.2 6.2.2 完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖完全函数依赖与部分函数依赖定义定义6.26.2 设关系模式R(U),U是属性全集,X和Y是U的子集,如果XY,并且对于X的任何一个真子集X,都有X Y,则称Y对X完全函数依赖(Full Functional Dependency),记作 X Y。如果对X的 某 个 真 子 集X,有 XY,则 称Y对X部分函数依赖(Partial Functional Dependency),记作X Y。例如,在关系模式SCD中,因为SNO GRADE,且CNO GRADE,所以有:(SNO,CNO)GRADE。而SNOAGE,所以(SNO,CNO)AGE。由定义6.2可知:只有当决定因素是组合属性时,讨论部分函数依赖才有意。当决定因素是单属性时,只能是完全函数依赖。例如,在关系模式S(SNO,SNAME,AGE,DEPT),决定因素为单属性SNO,有SNO(SNAME,AGE,DEPT),不存在部分函数依赖。第21页,本讲稿共83页6.2.3 6.2.3 6.2.3 6.2.3 传递函数依赖传递函数依赖传递函数依赖传递函数依赖定义定义6.36.3 设有关系模式设有关系模式R R(U U),),U U是属性全集,是属性全集,X X,Y Y,Z Z是是U U的子集,的子集,若若XYXY,但但Y Y X X,而而YZYZ(Y Y X X,Z Z Y Y),则则称称Z Z对对X X传传递递函函数数依依赖赖(Transitive Transitive Functional DependencyFunctional Dependency),记作:),记作:X X Z Z。如果如果YXYX,则,则X YX Y,这时称,这时称Z Z对对X X直接函数依赖直接函数依赖,而不是传递函数依赖。而不是传递函数依赖。例例如如,在在关关系系模模式式SCDSCD中中,SNODEPTNSNODEPTN,但但DEPTN DEPTN SNOSNO,而而DEPTNMNAMEDEPTNMNAME,则则有有SNO SNO MNAMEMNAME。当当表表中中有有IDNOIDNO列列的的情情况况下下,有有SNOIDNOSNOIDNO,IDNOSNOIDNOSNO,SNO SNO IDNOIDNO,IDNODEPTNIDNODEPTN,这时,这时DEPTNDEPTN对对SNOSNO是是直接函数依赖直接函数依赖,而不是传递函数依赖而不是传递函数依赖。综综上上所所述述,函函数数依依赖赖分分为为完完全全函函数数依依赖赖、部部分分函函数数依依赖赖和传传递递函函数数依依赖赖三三类类,它它们们是是规规范范化化理理论论的的依依据据和和规规范范化化程程度度的的准准则则,下下面面我我们们将将以以介介绍绍的的这这些些概概念念为基础,进行数据库的为基础,进行数据库的规范设计规范设计。第22页,本讲稿共83页6.3 范式范式 规范化的基本思想基本思想是消除关系模式中的数据冗余,消除数据依赖中的不合适的部分,解决数据插入、删除时发生异常现象。这就要求关系数据库设计出来的关系模式要满足一定的条件。我们把关系数据库的规范化过程中为不同程度的规范化要求设立的不同标准称为范式范式(Normal Form)。由于规范化的程度不同,就产生了不同的范式。满足最基本规范化要求的关系模式叫第一范式,在第一范式中进一步满足一些要求为第二范式,以此类推就产生了第三范式等概念。每种范式都规定了一些限制约束条件。第23页,本讲稿共83页6.3 6.3 范式范式范式的概念最早由E.F.Codd提出。从1971年起,Codd相继提出了关系的三级规范化形式,即第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。1974年,Codd和Boyce共同提出了一个新的范式的概念,即Boyce-Codd范式,简称BC范式。1976年Fagin提出了第四范式,后来又有人定义了第五范式。至此在关系数据库规范中建立了一个范式系列:1NF,2NF,3NF,BCNF,4NF,5NF,一级比一级有更严格的要求。各个范式之间的联系可以表示为:5NF 4NF BCNF 3NF 2NF 1NF5NF 4NF BCNF 3NF 2NF 1NF如图6.3所示。第24页,本讲稿共83页6.3 6.3 范式范式图图6.3 6.3 各种范式之间的关系各种范式之间的关系第25页,本讲稿共83页6.3.1 6.3.1 第一范式第一范式第一范式(First Normal Form)是最基本的规范形式,即关系中每个属性都是不可再分的简单项。定义6.4 如果关系模式R,其所有的属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式,简称1NF,记作R1NF。在第2章讨论关系的性质时,我们把满足这个条件的关系称为规范化关系。在关系数据库系统中只讨论规范化的关系,凡是非规范化的关系模式必须化成规范化的关系。每个规范化的关系都属于1NF,这也是它之所以称为“第一”的原因。第26页,本讲稿共83页6.3.1 6.3.1 第一范式第一范式 不不可可“表表中中有有表表”。满足此条件的关系称为规范化关系,否则称为非规范化关系。例如,在下表中,籍贯含有省、市县两项,出现了“表中有表”的现象,则为非规范化关系,而把籍贯分成省、市县两列,则为规范化关系。例姓名籍贯姓名省市县省市县张强吉林长春张强吉林长春王丽山西大同王丽山西大同第27页,本讲稿共83页 然而,一个关系模式仅仅属于第一范式是不适用的。在6.1节中给出的关系模式SCD属于第一范式,但其具有大量的数据冗余,具有插入异常、删除异常、更新异常等弊端。为什么会存在这种问题呢?让我们分析一下SCD中的函数依赖关系,它的关系键是(SNO,CNO)的属性组合,所以有:(SNOSNO,CNOCNO)GRADEGRADESNOSNAMESNOSNAME,(,(SNOSNO,CNOCNO)SNAMESNAMESNOAGESNOAGE,(,(SNOSNO,CNOCNO)AGEAGESNODEPTSNODEPT,(,(SNOSNO,CNOCNO)DEPTDEPTSNO MNAMESNO MNAME,(,(SNOSNO,CNOCNO)MNAME MNAME 第28页,本讲稿共83页我们可以用函数信赖图表示以上函数依赖关系,如图我们可以用函数信赖图表示以上函数依赖关系,如图6.46.4所示。所示。由此可见,在SCD中,既存在完全函数依赖,又存在部分函数依赖和传递函数依赖。这种情况往往在数据库中是不允许的,也正是由于关系中存在着复杂的函数依赖,才导致数据操作中出现了种弊端。克服这些弊端的方法是用投影运算将关系分解,去掉过于复杂的函数依赖关系,向更高一级的范式进行转换。SNAMEMNAMEGRADE图图图图6.4 SCD6.4 SCD6.4 SCD6.4 SCD中的函数依赖关系中的函数依赖关系中的函数依赖关系中的函数依赖关系SNOCNOPPftf第29页,本讲稿共83页关于键的定义关于键的定义关系的键:能唯一标识元组且不包括多余属性的属性集称为该关系的关系键。它具有唯一性(对于关系中任何两个元组其关系的键值是不同的)和最小性(组成关系键的属性集中任意一个属性都不能从属性集中去掉,否则将破坏唯一性。)候选键:当某关系中具有多个满足关系键特性的最小属性集,那么,我们把它们都称为该关系的候选键。主键:当一个关系中有多个候选键时从候选键中选择一个作为主键。一个关系只能有一个主键。主属性:包含在任何一个候选键中的属性叫主属性。非主属性:不包含在任何一个候选键中的属性叫非主属性。第30页,本讲稿共83页6.3.2 6.3.2 第二范式第二范式6.3.2.1 6.3.2.1 第二范式的定义第二范式的定义定义6.5 如果关系模式R1NF,且每个非主属性都完全函数依赖于R的每个关系键,则称R属于第二范式(Second Normal Form),简称2NF,记作R2NF。在关系模式SCD中,SNO,CNO为主属性,AGE,DEPT,SNAME,MNAME,GRADE均为非主属性,经上述分析,存在非主属性对关系键的部分函数依赖,所以SCD不属于2NF。而如图6.2所示的由SCD分解的三个关系模式S,D,SC,其中S的关系键为SNO,D的关系键为DEPT,都是单属性,不可能存在部分函数依赖。而对于SC,(SNO,CNO)GRADE。所以SCD分解后,消除了非主属性对关系键的部分函数依赖,S,D,SC均属于2NF。第31页,本讲稿共83页6.3.2 6.3.2 第二范式第二范式全码的概念:给出的关系模式TCS(T,C,S),一个教师可以讲授多门课程,一门课程可以为多个教师讲授,同样一个学生可以选听多门课程,一门课程可以为多个学生选听,TCS(T,C,S)三个属性的组合是关系键,T,C,S都是主属性,而无非主属性,所以也就不可能存在非主属性对关系键的部分函数依赖,TCS2NF。经以上分析,可以得到两个结论:1从1NF关系中消除非主属性对关系键的部分函数依赖,则可得 到2NF关系。2如果R的关系键为单属性,或R的全体属性均为主属性,则R2NF。第32页,本讲稿共83页6.3.2.2 2NF6.3.2.2 2NF规范化规范化 2NF规范化是指把1NF关系模式通过投影分解转换成2NF关系模式的集合。分解时遵循的基本原则就是“一事一地”,让一个关系只描述一个实体或者实体间的联系。如果多于一个实体或联系,则进行投影分解。下面以关系模式SCD为例,来说明2NF规范化的过程例6.1 将SCD(SNO,SN,AGE,DEPT,MN,CNO,GRADE)规范到2NF。由SNOSNAMESNOSNAME,SNOAGESNOAGE,SNODEPTSNODEPT,(,(SNOSNO,CNOCNO)GRADEGRADE,可以判断,关系SCDSCD至少描述了两个实体,一个为学生实体,属性有SNOSNO、SNAMESNAME、AGEAGE、DEPTDEPT、MNAMEMNAME;另一个是学生与课程的联系(选课),属性有SNOSNO、CNOCNO和GRADEGRADE。根据分解的原则,我们可以将SCDSCD分解成如下两个关系,如图6.5所示。第33页,本讲稿共83页SD(SNO,SNAME,AGE,DEPT,MNAME),描述学生实体;SC(SNO,CNO,GRADE),描述学生与课程的联系。SD SNOSNAMEAGEDEPTMNAMES1赵亦17计算机刘伟S2钱尔18信息王平S3孙珊20信息王平S4李思21自动化刘伟SCSC SNOCNOGRADES1C190S1C285S2C557S2C680S2C7S2C170S3C10S3C270S3C485S4C193图图6.5 6.5 关系关系SDSD和和SC SC 第34页,本讲稿共83页6.3.2.2 2NF6.3.2.2 2NF规范化规范化 对于分解后的两个关系SD和SC,主键分别为SNO和(SNO,CNO),非主属性对主键完全函数依赖。因此,SD2NF,SC2NF,而且前面已经讨论,SCD的这种分解没有丢失任何信息,具有无损连接性。分解后,SD和SC的函数依赖分别如图6.6和6.7所示。SNOSNAMESNOCNOGRADEAGEDEPTMNAME图图6.6 SD6.6 SD中的函数依赖关系中的函数依赖关系 图图6.7 SC6.7 SC中的函数依赖关系中的函数依赖关系 第35页,本讲稿共83页6.3.2.2 2NF6.3.2.2 2NF规范化规范化 1NF的关系模式经过投影分解转换成2NF后,消除了一些数据冗余。分析图6.5中SD和SC中的数据,可以看出,它们存储的冗余度比关系模式SCD有了较大辐度的降低。学生的姓名、年龄不需要重复存储多次。这样便可在一定程度上避免数据更新所造成的数据不一致性的问题。由于把学生的基本信息与选课信息分开存储,则学生基本信息因没选课而不能插入的问题得到了解决,插入异常现象得到了部分改善。同样,如果某个学生不再选修C1课程,只在选课关系SC中删去该该学生选修C1的记录即可,而SD中有关该学生的其它信息不会受到任何影响,也解决了部分删除异常问题。因此可以说关系模式SD和SC在性能上比SCD有了显著提高。第36页,本讲稿共83页6.3.2.3 2NF6.3.2.3 2NF的缺点的缺点 2NF的关系模式解决了1NF中存在的一些问题,2NF规范化的程度比1NF前进了一步,但2NF的关系模式在进行数据操作时,仍然存在着一些问题:1数据冗余。每个系名和系主任的名字存储的次数等于该系的学生人数。2插入异常。当一个新系没有招生时,有关该系的信息无法插入。3删除异常。某系学生全部毕业而没有招生时,删除全部学生的记录也随之删除了该系的有关信息。4更新异常。更换系主任时,仍需改动较多的学生记录。之所以存在这些问题,是由于在SCD中存在着非主属性对主键的传递依赖。分析SCD中的函数依赖关系,SNOSNAME,SNOAGE,SNODEPT,DEPTMNAME,SNO MNAME,非主属性MNAME对主键SNO传递依赖。为此,对关系模式SCD还需进一步简化,消除这种传递依赖,得到3NF。第37页,本讲稿共83页6.3.3 6.3.3 第三范式第三范式6.3.3.1 6.3.3.1 第三范式的定义第三范式的定义定义6.6 如果关系模式R2NF,且每个非主属性都不传递依赖于R的每个关系键,则称R属于第三范式(Third Normal Form),简称3NF,记作R3NF。第三范式具有如下性质:1如果R3NF,则R也是2NF。2如果R2NF,则R不一定是3NF。第38页,本讲稿共83页6.3.3.2 3NF6.3.3.2 3NF规范化规范化 3NF规范化是指把2NF关系模式通过投影分解转换成3NF关系模式的集合。和2NF的规范化时遵循的原则相同,即“一事一地”,让一个关系只描述一个实体或者实体间的联系。下面以2NF关系模式SD为例,来说明3NF规范化的过程。第39页,本讲稿共83页6.3.3.2 3NF6.3.3.2 3NF规范化规范化例6.2 将SD(SNO,SNAME,AGE,DEPT,MNAME)规范到3NF。分析SD的属性组成,可以判断,关系SD实际上描述了两个实体:一个为学生实体,属性有SNO,SNAME,AGE,DEPT;另一个是系的实体,其属性DEPT和MNAME。根据分解的原则,我们可以将SD分解成如下两个关系,如图6.8所示。S(SNO,SNAME,AGE,DEPT),描述学生实体;D(DEPT,MNAME),描述系的实体。第40页,本讲稿共83页6.3.3.2 3NF6.3.3.2 3NF规范化规范化S DSNOSNAMEAGEDEPTDEPTMNAMES1赵亦17计算机计算机刘伟S2钱尔18信息信息王平S3孙珊20信息自动化刘伟S4李思21自动化对于分解后的两个关系S S和D D,主键分别为SNOSNO和DEPTDEPT,不存在非主属性对主键的传递函数依赖。因此,S S 3NF3NF,D D 3NF3NF。图图6.8 6.8 关系关系S S和和D D 第41页,本讲稿共83页6.3.3.2 3NF6.3.3.2 3NF规范化规范化分解后,S和D的函数依赖分别如图6.9和6.10所示。SNOSNAMEDEPTAGEDEPTMNAME图图6.9 S6.9 S中的函数依赖关系图中的函数依赖关系图图图6.10 D6.10 D中的函数依赖关系图中的函数依赖关系图由以上两图可以看出,关系模式SD由2NF分解为3NF后,函数依赖关系变得更加简单,既没有非主属性对键的部分依赖,也没有非主属性对键的传递依赖,解决了2NF中存在的四个问题。第42页,本讲稿共83页6.3.3.2 3NF6.3.3.2 3NF规范化规范化1 1数据冗余降低。系主任的名字存储的次数与该系的学生人数无关,只在关系数据冗余降低。系主任的名字存储的次数与该系的学生人数无关,只在关系D D中存储一次。中存储一次。2 2不不存存在在插插入入异异常常。当当一一个个新新系系没没有有学学生生时时,该该系系的的信信息息可可以以直直接接插插入入到到关关系系D D中中,而而与与学学生生关关系系S S无无关。关。3 3不不存存在在删删除除异异常常。要要删删除除某某系系的的全全部部学学生生而而仍仍然然保保留留该该系系的的有有关关信信息息时时,可可以以只只删删除除学学生生关关系系S S中中的的相相关学生记录,而不影响系关系关学生记录,而不影响系关系D D中的数据。中的数据。4 4不不存存在在更更新新异异常常。更更换换系系主主任任时时,只只需需修修改改关关系系D D中中一一个个相相应应元元组组的的MNMN属属性性值值,从从而而不不会会出出现现数数据据的的不不一一致致现象。现象。SCDSCD规规范范到到3NF3NF后后,所所存存在在的的异异常常现现象象已已经经全全部部消消失失。但但是是,3NF3NF只只限限制制了了非非主主属属性性对对键键的的依依赖赖关关系系,而而没没有限制主属性对键的依赖关系。如果发生了这种依赖,仍有可能存在数据冗余、插入异常、删除异常和修改异常。有限制主属性对键的依赖关系。如果发生了这种依赖,仍有可能存在数据冗余、插入异常、删除异常和修改异常。这这时时,则则需需对对3NF3NF进进一一步步规规范范化化,消消除除主主属属性性对对键键的的依依赖赖关关系系,为为了了解解决决这这种种问问题题,BoyceBoyce与与CoddCodd共同提出了一个新范式的定义,这就是共同提出了一个新范式的定义,这就是Boyce-CoddBoyce-Codd范式,通常简称范式,通常简称BCNFBCNF或或BCBC范式。它弥补了范式。它弥补了3NF3NF的不足。的不足。第43页,本讲稿共83页6.3.4 BC6.3.4 BC范式范式6.3.4.1 BC范式的定义定义6.7 如果关系模式R1NF,且所有的函数依赖XY(Y X),决定因素X都包含了R的一个候选键,则称R属于BC范式(Boyce-Codd Normal Form),记作RBCNF。BCNF具有如下性质:1满足BCNF的关系将消除任何属性(主属性或非主属性)对键的部分函数依赖和传递函数依赖。也就是说,如果RBCNF,则R也是3NF。证明:采用反证法。设R不是3NF。则必然存在如下条件的函数依赖,XY(Y X),YZ,其中X是键属性,Y是任意属性组,Z是非主属性,Z Y,这样YZ函数依赖的决定因素Y不包含候选键,这与BCNF范式的定义相矛盾,所以如果RBCNF,则R也是3NF。第44页,本讲稿共83页6.3.4 BC6.3.4 BC范式范式2如果R3NF,则R不一定是BCNF。现举例说明。设关系模式SNCSNC(SNOSNO,IDNOIDNO,CN0CN0,GRADEGRADE),),其中SNOSNO代表学号,IDNO代表学生的身份证号,CNOCNO代表课程号,GRADEGRADE代表成绩。可以判定,SNC有两个候选键(SNOSNO,CNOCNO)和(IDNOIDNO,CNOCNO),),其函数依赖如下:SNO IDNOSNO IDNO(SNOSNO,CNOCNO)GRADEGRADE(IDNOIDNO,CNOCNO)GRADEGRADE。唯一的非主属性GRADEGRADE对键不存在部分函数依赖,也不存在传递函数依赖。所以SNCSNC 3NF3NF。但是,因为SNO IDNOSNO IDNO,即决定因素SNOSNO或IDNODNO不包含候选键,从另一个角度说,存在着主属性对键的部分函数依赖:(SNOSNO,CNOCNO)IDNOIDNO,(IDNOIDNO,CNOCNO)SNOSNO,所以SNSNC不是BCNFBCNF。正是存在着这种主属性对键的部分函数依赖关系,造成了关系SNCSNC中存在着较大的数据冗余,学生身份证号的存储次数等于该生所选的课程数。从而会引起修改异常。比如,当要更改某个学生的身份证号时,则必须搜索出现该身份证号的每个学生记录,并对其姓名逐一修改,这样容易造成数据的不一致问题。解决这一问题的办法仍然是通过投影分解进一步提高SNCSNC的范式等级,将SNCSNC规范到BCNFBCNF。第45页,本讲稿共83页6.3.4.2 BCNF6.3.4.2 BCNF规范化规范化BCNF规范化是指把3NF关系模式通过投影分解转换成BCNF关系模式的集合。下面以3NF关系模式SNC为例,来说明BCNF规范化的过程。例6.3将SNC(SNO,IDNO,CNO,GRADE)规范到BCNF。分析SNC数据冗余的原因,是因为在这一个关系中存在两个实体,一个为学生实体,属性有SNO、IDNO;另一个是选课实体,属性有SNO、CNO和GRADE。根据分解的原则,我们可以将SNC分解成如下两个关系:S1(SNO,IDNO)S1(SNO,IDNO),描述学生实体;S2(SNO,CNO,GRADE)S2(SNO,CNO,GRADE),描述学生与课程的联系。对于S1,有两个候选键SNO和IDNO,对于S2,主键为(SNO,CNO)。在这两个关系中,无论主属性还是非主属性都不存在对键的部分依赖和传递依赖,S1BCNF,S2BCNF。第46页,本讲稿共83页6.3.4.2 BCNF6.3.4.2 BCNF规范化规范化分解后,S1和S2的函数依赖分别如图6.11和6.12所示。SNOIDNOSNOCNOGRADE图图6.11 S16.11 S1中的函数依赖关系中的函数依赖关系 图图6.12 S26.12 S2中的函数依赖关系中的函数依赖关系 关系SNC转换成BCNF后,数据冗余度明显降低。学生的姓名只在关系S1中存储一次,学生要改名时,只需改动一条学生记录中的相应的SNAME值,从而不会发生修改异常。第47页,本讲稿共83页6.4 6.4 关系模式的规范化关系模式的规范化 到目前为止,规范化理论已经提出了六类范式(有关4NF和5NF的内容不再详细介绍)。各范式级别是在分析函数依赖条件下对关系模式分离程度的一种测度,范式级别可以逐级升高。一个低一级范式的关系模式,通过模式分解转化为若干个高一级范式的关系模式的集合,这种分解过程叫作关系模式的规范化(Normalization)。6.4.1 6.4.1 关系模式规范化的目的和原则关系模式规范化的目的和原则一个关系只要其分量都是不可分的数据项,就可称作规范化的关系,但这只是最基本的规范化。这样的关系模式是合法的。但人们发现有些关系模式存在插入、删除、修改异常、数据冗余等弊病。规范化的目的就是使结构合理,消除存储异常,使数据

    注意事项

    本文(关系数据理论优秀课件.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开