版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1要点关系规范化理论研究背景规范化(Normalization)理论1NF、2NF、3NF、BCNF、4NF等范式关系模式规范化的必要性及方法第六章关系数据理论26.1问题的提出问题提出:针对一个具体问题,如何构造合适的(更好的)数据模式,即如何更好地设计数据的逻辑结构?关系数据理论的研究背景关系模型建立在严格的数据理论基础上,并可向别的数据模型转换,因此常以关系模型为背景来讨论这个问题3背景知识数据模式(schema)数据库中全体数据的逻辑结构和特征描述,如数据记录的构成,数据间的联系,安全性、完整性要求等。常以某一种数据模型为基础关系模型的形式化定义:R(U,D,dom,F),本章简化为R(U,F)关系模型R的一个关系r:U上的一个关系r满足F属性组一组数据依赖4一个例子:学生-课程-成绩管理客观存在的事实一个系有若干学生,但一个学生只属于一个系;一个系只有一名负责人;一个学生可以选修多门课程,每门课程有若干学生选修;每个学生学习每一门课程有一个成绩设计如下单个模式属性组U={学号SNO,系名SDEPT,系负责人MN,课程名CNAME,成绩G}数据依赖该模式存在的问题?怎么改善这个模式?5问题和改进该模式存在的问题插入异常:一个系无学生或未安排课程时,无法存入系与负责人删除异常:删除一个系的所有学生信息时,系与负责人也丢失冗余太大:负责人姓名重复存入更新异常:当某系负责人更换时,须更新该系所有学生信息中的信息,更新不完全时,易造成数据不一致原因:数据依赖存在一些不合适的性质,需寻找更好的模式,如S(SNO,SDEPT,)SG(SNO,CNAME,G,
)DEPT(SDEPT,MN,)SNOCNOGSDEPTMN66.2规范化意图讨论一个关系属性间不同的依赖情况讨论如何根据属性间依赖关系来判定关系是否有某些不合适的性质数据依赖概念反映客观世界数据间的相互关联通过一个关系中属性间值的相等与否来体现两种重要的数据依赖函数依赖(FunctionalDependency,FD)多值依赖(MultivaluedDependency,MVD)76.2.1函数依赖定义1设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作术语和记号,但,则称是非平凡的函数依赖,但,则称是平凡的函数依赖若,则X叫做决定因素若,,则记作若Y不函数依赖于X,则记作8对函数依赖的说明换句话说:任何时候若某一关系中的两个元组中的X属性组的值相等,则元组中对应的属性组Y的值也相等,类似于函数概念,Y=f(X)需要指出的是:关系R中,如果属性组X是一个候选码或码,则属性组Y一定函数依赖于X(这与候选码的定义一致)事实上:如果关系R上有函数依赖XY,而属性X不是一个候选码,则R中可能存在一些数据冗余例如:R(Sno,Sdept,MN,Cname,Grade)中有函数依赖Sdept->MN,而Sdept并不是候选码,表中数据有大量冗余出现9函数依赖定义2在R(U)中,如果,并且对于X的任何一个真子集X’,都有,则称Y对X完全函数依赖,记作若,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作定义3在R(U)中,如果,(),,则称Z对X传递函数依赖,记作FP传递10116.2.2码用函数依赖的概念来定义码定义4设K为R(U,F)中的属性或属性组合,若则K为R的候选码(CandidateKey)。若候选码多于一个,则选定其中的一个为主码(PrimaryKey)相关术语包含在任何一个候选码中的属性,叫做主属性不包含在任何码中的属性,叫做非主属性整个属性组是码,称为全码F12码定义5关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码(ForeignKey),也称为外码★主码与外码提供了一个表示关系间联系的手段SC(Sno,Cno,Grade)Studen(Sno,Sname,….)Course(Cno,Cname,….)136.2.3范式范式:符合某种级别(条件、要求)的关系模式范式种类1NF,2NF,3NF,BCNF,4NF,5NF按级别(条件、要求)由低到高:通常称某一关系模式R为第几范式,记作R
xNF1NF2NF3NFBCNF4NF5NF141NF(FirstNormalForm)定义:关系R中每个分量都是不可分割的数据项,则R1NF说明:1NF是关系模式的基本要求举例:关系模式S-L-C(学号SNO,系SDEPT,住处SLOC,课程CNO,成绩G)是1NF15166.2.42NF定义:若R1NF,且每个非主属性完全依赖于码,则R2NF说明:不存在非主属性部分依赖于码的关系为2NF举例:关系模式
S-L-C(SNO,
SDEPT,SLOC,
CNO,
G)函数依赖图GSNOCNOSDEPTSLOC关系模式S-L-C是不是2NF?不是,因为SDEPT和SLOC部分依赖于码前面的实例是不是2NF?17不是2NF可能出现的问题插入异常某学生没有选课时,无法插入其系、住处等信息删除异常某学生所有的选课信息都删除后,其系、住处等信息也被删除修改复杂(更新异常)学生转系时,除了修改其系名外,还需修改其住处信息;另外,若该学生选修了多门课程,则其对应的重复存储的系、住处等信息需一一修改冗余同系的所有学生的住处信息重复存储,同一学生选多门课程时,其系、住处信息重复存储18解决办法模式分解依赖关系分析上例中的模式分解为下列两个模式,该模式是2NFSC(SNO,CNO,G)(SNO,CNO)GS-L(SNO,SDEPT,SLOC)SNOSDEPT,SNOSLOC,SDEPTSLOCGSNOCNOSDEPTSLOC19分解说明一个1NF,但非2NF的关系总是可以被分解成为一组2NF的关系规范化过程中通过一组投影运算消除部分依赖,建议作如下分解(第一步分解)已知关系R(A,B,C,D),(A,B)为主码,即(A,B)->C,(A,B)->D,且A->D,则将R分解成为两个投影:
R1(A,D),A为主码
R2(A,B,C),(A,B)为主码,A为外码 这样,R可以通过R1和R2的自然连接运算得以恢复,即满足分解的无损连接性206.2.53NF定义:若R2NF,且它的任何一个非主属性都不传递依赖于任何候选码,则R3NF说明:即不存在非主属性部分依赖和传递依赖于码的关系为3NF推论:不存在非主属性的模式为3NF上例中得到的关系模式是2NF
SC(SNO,CNO,G); S-L(SNO,SDEPT,SLOC);S-L中存在传递传递依赖,故该模式不是3NFSNOSDEPTSLOC21不是3NF可能存在的问题插入异常只有当知道某学生的系时才能插入其住处信息删除异常当删除某系对应的所有学生时,有关该系学生住处的信息也被删除掉了修改异常一个系及其住处信息重复出现,只更新一个元组中对应的系及其住处时可能导致数据不一致冗余同系学生的住处重复存储22解决方法继续模式分解如上例中的模式可分解为3NF
SC(SNO,CNO,G);(SNO,CNO)G S-D(SNO,SDEPT);SNOSDEPT
D-L(SDEPT,SLOC);SDEPTSLOCSNOSDEPTSLOCSDEPTGSNOCNO23分解说明一个2NF,但非3NF的关系总是可以被分解成为一组3NF的关系规范化过程中通过一组投影运算消除传递依赖,建议作如下分解(第二步分解)已知关系R(A,B,C),A为主码(A->B,A->C),且B->C,
则将R分解成为两个投影:
R1(B,C),B为主码
R2(A,B),A为主码,B为外码 这样,R可以通过R1和R2的自然连接运算得以恢复,分解满足分解的无损连接性243NF的进一步说明在不考虑主属性对码的部分依赖和传递依赖时,可以认为是实现了彻底的分离,已消除了插入异常,删除异常,修改异常,冗余等问题但是,当关系中存在两个或更多的候选码时,尤其是有几个候选码、且候选码内的属性又有部分复合或交迭时,仅仅满足3NF仍有问题,需要进一步分解成BCNF256.2.6BCNF(Boyce/CoddNormalForm)定义:若每一个决定因素都包含(或是)码,则RBCNF说明BCNF中所有的依赖都是包含码的依赖一个BCNF范式必是3NF,但一个3NF范式不一定是BCNF(3NF中可能存在主属性对码的部分和传递依赖)BCNF是在函数依赖范畴内对关系模式的彻底分离,已消除了插入和删除异常通常认为BCNF是扩充的第三范式,一般数据库设计达到BCNF已足够26实例例1:SJP(学生S,课程J,名次P)(S,J)和(J,P)均为候选码函数依赖为(S,J)P,(J,P)S其中,两个决定因素均包含(是)候选码可见SJPBCNF例2:STJ(学生S,教师T,课程J)(S,T)和(S,J)均为候选码函数依赖为(S,J)T,(S,T)J,TJ其中,为决定T因素,但不包含任何一个候选码可见STJ3NF,但STJBCNF27例子前例是3NF,也是BCNFSC(SNO,CNO,G);(SNO,CNO)GS-D(SNO,SDEPT);SNOSDEPTD-L(SDEPT,SLOC);SDEPTSLOCSNOSDEPTSLOCSDEPTGSNOCNO286.2.7规范化理论规范化概念:将一个低一级范式的关系模式分解为若干个高一级范式的关系模式的过程目的:设计正确、良好的关系模式基本思想:逐步消除关系模式的数据依赖中不合适的部分,使模式达到一定程度的分离,但又不丢失原模式中的信息模式分解的实质:投影29几个事实模式分解可以消除冗余,解决更新异常等问题,但也要付出做连接运算等昂贵的代价需要强调的是:对已知关系模式的范式等级是语义上的,而不仅仅是看某个时刻关系中的数据值,必须考察数据间的依赖即便是知道了数据依赖,也不能证明一个关系是否3NF。我们只能首先假设这个关系是3NF,而去验证给出的关系中没有违反数据依赖的情形30规范化理论如何辨别一个关系模式的“好坏”?不存在部分和传递函数依赖等“不好”的性质的模式是“好”模式,否则会出现冗余和插入、删除、更新等异常现象规范化过程是用于设计好的数据库的有力辅助,但并不是唯一的方法最初的设计中尽量做到“概念单一化”,即做到让一个关系描述一个概念、一个实体或实体间的一种联系,这样所设计的关系模式将会接近或达到第三范式,甚至达到BCNF31规范化过程小结1NF2NF3NFBCNF4NF消除非主属性对码的部分函数依赖消除非主属性对码的传递函数依赖消除主属性对码的部分和传递函数依赖消除多值依赖32练习设计关于供应商供应零件的数据库,要求达到3NF最初的设计:R(S#,Sname,City,Status,P#,Pname,Color,Weight,QTY)主码:(S#,P#)函数依赖:S#Sname,S#Status,S#City,CityStatus,P#Pname,P#Color,P#Weight可见,其中有部分依赖,还有传递依赖。该模式仅为1NF33分解第一步分解,消除部分依赖,得到:
R1(S#,P#,QTY),(S#,P#)为码
R2(S#,Sname,City,Status),S#为码
R3(P#,Pname,Color,Weight),P#为码其中,R1和R3都已达到3NF,但R2还存在传递依赖,仅仅是2NF第二步分解,消除R2中的传递依赖,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年版货车司机雇佣劳动合同
- 2024汽车制造商关于新型汽车零部件采购的合同
- 夜间交通指示照明合同(2篇)
- 2024桥梁工程桥梁检测与评估承包合同样本2篇
- 2024年鸡蛋供货商协议
- 数字健康服务推广协议
- 土地居间合同1
- 16-2《登泰山记》(说课稿)高一语文同步高效课堂(统编版 必修上册)
- 2《观察蜗牛的反应》说课稿-2023-2024学年科学二年级上册湘科版
- 能源行业设备采购合同
- 《城市环境污染》课件
- 广西崇左凭祥海关缉私分局缉私辅警招聘笔试真题2023
- 食材质量控制方案
- CNC技理考(含答案)
- 员工互评表(含指标)
- 小收纳大世界-整li与收纳(黑龙江幼儿师范高等专科学校)知到智慧树答案
- 河南省郑州市2024-2025学年高一数学上学期期末考试试题含解析
- 2024-2025学年外研版七年级英语下册 Unit1单词背诵(不带音标)
- 期末试题-2024-2025学年人教PEP版英语六年级上册 (含答案)
- 孕产妇高危五色管理(医学讲座培训课件)
- 幼儿体适能培训
评论
0/150
提交评论