




已阅读5页,还剩66页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库系统概论 An Introduction to Database System 第六章 关系数据理论,学习目标,理解关系模式可能的四种异常 掌握函数依赖的基本概念 掌握1NF、2NF、3NF、BCNF和4NF的概念和特点 掌握规范化的基本步骤,第六章 关系数据理论,6.1 问题的提出 6.2 规范化 6.3 数据依赖的公理系统 *6.4 模式的分解,6.1 问题的提出,关系数据库逻辑设计 针对具体问题,如何构造一个适合的数据模式? 构造几个关系,每个关系由哪些属性组成等 数据库逻辑设计的工具 关系数据库的规范化理论 规范化理论虽然以关系模型为背景,但对一般数据库也具有理论上的意义,6.1 问题的提出,1 概念回顾 2 关系模式的形式化定义 3 什么是数据依赖 4 数据依赖对关系模式影响,6.1 问题的提出,1.概念回顾 (1)关系 描述实体、属性、实体间的联系。 从形式上看,它是一张二维表,是所涉及属性的笛卡尔积的一个子集。 (2)关系模式 用来定义关系,是关系结构的描述。 (3)关系数据库 基于关系模型的数据库,利用关系来描述现实世界。 从形式上看,它由一组关系组成。,6.1 问题的提出,1.概念回顾(续) (4)关系数据库的模式 数据库由若干关系组成,这些关系的关系模式的集合。 设:任一关系模式用Ri表示, X= R1R2 Rn 则:=R1,R2, Rn就是X上的一个数据库模式,6.1 问题的提出,例如:描述一个在校学生的学习情况,会涉及到如下属性: Sno,Sname,Ssex,Sage,Sdept, Cno,Cname,Ccredit,Grade等,如何组织这些数据?,6.1 问题的提出,给出以下两种数据库模式: 1. = R11,R12 R11=Sno,Sname,Ssex,Sage,Sdept R12=Sno, Cno,Cname,Ccredit,Grade 2. = R21,R22, R23 R11=Sno,Sname,Ssex,Sage,Sdept R12=Sno, Cno,Grade R13= Cno, Cname,Ccredit ,从理论上找到判断设计“好”的数据库的模式的标准,哪种数据库模式好?,6.1 问题的提出,1 概念回顾 2 关系模式的形式化定义 3 什么是数据依赖 4 数据依赖对关系模式影响,6.1 问题的提出,2.关系模式的形式化定义,关系模式由五部分组成,即它是一个五元组: R R: 关系名 U: 组成该关系的属性名集合 D: 属性组U中属性所来自的域 DOM: 属性向域的映象集合 F: 属性间数据的依赖关系集合,6.1 问题的提出,2.关系模式的形式化定义,关系模式由五部分组成,即它是一个五元组: R R: 关系名 U: 组成该关系的属性名集合 F: 属性间数据的依赖关系集合,把关系模式简化为一个三元组: R 含义:当且仅当U上的一个关系 r 满足F时,r 称为关系模式 R(U, F)的一个关系。,6.1 问题的提出,1 概念回顾 2 关系模式的形式化定义 3 什么是数据依赖 4 数据依赖对关系模式影响,6.1 问题的提出,3.什么是数据依赖?,(1)数据依赖 是现实世界属性间相互联系的抽象 表示一个关系中属性间存在的一种限制和制约关系 是数据内在的性质 是语义的体现,例如:学生关系有Sno,Sname,Sdept等属性 属性间存在以下依赖: Sno Sname ; Sno Sdept,6.1 问题的提出,(2) 数据依赖的类型 函数依赖 (Functional Dependency,简记为FD) 多值依赖 (Multivalued Dependency,简记为MVD) 其他,3.什么是数据依赖?,6.1 问题的提出,1 概念回顾 2 关系模式的形式化定义 3 什么是数据依赖 4 数据依赖对关系模式影响,6.1 问题的提出,4.数据依赖对关系模式的影响,例:描述一个学校的数据库: (1)管理的数据 学生学号(Sno)、所在系(Sdept)、课程号(Cno)、成绩(Grade)、系主任姓名(Mname) 单一的关系模式:Student U Sno, Sdept, Mname, Cno, Grade ,6.1 问题的提出,4.数据依赖对关系模式的影响,例:描述一个学校的数据库(续):,(2)学校数据库的语义: 一个系有若干学生,一个学生只属于一个系; 一个系只有一名主任; 一个学生可选修多门课程,每门课程有若干学生选修 每个学生所学的每门课程都有一个成绩。,6.1 问题的提出,4.数据依赖对关系模式的影响,例:描述一个学校的数据库(续):,U Sno, Sdept, Mname, Cno, Grade (3)确定属性组U上的一组函数依赖F: FSnoSdept, SdeptMname, (Sno, Cno) Grade,6.1 问题的提出,4.数据依赖对关系模式的影响,Student表,管理系,李华,6.1 问题的提出,4.数据依赖对关系模式的影响,关系模式Student中存在的问题,(1)数据冗余太大 浪费大量的存储空间 (2)更新异常(Update Anomalies) 数据冗余,更新数据时,维护数据完整性代价大,例:每一个系主任的姓名重复出现,例:某系更换系主任后,系统必须修改与该系学生有关的每一个元组,6.1 问题的提出,4.数据依赖对关系模式的影响,关系模式Student中存在的问题,(3)插入异常(Insertion Anomalies) 该插的数据插不进去 (4)删除异常(Deletion Anomalies) 不该删除的数据不得不删,例:如果一个系刚成立,尚无学生,无法将这个 系及系主任的信息存入数据库。,例:如果某系学生全毕业了,在删除该系学生信息的同时,这个系及其系主任的信息也随之丢掉。,6.1 问题的提出,该Student关系模式不是一个“好”的模式。 “好”的模式: 不会发生插入异常、删除异常、更新异常, 数据冗余应尽可能少。 原因: 由存在于模式中的某些数据依赖引起的 解决方法: 通过分解关系模式来消除不合适的数据依赖,4.数据依赖对关系模式的影响,结论,6.1 问题的提出,4.数据依赖对关系模式的影响,修改后的关系数据库模式: 如把模式Student分成三个关系模式: S(Sno,Sdept,SnoSdept) SG(Sno, Cno, Grade, (Sno,Cno)Grade) DEPT(Sdept,Mname,SdeptMname) 这三个模式都不会发生插入异常、删除异常等,数据的冗余也得到了很好的控制。,第六章 关系数据理论,6.1 问题的提出 6.2 规范化 6.3 数据依赖的公理系统 *6.4 模式的分解,6.2 规范化,规范化理论 是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余的问题。,6.2 规范化,6.2.1 函数依赖 6.2.2 码 6.2.3-6.2.6 范式 6.2.7-6.2.8 多值依赖与4NF,6.2.1 函数依赖,1.函数依赖 2.平凡函数依赖与非平凡函数依赖 3.完全函数依赖与部分函数依赖 4.传递函数依赖,6.2.1 函数依赖,定义6.1: 设:R(U)是一个属性集U上的关系模式,X和Y是 U的子集。若对于R(U)的任意一个可能的关 系r,r中不可能存在两个元组在X上的属性值 相等, 而在Y上的属性值不等, 则:称 “X函数确定Y” 或 “Y函数依赖于X”, 记作:XY,1.函数依赖,6.2.1 函数依赖,1.函数依赖 举例:,结论: CA? AC?,6.2 规范化,Student表,如果SnoSdept存在,此表正确吗?,6.2.1 函数依赖,1.函数依赖,定义说明: (1)函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。 (2)函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。 例如“姓名年龄”这个函数依赖只有在不允许有同名人的条件下成立 。,6.2.1 函数依赖,1.函数依赖,定义说明: (1)函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。 (2)函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。,(3)数据库设计者可以对现实世界作强制的规定。,2.平凡函数依赖与非平凡函数依赖: 在关系模式R(U)中,对于U的子集X和Y: 若XY,但YX,则称XY是非平凡函数依赖。 若XY,但Y X, 则称XY是平凡函数依赖。,6.2.1 函数依赖,例:在关系SC(Sno,Sdept,Mname,Cno,Grade)中,存在: (Sno, Cno) Grade (Sno, Cno) Sno (Sno, Cno) Cno,:非平凡函数依赖 :平凡函数依赖 :平凡函数依赖,说明: 对于任一关系模式,平凡函数依赖是必然成立的,它不反映新的语义,因此若不特别声明, 总是讨论非平凡函数依赖。,6.2.1 函数依赖,例: Course(Cno、Cname、Cpno、Ccredit) 假设不允许课程重名,则有: CnoCname,CnoCpno , CnoCcredit CnameCno,CnameCpno,CnameCcredit 可以看到:Cno Cname, 但:CpnoCcredit ,CcreditCname等 若XY,并且YX,则记为X Y。 若Y不函数依赖于X,则记为X Y。,3.完全函数依赖与部分函数依赖: 定义6.2 在关系模式R(U)中: 若XY,且对于X的任何一个真子集X,都有 XY, 则称Y完全函数依赖于X,记作X F Y。 若XY,但Y不完全函数依赖于X,则称Y部分 函数依赖于X,记作X P Y。,6.2.1 函数依赖,例如: 关系SC(Sno, Sdept, Mname, Cno, Grade ),F,P,例: 关系Std(Sno, Sdept, Mname, Cno, Grand)中,,4.传递函数依赖: 定义6.3 在关系模式R(U)中: 如果XY (YX),YX,YZ, 则称Z对X传递函数依赖,记作:X t Z 。 若XY ,YX,即X Y,则Z直接依赖于X。,6.2.1 函数依赖,因为有:SnoSdept,SdeptSno,SdeptMname 则: Sno t Mname。,1.建立一个学生关系,要求如下: 属性: 学号、姓名、出生日期、系名、专业名、年级、班级号、宿舍区等 说明:一个系有若干个专业; 一个专业每年只招一个班; 每个班有若干学生; 一个系的学生住在同一个宿舍区。,思考: 指出该关系存在怎样的函数依赖?,6.2.1函数依赖练习,2. 已知:一个关系模式R= 其中:UI , B , O , Q , S , D F IB,BO,IQ,SD,思考: R关系的码是什么? 存在怎样的依赖关系?,6.2.1 函数依赖练习,I,B,O,Q,S,D,函数依赖图为:,6.2 规范化,6.2.1 函数依赖 6.2.2 码 6.2.3-6.2.6 范式 6.2.7-6.2.8 多值依赖与4NF,1.侯选码(Candidate Key): 设K为关系模式R中的属性或属性组,若K F U,则K称为R的一个侯选码。 若K为R的整个属性组,则这样候选码称为全码。,6.2.2 码,1.侯选码(Candidate Key):,6.2.2 码,例如: 关系Student(Sno,Sname,Sage,Ssex,Sdept), 若每个学生不允许重名: 关系SC(Sno,Cno,Grade): 关系PWA(演奏者,作品,听众) :,则Sno、 Sname均是候选码;,(Sno,Cno)是候选码;,是全码,2.主码(Primary key): 若关系模式R有多个候选码,则指定其中的一个作为主码。 3.主属性与非主属性: 包含在任一候选码中的属性称为主属性; 不包含在候选码中的属性称为非主属性。,6.2.2 码,主属性的表示:属性名下加下划线。 如:SC(Sno,Cno,Grade),4.外码(Foreign key): 关系模式R中属性(组)X并非R的码,但X是另一个关系模式的码,则称X是R的外码。,6.2.2 码,例如:关系SC(Sno,Cno,Grade)中Sno不是码,但Sno是关系Student的码,则Sno是关系SC的外码。,主码和外码一起提供了表示关系间联系的手段。,6.2 规范化,6.2.1 函数依赖 6.2.2 码 6.2.3-6.2.6 范式 6.2.7-6.2.8 多值依赖与4NF,6.2.3 范式,范式 是符合某一种级别的关系模式的集合。 关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。 范式的种类: 第一范式(1NF)、第二范式(2NF)、 第三范式(3NF)、BC范式(BCNF)、 第四范式(4NF)、第五范式(5NF),各种范式之间存在联系: 某一关系模式R为第n范式,可简记为: RnNF,6.2.3 范式,6.2.4 2NF,1.1NF (1) 定义: 如果一个关系模式R的所有属性都是不可再分的基本数据项,则R1NF。 1NF范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。 但是满足第一范式的关系模式并不一定是一个好的关系模式。,6.2.4 2NF,例: 关系模式 SLC(Sno, Sdept, Sloc, Cno, Grade) Sloc为学生住处,若每个系的学生住在同一个地方。 函数依赖包括: (Sno, Cno) F Grade Sno Sdept Sdept Sloc Sno Sloc (Sno, Cno) P Sdept (Sno, Cno) P Sloc,1.1NF,6.2.4 2NF,SLC的码为(Sno, Cno) SLC满足第一范式。 非主属性Sdept和Sloc部分函数依赖于码(Sno, Cno),Sno,Cno,Grade,Sdept,Sloc,SLC,1.1NF,6.2.4 2NF,(1)假设插入Sno95102,SdeptIS,Sloc8#未选课的学生信息。,1.1NF,SLC(Sno, Sdept, Sloc, Cno, Grade),-插入异常,(2)假定某学生因身体不适,本学期退选课程。,-删除异常,(3)若某学生选修10门课程,他的Sdept和Sloc信息如何存储。,-数据冗余大,(4)若某学生转系,他选修了K门课,需要修改哪些信息。,-修改复杂,6.2.4 2NF,原因:Sdept、 Sloc部分函数依赖于码。 解决方法-消除部分函数依赖 将一个1NF的关系分解为多个2NF关系。 SC(Sno,Cno,Grade) SL(Sno,Sdept,Sloc),1.1NF,SLC(Sno, Sdept, Sloc, Cno, Grade) 不是一个好的关系模式。,Sdept, Sloc,2、2NF (1)定义:若关系模式R1NF,并且每一个非主属性 都完全函数依赖于R的码,则R2NF。 例:SLC(Sno,Sdept, Sloc,Cno,Grade) SLC(Sno,Sdept,Sloc,Cno,Grade) SC(Sno,Cno,Grade) SL(Sno,Sdept,Sloc),1NF 2NF 2NF 2NF,6.2.4 2NF,(2)2NF模式存在的问题: 关系模式SL (Sno, Sdept, Sloc) 若计算机系有1000个学生,则系部住处Sloc值要重复存储1000次。 如某系刚成立,暂无学生,系部信息无法插入。 如某系学生全部毕业时,删除该系学生信息的同时系部信息也被删除。 如学校调整某系学生住处,必须修改该系所有学生的Sloc值。,6.2.4 2NF,2、2NF,-插入异常,-删除异常,-数据冗余大,-修改复杂,(3)2NF模式存在的问题: SL(Sno,Sdept,Sloc) 不是一个好的关系模式 引起原因:Sloc传递函数依赖于码Sno。 解决方法:采用投影分解法,将SL分解为两个关系模式: SD(Sno,Sdept), DL(Sdept,Sloc) 以消除传递函数依赖。,6.2.4 2NF,2、2NF,Sloc,1.定义: 关系模式R 中若不存在这样的码X、属性组Y及非主属性Z(ZY), 使得XY,YX,YZ成立,则称R3NF。若R3NF,则R2NF。 例: SL(Sno,Sdept,Sloc) SL(Sno,Sdept,Sloc) SD(Sno,Sdept) DL(Sdept,Sloc),6.2.5 3NF,总结:若R3NF,则R的每一个非主属性既不部分函数依赖于候选码也不传递函数依赖于候选码。,2NF 3NF 3NF 3NF,2. 如何将关系模式从2NF转换为3NF? -采用投影分解法 将一个2NF的关系分解为多个3NF关系; 这种分解也并不能完全消除关系模式中的各种异常情况和数据冗余。,6.2.5 3NF,例:关系SL(Sno, Sdept, Sloc)分解为: SD(Sno,Sdept) SL(Sno,Sloc),复 习,1.从定义可以看出: 2. 转换方式: (1)1NF2NF: 消除1NF中 候选码非主属性 (2)2NF3NF: 消除2NF中 候选码非主属性,P,t,分析下列关系模式为几范式?是否存在数据的异常现象?,6.2.6 BCNF,例:关系模式STC(S,T,C), 语意描述: (1)一名教师只能教一门课程; (2)若干名教师可以教同一门课程; (3)一旦某个学生选定某门课程,就确定了一个固定的教师,关系模式STC存在的函数依赖是: FTC,(S,C) T, (S,T) C ,6.2.6 BCNF,例:关系模式STC(S,T,C), FTC,(S,C) T, (S,T) C ,候选码: 主属性集合: 非主属性集合:,(S,C)和(S,T),S,C,T,分析下列关系模式为几范式?是否存在数据的异常现象?,结论:STC不存在非主属性对任何候选码的部分依赖和传递依赖,所以R 3NF,6.2.6 BCNF,例:关系模式STC(S,T,C), FTC,(S,C) T, (S,T) C ,存在主属性C对候选码的(S,T)的部分依赖,因此存在以下问题: 1.插入异常:某个学生刚入校,还未选课或某个教师开设了某门课程暂时还没有学生选 2.删除异常:选修了某门课程的学生全部毕业,分析下列关系模式为几范式?是否存在数据的异常现象?,结论2:仍然存在数据的异常现象,1.BCNF定义: 设关系模式R1NF,如果对于R的每个函数依赖XY,若Y不属于X,则X必含有候选码,那么RBCNF。 若RBCNF ,则R3NF。,6.2.6 BCNF,例:SC(Sno,Cno,Grade) SD(Sno,Sdept) STC(S,T,C),BCNF BCNF BCNF,2.性质:,6.2.6 BCNF,(1)若R3NF,且R只有一个候选码,则R必属于BCNF (2)所有非主属性对每一个码都是完全函数依赖。 (3)所有主属性对每一个不包含它的码都是完全函数依赖 (4)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度上海市执法类公务员招考笔试备考试题及答案解析
- 2025昆明市第十二中学教育集团聘用制教师招聘笔试备考试题及答案解析
- 节能知识培训讲座通知课件
- 2025年工业互联网平台网络流量整形技术在工业互联网平台商业模式中的应用报告
- 合肥市土地财政转型:现状、挑战与路径探索
- 公安机关食堂食品安全与营养健康承包服务协议
- 媒体介入面试题库及答案
- 基于2025年的生物医药技术专利分析及竞争格局报告
- 教师招聘之《小学教师招聘》能力检测试卷(原创题)附答案详解
- 教师招聘之《小学教师招聘》测试卷含答案详解(突破训练)
- 2025年芜湖市繁昌区卫健系统公开招聘编外工作人员6名考试参考试题及答案解析
- 广告字安装制作合同协议
- 2025年秋季学期人教版三年级上册数学教学计划含教学进度表(三篇)
- 2025至2030中国方竹笋市场经营方向与竞争格局分析报告
- 2025年人教版三年级数学上册《混合运算》教案
- 2025医用眼科器械消毒处理标准流程
- 胸部穿刺教学课件
- 白酒经销合同协议书模板
- 2025年公务员遴选备考冲刺
- 2024年河源市市级机关公开遴选考试真题
- 《网络工程导论》全套教学课件
评论
0/150
提交评论