




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第五章 关系的规范化,2,例:图书馆的图书借阅登记文件,需要保存个人借书证号(LCNO),借书证姓名(NAME), 所在部门(DEPT),图书登录号(BNO), 借书日期(DATE)等信息,选用下列数据库模式的方案. 方案一: BORROW(LCNO, NAME, DEPT, BNO, DATE) 主码(主关系键):(LCNO, BNO) 方案二: CARD(LCNO, NAME, DEPT) 主码:LCNO LOANS(LCNO, BNO, DATE) 主码:(LCNO, BNO),为什么要对进行关系的规范化,3,分析方案一: 假定关系BORROW的部分数据,4,(1)插入异常: 因为要求主码非空,在无BNO的值, (只办证,不借书),其它值无法插入.,17035 陈成 物理系,5,(2)删除异常: 借书的信息删除(已经还请全部借书),其它信息也跟着删去.如:姓名,单位信息.,还书,6,(3)数据冗余及由此带来的更新异常或潜在的数据的不一致性.,计算机系,信息系,7,分析方案二:,8,分析问题的根源:,在BORROW中,主码为(LCNO,BNO).其值唯一地决定其他所有属性的值,即其它属性(非码属性)对主码有依赖关系. 另一方面,非码属性对主码的依赖程度是不同的.,LCNO,BNO,NAME,DATE,DEPT,对主码的部分依赖,对主码的完全依赖,9,有关学生的关系模式 UN(S# , SN , SD , DEAN ),1:它存在哪些问题? 2:有不良的数据依赖?,/*学号, 姓名, 系名, 系主任名*/ 主码为:(S#),10,进一步分析:UN_SD(S# , SN , SD , DEAN) 不良特性 插入异常:如果系中没有学生,则有关系的信息就无法插入 删除异常:如果学生全部毕业了,则在删除学生信息的同时有关系的信息也随之删除了 数据冗余:每个学生都存储了所在系的系主任的信息 更新异常:如果学生转系,不但要修改SD,还要修改DEAN,如果换系主任,则该系每个学生元组都要做相应修改,11,关系模式UN: UN(S#, SN, SD , DEAN) /*学号,姓名, 系名, 系主任名*/ 主码为:(S#),S#,SD,DEAN,对S#的传递依赖,SN,12,关系模式UN: UN(S#,SN, SD , DEAN)分解如下: SD(S#,SN,SD) 主码为:S# DM(SD ,DEAN) 主码为:SD,13,什么是数据依赖,定义属性值间的相互关连,这就是数据依赖,它是数据库模式设计的关键 是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系 是现实世界属性间相互联系的抽象 是数据内在的性质 是语义的体现,14,什么是数据依赖(续),数据依赖的类型 函数依赖(Functional Dependency,简记为FD) 多值依赖(Multivalued Dependency,简记为MVD) 其他,15,5.1 函数依赖,定义:设R(U)是属性集U上的关系模式, X , Y U, r是R(U) 上的任意一个关系,如果成立. 对任何元组t , s r,若tX = sX, 则tY = sY 那么称“X函数决定Y”,或“Y函数依赖于X”,记作XY. 称X为决定因素. 如S# SN, (S#,C#) G,16,R(.,X,.,Y,.) . t . s . .,a,1,a,1,关系r,函数依赖,XY,17,说明:,函数依赖是语义范畴的概念,只能根据语义来判断函数依赖.,例:在关系模式BORROW中有如下语义: 每个借书证只能为一个读者拥有,因此LCNO可唯一地确定持证人的姓名和所在部门,而借书日期则函数依赖与借书人(LCNO)和所借的书籍(BNO),F=LCNO NAME,LCNO DEPT,(LCNO,BNO) DATE,函数依赖,18,函数依赖,检验:AC?CA?ABD?,辨识: 满足依赖的关系:依赖在模式的某个关系实例上成立 模式上成立的依赖:依赖在模式的所有关系实例上都成立,19,平凡函数依赖与非平凡的函数依赖,如果X Y,但Y X, 则称其为非平凡的函数依赖,否则称为平凡的函数依赖 如(S#,SN) SN是平凡的函数依赖,20,完全函数依赖与部分函数依赖,在R(U)中,如果XY,且对于任意X的真子集X,都有 ,则称Y对X完全函数依赖,记作 否则称为Y对X部分函数依赖,记作,X Y,X Y,21,完全函数依赖与部分函数依赖,例:已知关系模式如下: 成绩(学号,姓名,课程号,课程名称,学时,分数) 根据应用语义可以得到如下函数依赖FD: 学号姓名,课程号课程名称,学时, 学号,课程号分数 学号,课程号姓名, 学号,课程号课程名称,学时,f,p,p,22,例:关系模式R(U,F), U=S#,C#,G(分数), E(学分) 主码为:(S#, C#) 对于(S#,C#):,完全函数依赖与部分函数依赖,(S#,C#) G,(S#,C#) E,C# E,23,传递函数依赖,在R(U)中,如果 则称Z对X传递函数依赖,记作:,X Z,t,例:已知关系模式如下: 成绩(学号,姓名,系名称,系地址) 学号姓名,系名称,系地址 系名称系地址,24,传递函数依赖,例:R(S#, SD, MN, C#, G) 主码为:(S#, C#),(S# , C# ) G, S# SD, SD MN,p,25,超码:设K为R的属性或属性组,若K U,则称K为R的超码,候选码:设K为R的超码,若K U,则称K为R的候选码,主码:若R(U , F)有多个候选码,则可以从中选定一个作为R的主码,主属性:包含在每一个候选码中的属性,称作主属性,全码:关系模式的码由整个属性组构成.,码,26,例: DEPT(D#, DN, TEL, MN) 候选码: D# 单个属性作候选码. SC(S#, C#, G) 候选码: (S#, C#) 组合属性(属性组)候选码. CSZ(CITY, ST,ZIP) /*城市,街道,邮编 候选码: (ST, ZIP ), (CITY, ST) 组合属性(属性组)候选码. WSC(W#, S#, C#) /*仓库号,保管员号,物品号 候选码:(W#,S#,C#) 整个属性集做候选码,称作全码.,27,5.2 数据库的表与规范化,对关系的规范化是改造关系模式过程,首先,根据一组不同级别的范式判定关系的规范化程度,确定不正常的数据依赖关系,通过模式分解将一个低一级范式的关系模式,转换为若干个高一级的范式的关系模式的集合,消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。,28,1NF,2NF,3NF,BCNF,4NF,5NF,29,定义:设R是一个关系模式,如果R中每一个属性的值域中的每一个值都是不可分的(原子项),则称R属于第一范式(R 1NF),第一范式(1NF),30,例:学生选课 SC1(学号 课程) t1 05302 DS,编译,AI t2 05380 C,DS,OS,DB . SC1是非1NF的,其缺点是更新 困难.,对应1NF的形式如下: SC2(学号 课程) . 05302 DS 05302 编译 05302 AI 05380 C 05380 DS 05380 OS 05380 DB .,31,例:通讯录 SC1(序号,姓名, 电话号码) t1 5 张三 68932240,68931234,1368123456 t2 6 李四, 68932240,68485634,1337155459 .,32,分量是否需要再分,与具体应用有关。如果用到值的一部分,则需要进一步分割 如果只是查询出生日期,则它满足1NF 如果查询两人生日是否相同,则只比较月、日,需要将生日分解,就不满足1NF,33,定义:若关系模式R属于1NF(R1NF), 且每个非主属性都完全函数依赖于R的每个码,则关系模式R属于第二范式(R2NF).,消除非主属性对码的部分依赖,5.2.4 第二范式(2NF),34,例:关系模式S(S#,SN,AGE,SEX,DEPT),且SN无重名 S#,SN分别为候选码. S# (SN,AGE,SEX,DEPT), SN (S#,AGE,SEX,DEPT),所以:关系模式S属于2NF.,35,例:关系模式SC(S#,C#,G) 因为: (S#,C#)为候选码 ,(S#,C#) G, 且为完全函数依赖.,所以:关系模式SC属于2NF.,36,2NF的规范化,2NF的要求是每个非主属性都完全函数依赖于该关系模式的每个码.即在关系模式中不存在部分函数依赖.,37,例:BORROW(LCNO,BNO,NAME,DEPT,DATE) BORROW是1NF的, 候选码为:(LCNO,BNO) (LCNO,BNO) (NAME,DEPT) (LCNO,BNO) DATE 关系模式BORROW中存在部分函数依赖,所以该关系模式不属于2NF.,分解方法:CARD(LCNO,NAME,DEPT) LANS(LCNO,BNO,DATE),38,练习: 关系模式R(A,B,C,D), 码为AB,给出它的一个函数依赖集,使得R属于1NF而不属于2NF,候选码为AB 函数依赖集如下: F=A C , AB D,39,5.2.5 第三范式(3NF),定义:若关系模式R属于2NF (R2NF),且每个非主属性都不传递依赖于R的任何码,则R是属于3NF 的(R3NF).,40,例:S(SNO, NAME, AGE,DNO,DEAN) 主码为:SNO , S属于2NF. 因为: SNO (NAME, AGE, DNO) DNO DEAN 所以: SNO DEAN 由此造成学生元组不存在,则系和系主任的关系也就不存在.,t,41,3NF的规范化,3NF的关系模式中要求不存在非主属性对码的传递依赖. 消除传递依赖的分解原则: 消除造成传递依赖的部分,生成一个新的关系模式.且将分解后的模式,通过做自然连接能恢复成原来的模式.,42,例:S(SNO, NAME, AGE, DNO, DEAN) 分解: S(SNO, NAME, AGE, DNO) 主码:SNO DEPT(DNO, DEAN) 主码:DNO 上述两个关系模式都是属于3NF.,43,练习: 关系模式R(A,B,C,D), 码为AB,给出它的一个函数依赖集,使得R属于2NF而不属于3NF,候选码为AB 函数依赖集如下: F=AB C , C D,44,非主属性对码的部分函数依赖和传递函数依赖是产生存储异常的两个重要原因,所以关系模式达到3NF,就去掉了大部分的存储异常,且使得关系模式具有较好的性能. 所以对于3NF以下的关系模式,一般不宜作数据库模式.通常要把它们转换为3NF或3NF以上范式的.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乡镇办干部管理办法
- 璧山区培训管理办法
- 风险债券管理办法
- 院内施工管理办法
- 法律风险库管理办法
- 福州资金池管理办法
- 陕西劳模管理办法
- 井下救生仓管理办法
- 中小生学籍管理办法
- 隔离观察管理办法
- 泰州内河港市区港区海创物流园作业区六号码头一期改扩建工程环评资料环境影响
- 陪诊师课件教学课件
- 行车安全培训课件
- (高清版)DB34∕T 5154-2025 基于云制造的工业互联网架构要求
- 村网络文明活动方案
- 2024年空中乘务专业人才培养方案调研报告
- 执业药师资格考试《中药学专业知识二》真题及答案(2025年新版)
- DZ/T 0275.3-2015岩矿鉴定技术规范第3部分:矿石光片制样
- T/CASTEM 1007-2022技术经理人能力评价规范
- 果蔬产业园建设可行性研究报告
- 主题游乐园创新设计规划
评论
0/150
提交评论