版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章关系数据理论内容概述定义: 关系数据库设计理论就是借助于数学工具规定了一 整套的关系数据库设计理论和方法。关系模型(第一篇关系数据库基础理论)0 如何选择一个比较好的关系模式的集合, 每个关系又应该由哪些属性组成。(关系数据理论要解决的问题)关系数据库(第二篇关系数据库设计与应用开发)案例分析设某学校教学所需管理的信息有:课程号f课程名r学号r学生姓 名,学生所在系,系主任,成绩等。一个系有若干个学生,但一个学生只属于一个系;一个学生可以选修多门功课,每门课程可有若干学生选修,每个 学生学习课程有一个成绩。根据以上要求设计教学管理数据库:关系模式1:SCD (学号,学生姓名.学生所在系.
2、系主任,课程号,课程名,成绩) 关系模式2:选择哪一种更好?S1 (学号,学生姓名,学生所在系,系主任)S2(学生姓名,课程名,成绩)学习内容1为什么要选择某些不好的关系模式可能导致哪些问题?2怎么选择关系数据库的规范化理论(重点)3做什么模式分解和模式设计(难点)6.1关系模式的存储异常问题某些不好的关系模式可能导致哪些问题?例如教学管理数据库,以关系模式1为例:SCD (学号,姓名,年龄,部门,系主任,课程号,成绩)在此关系模式中填入一部分具体的数据,则可得到SCD关系模式 的实例.即一个教学管理数据库,如下图所示。关系数据库SCD学号姓名年龄部门系主任课程号成绩S1赵亦17计算机刘伟C1
3、90S1赵亦17计算机刘伟C285S2钱尔18信息王平C557S2钱尔18信息王平C680S2钱尔18信息王平C770S2钱尔18信息王平C570S3孙珊20信息王平C10S3孙珊20信息王平C270S3孙珊20信息王平C485S4李思19自动化刘伟C193分析以上关系中的数据,我们可以看出:(学号,课程号)属性的组 合能唯一标识一个元组,所以(学号,课程号)是该关系模式的主关系键。(1)数据冗余学号S2S2机机算算计计伟伟刘刘号燿C1C285S25253S35354202020C6C7C5C102C4刘伟 C15793系名和系主任的名字、学生的姓名、年龄也都要重复存储多次。数据的冗余度很大浪
4、费了存储空间。存储次数二Z每个学生选修课程门数(1000*10)S1S2S2S2S2S3S3S3S4s5(2)插入异常I机机驸m m尔尔尔尔珊珊. 钱钱钱钱孙孙孙李刘一己20202018息息息息息息息 信信信信信信信伟伟平平平平平平平伟 刘刘王王王王王王王刘噩C1C2C5C6C7C5C1C2C4C19085578070700708593nullnullnull在这个关系模式中,(学号,课程号)是主关键字。根据关 系的实体完整性约束,主关键字的值不能为空,而这时没有学 生,学号,课程号均无值,因此导致插入异常。2021/3/19删除异常信息系学生全部毕业而没有招生时需要删除全部学生的记录 出现的
5、问题:系名、系主任随之删除,而这个系依然存在.在数据库中却 无法找到该系的信息,导致删除异常202119更新异常某系更换系主任,则属于该系的学生记录都要修改内容, 稍有不慎,就有可能漏改某些记录,这就会造成数据的不 一致性,破坏数据的完整性,导致更新异常。6.1关系模式的存储异常问题Why (为什么要进行选择)一个不好的关系模式可能存在以下问题:A数据冗余A插入异常A删除异常A更新异常6. 2怎么选择一个好的关系模式应该具备以下条件:/尽可能小的数据冗余/没有插入异常/没有删除异常/没有更新异常案例分析SCD (学号,姓名,年龄,部门,系主任課程号,成绩)把关系模式SCD分解为下面三个结构简单
6、的关系模式。学生关系S (学号,姓名,年龄,系别) 选课关系SC (学号,课程号,成绩) 系关系D (系名,系主任)2021/3/113学生关系s改进的SCD选课关系SCSN0SNAGEDEPTS1赵亦17计算机S2钱尔18信息S3孙珊20信息S4李思21自动化系关系DDEPTMN计算机刘伟信息王平自动化刘伟SN0CNOSCORES1C190S1C285S2C557S2C680S2C7S2C570S3C10S3C270S3C4852021/3/115改进的SCD特点SNOSNAGEDEPTS1赵亦17计算机S2钱尔18信息S3孙珊20信息S4李思21自动化DEPTMN计算机刘伟信息王平自动化刘
7、伟A分解为三个关系模式后,其特点:SN0CN0SCORES1C190S1C285S2C557S2C680S2C7S2C570当新插入一个系时,只要在关系D中添加一条记录,数据的冗余度明显降低当某个学生尚未选课,只要在关系S中添加一条学生记录,而与选课关系无关, 这就避免了插入异常。当一个系的学生全部毕业时,只需在S中删除该系的全部学生记录,而关系D 中有关该系的信息仍然保留,从而不会引起删除异常。由于数据冗余度的降低,数据没有重复存储,也不会引起更新异常。2021/岔解后的关系模式是一个好的关系数据库模式。156.2关系规范化理论(How)SCD (学号,姓名,年龄,部门,系主任,课程号咸绩)
8、|转换原则:关系规范化理论釐如何按照一定的规范设计关系模式,将结构复杂的关系分解成结构简单的关系.从而把不好的关系数据库 、/模式转变为好的关系数据库模式,这就是关系的规范化学生关系s (学号,姓名,年龄,系别) 选课关系SC (学号,课程号,成绩) 系关系D (系名,系主任)6.2关系规范化理论(How)关系数据库的规范化理论最早是由关系数据库的创始人 E.F.Codd提出的f后经许多专家学者对关系数据库理论作了深入 的研究和发展,形成了一整套有关关系数据库设计的理论。关系数据库的规范化理论主要包括三个方面的内容:函数依赖(数学基础)A范式(Normal Form)(规范化标准)模式分解和模
9、式设计(What,做什么)其中,函数依赖起着核心的作用,是模式分解和模式设计的基础,范式是模式分解的标准。6.2.1函数依赖数据依赖:关系模式中的各属性之间相互依赖、 相互制约的联系。函数依赖 多值依赖 连接依赖其中,函数依赖(Functional Dependency)是 最重要的数据依赖,是关系模式中属性之间的一 种逻辑依赖关系。函数依赖的定义定义 设关系模式R(U, F), U是属性全集,F是U上的函 数依赖集,X和Y是U的子集,如果对于R(U)的任意一个可能的关系对于X的每一个具体值,Y都有唯一的具体值与之对应,则称X决定函数Y,或Y函数依赖于X, 记作X-Y。我们称X为决定因素,Y为
10、依赖因素。A对于关系模式SCDU=学号,姓名,年龄,系别,系主任,课程号,成绩F=学号-姓名,学号-年龄,学号-系别一个学号有多个成绩的值与其对应,因此成绩不能唯一地确定, 即成绩不能函数依赖于学号,所以有:学号 审绩。但是成绩可以被(学号,课程号)唯一地确定。所以可表示 为:(学号,课程号)一成绩。有关函数依赖的几点说明:1函数依赖是语义范畴的概念.反映了一种语义完整性约束,只能根据语义来确定函数依赖.例如,对于关系模式S,当学生不存在重名的情况下,有:姓名年龄 姓名一系别这种函数依赖关系, 成立的,否则就不存在函数依赖了。SN0SNAGEDEPTCsO赵亦17计算机S2钱尔18信息)赵亦2
11、0信息必须是彳生没有重名的学生条件E2021/3/121有关函数依赖的几点说明:2函数依赖与属性之间的联系类型有关。(1)在一个关系模式中,如果属性X与Y有1:1联系时,则存在函数依赖X-Y, Y-X,即X-Y。例如,当学生无重名时,学号姓名。(2)如果属性X与YWl:m的联系时,则只存在函数依赖XY。例如,学号与年龄、系别之间均为l:m联系.所以有学号年龄.学号系别。(3)如果属性X与Y有m: n的联系时,则X与Y之间不存在任何函数依赖关系。 例如.一个学生可以选修多门课程,一门课程又可以为多个学生选修.所以学号与课程号之间不存在函数依赖关系。由于函数依赖与属性之间的联系类型有关,所以在确定
12、属性间的 函数依赖关系时,可以从分析属性间的联系类型入手,便可确定属性 2册函数依赖。21函数依赖的类型完全函数依赖部分函数依赖传递函数依赖完全函数依赖 部分函数依赖定义设关系模式R(U), U是属性全集,X和Y是U的子集, 如果X-Y,并且对于X的任何一个真子集十,都有XY,则称Y 对X完全函数依赖(Full Functional Dependency)如果对X的某个真子集片,有十Y,则称Y对X部分函数依赖 (Partial Functional Dependency)例如,关系模式SCD中.因为学号 成绩.且课程成绩, (学号,课程号)*成绩,所以有:成绩对(学号,课程号)完全函数依赖。而
13、学号*年龄.(学号,课程号)T年龄,所以有年龄对(学号,课程号)部分函数依赖。传递函数依赖定义设有关系模式R (U) , U是属性全集,X, Y, Z是U 的子集,若XY,但而Y-Z (Y X, Z Y),则称Z对X传递函数 依赖(Transitive Functional Dependency)。如果Y-X,则X jY,这时称Z对X直接函数依赖,而不是传递 函数依赖。例如,在关系模式SCD中,学号T系别但系别”学号而系别-系主任,则有系主任对学号传递函数依赖。总结综上所述,函数依赖分为完全函数依赖、 部分函数依赖和传递函数依赖三类,它们是 规范化理论的依据和规范化程度的准则,下面我们将以介绍
14、的这些概念为基础, 进行数据库的规范设计。6.2.2关系模式的范式问题:关系模式用什么标准衡量? 范式 定义:范式是对关系的不同数据依赖程度的要求。将一个低级范 式转换为若干个 高级范式的过程 称作规范化。2021/3/129第一范式(1NF)2021/3/1义:关系模式R的所有的属性值域都是不可再分的o 即不能以集合、序列等作为属性值。学号课程号S1C1S1C2S1C3姓名院系王军资环资源张立资环环境李明资环地信姓名院系王军资环资源张立资环环境李明资环地信分量是否需要再分,与具体应用有关。如果用到值的一部分, 则需要进一步分割。如果只是查询所属院系,则它满足1NF。如果查询两人专业是否相同则
15、不满足1NF。只比较系.需要将院系分龜第二范式(2NF)关系模式s(学号,姓名,系,系主任,课程号5成绩)满足1NF,是否符合一个好的关系模式应该具备的条件呢?插入异常:如果学生没有选课,关于他的个人信息及所在系的信息就无法插入。 删除异常:如果删除学生的选课信息,则有关他的个人信息及所在系的信息也随之删除了。 更新异常:如果学生转系,若他选修了k门课,则需要修改k次。数据冗余:定义:对于关系模式R,若ReiNF,且R中的每二个非主属性完全函数依赖于R的某个候选键.则 RG2NFo从1 NF中消除非主属性对候选键的部分函数 依赖,则获得2NF关系.2021/3/133第二范式(2NF)关系模式
16、竺,姓名,课程号,成绩,系,系主任)(学号,课程号)一成绩学号系学号姓名系系主任姓名成绩.兀全依赖学丐非完全依赖系课程号关系模式S (学号,姓名,课程号,成绩,系系主任) 存在部分函数依赖,不满足第二范式。分解之道:将模式中不完全函数依赖的属性去掉,将部分依赖的属性单独组成新的模式,化为第二范式。选课(学号,课程号,成绩) 学生(学号,姓名,系,系主任)2021/3/135第三范式(3NF)选课(学号,课程号,成绩)学生(学号,姓名,系,系主任)满足2NF,是否符合一个好的关系模式应该具备的条件呢?插入异常:如果系没有学生,关于系及系主任的信息就无法插入。 删除异常:如果删除所有学生的信息,则
17、他所在系的信息也随之删除了。 更新异常: 数据冗余:定义:在关系模式R中,如果YtX, XtA,且X-Y和A电X, 那么称YtA是传递依赖(A传递依赖于Y).如果关系模式R是第二范式,且每个非主属性都不传递依赖于R的候选键.则称R是第三范式(3NF)的模式。则称Re3NFo从2NF中消除非主属性对键的传递依赖。学生(学号,姓名,系,系主任)学号-姓名,系系-系主任传递依赖:学号-系主任关系模式S不满足第三范式,存在非主属性对键的 传递依赖。分解之道:将模式中存在非主属性对键的传递依赖的属性单独组成新的模式,化为第三范式。s(snofsnamezsdept)sdep(sdeptzdept man
18、ager)2021/3/139BCNF定义=如果关系模式R是第一范式,且每个属性 都不传递依赖于R的候选键,那么称R是 BCNF的模式。BCNF范式是第三范式的改进形式,建立在 第一范式的基础上。从BCNF的定义中可以明显得出如下结论:1、所有非主属性对键是完全依赖。2、所有主属性对不包含它的键是完全函数依赖。3、没有属性完全函数依赖于非键的任何的 属性组。2021/3/1#BCNF(S, t) ,(S, C)为候选键。sct(sfcft) 学生#课程#教师 t-c 每位教师只上一门课EC-t 某学生选定一门课,就对应一位老师 bt-c每门课有若干位教师sct(szczt)非BCNF的不良特性
19、插辭蹿計某位老师的任课则该老师担任删除异常:IIIJII0除学生选课信息会删除掉老师的任课信息。隔翼鑑欝鸚程有所改动则所有选修该老数据冗余:每位学生都存储了有关老师所教授的课程的信息。症由:主属性对键的不良依赖。2021/3/143sct(szczt)如set BCNF,因为tTCy而t不含有键。改造将set分解为(S, t) ,(t, c) oCNF是基于函数依赖的最高范式但不是数据库模式设计的最高范式范式之间的关系1NF消去非主属性对键的部分函数依赖2NF消去非主属性对键的传递函数依赖3NF消去主属性对键的传递函数依赖BCNF2021/3/145BCNF的不良特性2021/3/1关系模式T
20、EACH (C#, P#, B#), 一门课程由多个教 员担任,一门课程使用相同的一套参考书。它的码是(C#, P#, B#),所以属于BCNFoC#P#B#C1P1,P2B1,B2C2P1.P3B3,B4c#P#B#C1P1B1C1P1B2C1P2B1C1P2B2C2P1B3C2P1B4C2P3B3C2P3B4 446.2.4多值依赖插入异常:当某门课程增加一名教员时,该门课程有多少本参 考书就必须插入多少个元组;同样当某门课程需要增加一本 参考书时,它有多少个教员就必须插入多少个元组。删除异常:当删除一门课程的某个教员或者某本参考书时,需 要删除多个元组。更新异常:当一门课程的教员或参考书
21、作出改变时,需要修改 多个元组。数据冗余:同一门课的教员与参考书的信息被反复存储多次。定义描述型:关系模式R(U), X、Y、ZuU,并且Z = U -X-Y,多值依赖XttY成立当且仅当对R(U)的 任一关系匚给定的一对(x, z)值有一组Y的值, 这组值仅仅决定于x值而与z值无关。如在关系模式TEACH中,对(C1 , B1)W一组P#值 (P1 , P2),对(C1 3 B2)也有一组P#值(P1 ,P2),这 组值仅取决于C#的取值,而与B#的取值无关。因 此,P#多值依赖于C#,记作C#ttP#,同样有 C# tt B#o2021/3/149多值依赖形式化:关系模式R(U), X、Y
22、、ZaU, Z=U-X-Y, 对于R(U)的任一关系匚若存在元mt1, t2,使得 t1X = t2X,那么就必然存在元组t3, t4,使得:t3X = t4X = t1 X = t2 Xt3Y = t1Y, t4Y = t2Yt3Z = t2Z, t4Z = t1 Z则称Y多值依赖与X,记作XYo若(C#, P#5 B#)满足C#ttP#,含有元组t1=(Ch P15B1), t2=(C1,P2,B2),则也一定含有元组t3=(C1, P15B2), t4=(C15P25B1)o一般,当关系至少有三个属性,其中的两个是多 值时,且他们的值只依赖于第三个属性时,才 会有多值依赖;多值依赖会导致
23、更新异常,要删除异常,需消除 多值依赖,可以通过建立两个关系,每个关系 只存储一个多值属性的数据.一个关系如果在BCNF中,且没有多值依赖,则2021/3/153该关系在第四范式中.对于W的每一个值有一个主I整的集与它对应不论C取什么值,举例:关系模式WSC(W5S5C)中,W表示仓库,S表示保管员,C表示商 品。假设每个仓库有若干个保管员,有若干种商品。每个保管 员保管所在仓库的所有商品,每种商品被所有保管员保管。练习:设关系模式R(A,B,C)上有一个多值依赖AB,如果R中已有(ab1c1), (ab2c2), (ab3c3),那么这些关系 中至少还应该存在哪些元组。至少还存在6个元组:(
24、ablc2)(ab2cl)(ablc3)(ab3cl)(ab2c3)(ab3c2)2021/3/1#练习:找出关系上所满足的多值依赖。多值依赖性质多值依赖具有对称性,即若XttY,则XttZ,其中z=u-x_y。函数依赖是多值依赖的特例,即若XtY,则XttY。若XttY, U-X-Y=(p,则称XttY为平凡的 多值依赖。2021/3/1596.2.5 4NF定义关系模式Re1NF,若XttY (YgX)是非平凡的多值 依赖,且X含有键,则称Re4NFo如关系模式CPB, C#ttP#, C#ttB#,键为(C#, P#5 B#),所以CPBe4NF。如果一门课Ci有m个教员,n本参考书,则
25、关系中分 量为Ci的元组共有mxn个,数据冗余非常大。改造将CPB分解为CP (C#, P#) , CB (C#, B#),在 分解后的关系中分量为Ci的元组共有m + n个。6.3函数依赖的公理系统有时候要根据给定的函数依赖,判断另外 一些函数依赖是否存在,例如:已知对于关系模式R :At B,B t C问A t C能否成立?问题:函数依赖的逻辑蕴涵问题。定义设F是关系模式R的一个函数依赖集, X畀是R的属性子集,如果从F中的函数 依赖能够推出X-Y,则称F逻辑蕴涵 XtY,记为 FI 二XtY2021/3/161推理规则定义:在关系模式R中,为F所逻辑蕴涵 的函数依赖的全体构成的集合称作F
26、 的闭包,记作F+。F+ 二 X tY| F 匸XtY例:F 二XtY , YtZ,则XtZ a F+o闭包的计算是一个复杂的工作,F不大f F+也可能很大。Armstrong 公理x, Y, z是属性集,2021/3/165自反律。若 YaX,则 XtY。增广律。若XtY,则XZtYZ。 传递律。若XtY, Yt乙则XtZ。推理由Armstrong公理导出的推理规则合并律。若XtY, Xt乙则XtYZ。分解律。若XtYZ,则XtY, XtZ。 伪传递律。若XtY, WYt乙则XWtZ。2021/3/167举例:已知:F = AtB,CtD,且Cg B试推导F=| AtD由CuB和自反律f得到
27、B 由AtB和BtC得AtC 由 AtC 和 CtD,得 AtD 已知:F 二XYtW,YtZ,WZtP ,WQtQR ,QtX,用推理公理证明F=| XY tP证明:由XYtW和WZtP得XYZtP (伪传递律) 由 YtZ 得 XYtXYZ由XYtXYZ 和XYZtP 得到XYtP2021/3/169设关系R ( A,BCD),同时满足ABtC, CtD, DtA。该关 系的候选键是什么?哪一个是主键,哪些是主属性,该关系中有无超键?解:R的一个属性集合是R的候选键,当且仅当这个集合函数决定该关系 的每个属性。即候选键函数决定属性A,B,D。候选键为AB和DBfBC0 因为ABtA,ABt
28、B (自反律)ABtC (已知)ABtC, CtD得到ABtD。所以AB是R的候选键f因为它 函数决定R的所有其他属性。同理:DB是R的候选键。该关系的主属性是A,BCD有3个候选键,只能选_个作主键(PK),根据实际情况选择。 超键有很多:ABC, ABC Df D BA, D BCf D BAC应用:判断范式级别给定关系模式和函数依赖集合,要求判断达到的最高范式。 方法:1. 求出给定关系的候选键(可能不止一个)2. 根据键,写出主属性和非主属性。3. 判断是否满足第一范式(看属性的值域是否可以分解)4. 判断是否满足第二范式(非主属性对键的部分函数依赖)5. 判断是否满足第三范式(非主属性对键的传递函数依赖)6. 判断是否满足BCNF范式(主属性对键的传递函数依赖)2021/3/171举例1.已知关系r ( AfBfCDfE )和F二ABtCEE tABCtD,该关系的最高范式是什么? 解:1、关系r的候选键为:AB和E。因为:(AB)+=ABCED(E) +=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国邮政储蓄银行股份有限公司普洱市分行招聘见习人员(10人)参考考试题库附答案解析
- 塑胶颜料生产管理制度
- 企业安全生产变更制度
- 食品生产经营记录制度
- 养鸡场生产安全管理制度
- 2026浙江台州市温岭市滨海交警中队面向社会招聘警务辅助人员1人备考考试题库附答案解析
- 安全生产宣教工作制度
- 丰田CE生产制度
- 安全生产专家检查制度
- 旅馆安全生产管理制度
- 保利入职培训
- 2023年福建省能源石化集团有限责任公司社会招聘笔试真题
- 牛羊肉精深加工项目可行性研究报告
- 普通国省道养护工程(线预防养护)设计说明
- FZT 43046-2017 锦纶弹力丝织物
- 无人驾驶(从想象到现实)
- 货物供应方案及运输方案
- 三片罐行业分析
- 道德经和道家智慧课件
- 中国家庭金融调查报告
- 高中数学人教A版(2019)选择性必修第三册教材解读与教学分析 课件-2023年高中数学新教材培训
评论
0/150
提交评论