




免费预览已结束,剩余46页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章 关系数据库设计理论 关系数据库模式 整个数据库 某关系的结构 某关系的实例 关系模式的设计问题 关系模式设计不规范会带来一系列的问题 数据冗余 更新异常 插入异常 删除异常 示例关系模式 r(tname, addr, c#, cname) 一个教师只有一个地址(户口所在地) 一个教师可教多门课程 一门课程只有一个任课教师 因此r的主码是(c) r的一个实例 tnameaddrc#cname t1a1c1n1 t1a1c2n2 t1a1c3n3 t2a2c4n4 t2a2c5n5 t3a3c6n6 1、问题(1):数据冗余 教师t1教了三门课程,他的地址被重复存 储了2次 tnameaddrc#cname t1a1c1n1 t1a1c2n2 t1a1c3n3 t2a2c4n4 t2a2c5n5 t3a3c6n6 2、问题(2):更新异常 如果t1的地址变了,则需要改变3个元组 的地址;若有一个未更改,就会出现数 据不一致。但dbms无法获知这种不一 致 tnameaddrc#cname t1a1c1n1 t1a1c2n2 t1a1c3n3 t2a2c4n4 t2a2c5n5 t3a3c6n6 3、问题(3):插入异常 如果要增加一名教师,但他还未带课, 则c#和cname为空,但由于c是主码 ,为空违反了实体完整性,所以这名教 师将无法插入到数据库中 tnameaddrc#cname t1a1c1n1 t1a1c2n2 t1a1c3n3 t2a2c4n4 t2a2c5n5 t3a3c6n6 4、问题(4):删除异常 如果教师t3现在不带课了,则需将t3的 元组删去,但同时也把他的姓名和地址 信息删掉了 tname addrc#cname t1a1c1n1 t1a1c2n2 t1a1c3n3 t2a2c4n4 t2a2c5n5 t3a3c6n6 问题:麻烦! 麻烦! 好麻烦! 唉,剪不断,理还乱 5、如何解决? 方法:模式分解 方法1:r分解为 r1(tname, addr) r2(c#,cname) 方法2 r1(tname, addr, c# ) r2( c#, cname) 方法3 r1( tname, addr) r2( tname ,c#, cname) 到底什么样的模式才最佳?怎么分解才能达到要 求?标准是什么?如何实现?本章内容 授课信息丢失了 r1中问题依然存在 基本解决问题,但又带 来联接查询代价 解决之道:分解! 分解! 再分解! 哇,原来生活可以如此简单 4.1 数据依赖 数据依赖是指数据之间存在的各种联系。 数据依赖中最重要的有: 函数依赖(fd ,functional dependency) 多值依赖(mvd,multivalued dependency) 1. 关系模式中的数据依赖 1) 关系关系模式关系实例 2) 关系是属性的笛卡尔积的一个子集 3) 描述关系模式的五元组r(u,d,dom,f) 4) f:属性间数据的依赖关系集合,描述关系 的元组语义 5) 描述关系模式的简化三元组r(u,f) 2. 数据依赖对关系模式的影响 数据依赖是通过一个关系中属性间值的相等与 否体现出来的数据间的相互关系,是语义的体 现 数据依赖中最基本的是函数依赖 例1 学生关系student(sno, sname, sdept) 一个学号只对应一个学生,一个学生只在一个系 一旦学号确定,姓名和所在系也就唯一地确定下 来了 属性间的这种依赖关系类似于数学中的函数 sno函数决定sname和sdept; sname和sdept 函数依赖于sno,记作snosname,snosdept 例2 建立一个描述学校的数据库, 假设由单一关系模式组成 student(sno, sdept, mname, cname, grade) 属性间函数依赖:f = snosdept, sdeptmname, (sno,cname) grade grade sno cname sdept mname 存在问题: 数据冗余度大 更新异常 插入异常 删除异常 3. 函数依赖 定义:设r(u)是一关系模式,u是r的属性集合 ,x,y是u的子集,当任何时刻r中不存在两个元 组,它们在x上的属性值相同,而在y上的属性 值不同,则称 x函数决定y或 y函数依赖于x,记 作xy。 若xy ,x叫做决定因素(决定属性集)。 若xy ,yx ,则记作x y。 若y不函数依赖于x ,则x! y。 函数依赖是语义范畴的概念,设计者可对现实世 界作强制规定。 函数依赖是指r的所有关系实例均要满足的约束 条件 函数依赖与属性间的联系类型有关 1) 一对一联系:xy 2) 多对一联系:xy 3) 多对多联系:不存在依赖关系 4) 可从属性间的联系类型来分析属性间的函数依赖 例3 学生关系 student(sno,sname,sage,ssex,sdept) 则有 sno决定函数 (sname,sage,ssex,sdept) 函数(sname,sage,ssex,sdept)依赖于sno 记为:sno(sname,sage,ssex,sdept) 4. 平凡函数依赖与非平凡函数依赖 定义:在关系模式r(u)中,对于u的子集x,y, 1) xy ,但y x (y是x的子集), 称xy为 平凡函数依赖。 (一组属性函数决定它的所有子集) 2) xy ,但y! x ( y不是x的子集),称xy 为非平凡函数依赖。 对任一关系,平凡函数依赖都是必然成立的 例4:平凡函数依赖:(sno,cno) cno 非平凡函数依赖:snograde 5. 完全函数依赖与部分函数依赖 定义: 在r(u)中,如果xy,并且对于x的任何一个真子集 x,都有x ! y (真子集x不决定y) ,则称y对x 完 全(full)函数依赖,记作:x y。 若xy,但y不完全函数依赖于x,则称y部分函数 依赖于x,记作: x y x必须是组合属性; 例5 选修关系sc(sno,cno,grade,sdept) 有: (sno,cno)grade (sno,cno)sdept sno ! grade sno sdept cno ! grade 则 (sno,cno) grade (sno,cno) sdept p f f p 6. 传递函数依赖 定义: 在r(u)中,若x,y,z是r互不相同的属性集 合, xy,y ! x, yz 则称z传递(transfer)函数依赖于x。 记作: x z 说明:若xy,y x, yz,则z直接函数依 赖于x 例6 关系std(sno,sdept,mname) 有: snosdept sdept mname 则 sno mname t t 7. 小结 1)函数依赖是完整性约束的一种特殊形式 2)函数依赖分为: 完全函数依赖 部分函数依赖 传递函数依赖 3)函数依赖是规范化理论的依据 4)函数依赖是规范化程度的准则 8. 码 定义:设k为r中的属性或属性组合,若 k u,则k为r的候选码。若候选码多于一个 ,则选其中一个为主码(primary key)。 主属性:包含任何一个候选码中的属性。 非主属性(非码属性):不包含任何码中的属 性。 全码:整个属性组都是码 f 4.2 范式 范式是符合某一种级别的关系模式的集合。 如果一个关系满足某个特定的约束值,则称它属于某种特 定的范式。 范式主要有六种: 第一范式(1nf)第二范式(2nf) 第三范式(3nf) bc范式(bcnf) 第四范式(4nf) 第五范 式(5nf) 满足最低要求的叫第一范式; 在第一范式基础上进一步满 足一些要求为第二范式,以次类推。 各级范式关系: (1) 5nf 4nf bcnf 3nf 2nf 1nf (2) 如果关系满足某个范式要求,也会满足级别较低的所 有范式的要求 (3) 较高层次的范式比较低层次的范式更合乎要求 1. 第一范式(1nf) 定义: 若关系模式r的所有属性都是不可分的基本数据 项,则r 1nf。 说明: (1)1nf是关系模式的最起码要求 (2)若r 1nf,则r不是关系数据库 例1 关系模式slc(sno,cno,sdept,sloc, grade), 其中sloc为学生住处,假设每个系的学生住在同一 个地方。slc码为(sno,cno)。 满足第一范式 据其语义函数依赖有:(sno,cno) grade, sno sdept, (sno,cno) sdept, sno sloc, (sno,cno) sloc, sdept sloc, grade sno cno sdept sloc 存在问题: 插入异常 删除异常 冗余太大 修改复杂 f f p p p slc函数依赖 候选码 2. 第二范式(2nf) 定义:若关系模式r 1nf,且每个非主属性 都完全函数依赖于r的码,则r 2nf。 例2 s(sno,sname,sage,ssex,sdept) 1nf, 假设姓名sname无重名 sno(sname,sage,ssex,sdept) sname(sno, sage,ssex,sdept) sno,sname分别为候选码 sage,ssex,sdept是非主属性 sage,ssex,sdept完全依赖于每个码 s 2nf 例3 slc(sno, cno,sdept,sloc, grade) 1nf , (sno,cno)是唯一的码, 非主属性对码的函数依赖有 (sno,cno) grade (sno,cno) sdept( sno sdept) (sno,cno) sloc ( sno sloc) 存在非主属性对码的部分函数依赖, slc 2nf 采用投影分解运算投影成两个关系 1. sc(sno,cno,grade), (sno,cno) grade 2. sl(sno,sdept,sloc), sno sdept , sdept sloc , sno sloc 非主属性完全函数依赖于码 则sc 2nf,sl 2nf f p p grade sno cno f sno sdept sloc sc sl p 注意: 如果关系r的全体属性都是r的主属性,那么r 2nf。 如果关系r的所有码仅含有一个属性,那么r 2nf。 从1nf中消除非主属性对码的部分函数依赖,则 可获得2nf关系 采用投影分解法可以提高关系模式的范式等级。 3. 第三范式(3nf) 定义: 若r 2nf, 且每个非主属性都不传递依赖于r 的任何码,则r 3nf 说明 (1) 每个非主属性既不部分依赖,也不传递依赖 于r的候选码 (2) 从1nf2nf:消除非主属性对码的部分函 数依赖 (3) 从2nf3nf:消除非主属性对码的传递函 数依赖 例4 slc(sno, cno,sdept,sloc, grade) 1nf 采用投影分解运算投影成两个关系,消除非主属性对码 的部分函数依赖 1) sc(sno,cno,grade) 2nf ,sc 3nf 2) sl(sno,sdept,sloc) 2nf sl中函数依赖: snosdept, sdeptsloc, snosloc 对sl采用投影分解运算投影成两个关系,消除传递函 数对码的传递函数依赖 1)sd(sno,sdept) ,snosdept, sd 3nf 2)dl(sdept,sloc) , sdeptsloc, dl 3nf sno sdept sloc sno sdept sdept sloc sd dl sl函数依赖 t 4. bc范式(bcnf) (修正的第三范式,由boyce和codd提出) 定义: 若r 1nf,如果对于r的每个函数依赖xy,若y ! x,x必含有候选码,则r bcnf 或: 若r中的每个(决定因素)决定属性集x都是候选码 ,则r bcnf 说明 (1) 在满足bcnf的关系中,除候选码之外没有其他的 决定因素(决定属性集) (2) 满足bcnf的关系将消除任何属性(主属性或非主属 性)对码的部分依赖或传递依赖 (3)属于bcnf的关系必然属于3nf,但属于3nf的关系 却不一定属于bcnf (4) 若r中只有一个候选码,则r 3nf, r必然属于 bcnf 例5 关系模式stj(s,t,j) s学生,t 教师,j 课程,假设每个教师 只教一门课;每门课由若干教师教,某一学生选定某 门课,就确定了一个固定的教师。 由其语义得到函数依赖: (s,j)t;(s,t)j;tj。 (s,j),(s,t)都是候选码。 没有任何非主属性对码传递依赖或部分依赖 stj 3nf tj ,t是决定因素, 是主属性,不是候选码 (s,j)t,存在主属性对码的部分依赖和传递 依赖 。 stj bcnf 对stj进行投影分解: (1) st(s,t);(2) tj(t,j) 函数依赖:st中有st; tj中有tj st,tj中没有任何属性对码的部分函数依赖和 传递函数依赖。 所以,st bcnf, tj bcnf j t s j t s st stj函数依赖 t j st tj bcnf小结 1. bcnf在概念上要比3nf简单 1) 3nf涉及到:主码、传递函数、完全依赖 2) bcnf没有涉及 3) 3nf规范化的过程:1nf2nf3nf 4) bcnf规范化的过程:1nfbcnf 5)若r只有一个候选码,则r 3nf,r必属于bcnf。 2. 3nf和bcnf是在函数依赖条件下,对关系模式分解所 能达到的分离程度所进行的测度 1) 若数据库模式中的所有关系模式都属于bcnf,就已经 彻底分离了函数依赖 2) 3nf可能存在主属性对码的部分依赖和传递依赖 3) 当关系模式中具有几个(重叠)的候选码时, 应 3nfbcnf 5、多值依赖 multivalued dependency (1)动机 每门课有多个教师,并且可选用多本参 考书中的一本作为教材 非1nf表示(见下表) courseteachertext 物理prof.green prof.brown 大学物理 新概念物理 数学prof.green prof.martin 数学分析 高等数学 为了在关系模型中表示,必须转换为1nf的r r的码为course,teacher,book,即全码,它属于 3nf,也属于bcnf,因为它没有不平凡的fd存在 但它存在许多问题:冗余、插入异常courseteacherbook 物理green大学物理 物理green新概念物理 物理brown大学物理 物理brown新概念物理 数学green数学分析 数学green高等数学 数学martin数学分析 数学martin高等数学 (2)解决方法 分解为r1(course,teacher)和r2(course, book) 但这种分解并不能由以往的方法进行解释,因为 分解前后仍都是bcnf 以往的理论都是基于函数依赖,但对于不存在不 平凡函数依赖的模式没有任何帮助 需要探讨新的理论 多值依赖 4nf 5. 多值依赖 定义: 设r(u)是属性集u上的一个关系模式。x,y ,z是u的子集,并且z=u-x-y,多值依赖xy成 立当且仅当对r的任一关系r, r在(x, z)上的每个值都 有一组y值对应,这组值仅仅决定于x值而与z值无 关。 若xy,而z = ( 即z为空),则称 xy 为平凡的多值依赖。 否则为非平凡多值依 赖。 数学 数学分析 高等代数 离散数学 王平 张强 course teache book mvd例子 r(course,teacher,text) course teacher, course book 没有不平凡fd,但存在mvd r(sname,class,age) 没有不平凡fd age sname? snameclassage johnc121 rosec221 johnc221 rosec121 若成立,说明sname和 class完全独立 6. 第四范式(4nf) 定义: 若rlnf, 如果对于r的每个非平凡多值依赖 xy (y ! x),若x都含有候选码, 则r 4nf。 说明: 4nf就是限制关系模式的属性之间不允许有非 平凡且非函数依赖的多值依赖。 若一个关系模式是4nf, 则必为bcnf。 例6: 关系模式ctb(course,teache,book) 唯一候选码(course,teache,book),全 码 存在course teache, 非平凡多值依赖 ctb 4nf 采用投影分解法分解为: (1) ct (course,teache) , course teache (2) cb (course, book) , course book 候选码course,多值依赖为平凡多值依赖 消除了非平凡多值依赖 ctb 4nf 7. 第五范式(5nf) 通过投影法,消除属于4nf关系模式中存在的连接依赖 后所得关系模式。 8. 注意: 函数依赖是多值依赖的一种特殊情况,多值依赖是连 接依赖的一种特殊情况。 如果只考虑函数依赖,则属于bcnf的关系模式规范化 程度已最高了。 如果考虑多值依赖,则属于4nf的关系模式规范化程度 是最高的了 函数依赖、多值依赖是语义范畴概念,可由其语义导 出,连接依赖则不是。 4.3 关系模式的规范化 关系模式的规范化: 将一个低一级的关系模式通过投影运算转化为 若干个高一级范式的关系模式的集合。 规范化的基本思想: 逐步消除数据依赖中的不合适部分,使得数据 库模式中的各个关系模式达到某种程度的分离 让一个关系只描述一个实体或实体间的联系 规范化实质: 概念的单一化,用一个关系表示一个实体 1. 关系模式规范化步骤: 1nf 2nf 3nf bcnf 4nf 5nf 消除非主属性对码的部分函数依赖 消除非主属性对码的传递函数依赖 消除主属性对码的部分和传递函数依赖 消除非平凡且非函数多值依赖 消除连接依赖 消除决定属性集 非码的函数依赖 2. 关系模式分解 1) 规范化准则:取原始关系的投影,消去决定因素不是候 选码的函数依赖 2) 通过投影分解运算,把低一级范式的关系模式分离为若 干个高一级范式的关系模式 3)模式分解不是唯一的,但分解后产生的模式应与原模式等 价。 4) 要求分解“既保持函数依赖”,又具有“无损连接性” 保持函数依赖:分解后的关系模式中要保持原关系中的函 数依赖 无损连接性:分解后关系模式,经自然连接的结果与原关 系相等 5)等价分解的三种不同标准: 分解具有“无损连接性”; 分解要“保持函数依赖”; 分解既要“保持函数依赖”,又要具有“无损连接性”。 例1:sl(sno,sdept,sloc) 函数依赖: sno sdept , sdept sloc , sno sloc sl 2nf 对其进行投影分解: 法1:1) s(sno); 2)d(sdept); 3)l(sloc) 丢失了联系,规范化很高5nf 法2:1) nl(sno,sloc); 2)dl(sdept,sloc) 保持了函数依赖,但不具有无损连接性 法3:1) nd(sno,sdept); 2)nl(sno,sloc) 具有无损连接性,但未保持函数依赖 法4:1) nd(sno,sdept); 2)dl(sdept,sloc) 既具有无
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课件比较粗细与宽窄动漫
- 恐龙考古绘画课件
- 受限空间专项培训
- 汽车大灯透镜课件
- 语言研究图解课件
- 油品计量员培训
- 课件概述与具体叙述
- 企业人才培训机构
- 假期教学培训课件大纲
- 交通应急演练培训
- 2025年大型集团财务审计外包服务合同风险防控条款规范
- 2025年国家保安员资格考试复习题库(附答案)
- 2025广西现代物流集团第三次招聘109人笔试备考试题及答案解析
- 辅警考试真题(含答案)
- 新式茶饮基础知识培训课件
- 2025新疆天泽和达水务科技有限公司部分岗位社会招聘28人笔试模拟试题及答案解析
- 巧堆肥劳动课件
- 技术方案评审表-技术选型决策
- 万用表专业培训资料共23张课件
- 启闭机设备安装与调试施工方案
- 神经外科进修汇报总结
评论
0/150
提交评论