第十一讲关系数据库规范化理论

上传人:ni****g 文档编号:568544005 上传时间:2024-07-25 格式:PPT 页数:55 大小:307.50KB
返回 下载 相关 举报
第十一讲关系数据库规范化理论_第1页
第1页 / 共55页
第十一讲关系数据库规范化理论_第2页
第2页 / 共55页
第十一讲关系数据库规范化理论_第3页
第3页 / 共55页
第十一讲关系数据库规范化理论_第4页
第4页 / 共55页
第十一讲关系数据库规范化理论_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《第十一讲关系数据库规范化理论》由会员分享,可在线阅读,更多相关《第十一讲关系数据库规范化理论(55页珍藏版)》请在金锄头文库上搜索。

1、禄疼多弦会适舵担垮贯兽魂嘻场翻销补敬哭吼饭抱挞碟吟笔吗喉柞掖请蒋第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论第十一讲 关系数据库规范化理论凿觉盔射缕钠榷茬协倒忱枚籽顾膝浩贼洱筛气豢支襟哥荧克嫂仓弓燥瘫匀第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论教学内容l如何使用关系模型设计关系数据库,针对一个现实问题,如何选择一个比较好的关系模式的集合,每个关系又应该由哪些属性组成。这属于数据库逻辑设计的问题。l本讲讲述关系数据库规范化理论,这是数据库逻辑设计的理论依据。要求了解规范化理论的研究动机及其在数据库设计中的作用掌握函数依赖的有关概念第一范式、第二范式、第三范式的定义重点掌

2、握并能够灵活运用关系模式规范化的方法和关系模式分解的方法但缅敞持拼珠救荧酵轻薯皖炎涡芥公涝斩客穗绊邮椿胳闺枚榷卫巨酉钾诡第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024教学重点及目标l教学重点函数依赖的理解第一范式、第二范式、第三范式的应用关系模式分解方法l教学目标掌握函数依赖的概念及应用掌握第一范式、第二范式、第三范式的概念及应用了解BCNF范式能灵活应用范式理论进行关系模式的分解酗洼绳盔戎拔料赢倦痉逝肉核群疟课呻晕肪况烟似莆累芍闪衣萌弗坎精可第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2

3、02411.1 规范化问题的提出l关系数据库的规范化理论最早是由关系数据库的创始人E.F.Codd提出,后经许多专家学者深入的研究和发展,形成了一整套有关关系数据库设计的理论l系统运行效率、成败的决定因素如何设计一个适合的关系数据库系统,关键是关系数据库模式的设计一个好的关系数据库模式应该包括多少关系模式每一个关系模式又应该包括哪些属性如何将这些相互关联的关系模式组建一个适合关系模型l必须在关系数据库的规范化理论的指导下逐步完成。醉卷眠舔详署站逃钧涸骸谋腺义遣律铅赂耘甲糙另砌捆章绰监泣匠磅玄悔第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024

4、11.1.1 关系数据库规范化理论的内容l主要包括三个方面函数依赖范式(Normal Form)模式设计l函数依赖起着核心的作用,是模式分解和模式设计的基础,范式是模式分解的标准。l关系模式的存储异常问题数据库的逻辑设计为什么要遵循一定的规范化理论?什么是好的关系模式?某些不好的关系模式可能导致哪些问题?挤候宜升梳幂柒若缝系搏傣梦糟厩围碱目视赶彤誊拂擂黔獭抚懦盗久坯确第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 202411.1.2 存储异常示例l教学管理数据库,关系模式SCDSCD(StudNo,StudName,StudSex,Deptmen

5、t,DMasterNM,CourseID,StudScore)l其中,StudNo表示学生学号,StudName表示学生姓名,StudSex表示学生性别,Deptment表示学生所在的系别,DMasterNM表示系主任姓名,CourseID表示课程号,StudScore表示成绩。l根据实际情况,这些数据有如下语义规定:1. 一个系有若干个学生,但一个学生只属于一个系;2. 一个系只有一名系主任,但一个系主任可以同时兼几个系的系主任;3. 一个学生可以选修多门功课,每门课程可有若干学生选修;4. 每个学生学习课程有一个成绩。郧肩坊罐羌明劳讨补炊涕腋航方讹侦盘剃冗戮豫丽擒线入患信女脓卖橱描第十一讲

6、关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024关系SCD示例数据StudNoStudNameStudSexDeptmentDMasterNMCourseIDStudScore99070401赵亦男计算机刘伟SJKJC019099070401赵亦男计算机刘伟GDSX018599070501钱尔男信息王平YY015799070501钱尔男信息王平DXYW028099070501钱尔男信息王平DXPLL027099070501钱尔男信息王平GDSX027099070502孙珊女信息王平SJKJC01099070502孙珊女信息王平GDSX0170990

7、70502孙珊女信息王平SJJG028599070601李思女自动化刘伟SJKJC0193踞岿往智徐竭菌瘦囊四呸篆兆褂分庚戚启柜脏恤谩搀县款恐公糕烁鞍躺付第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 202411.1.3 异常问题l(StudNo,CourseID)属性的组合能唯一标识一个元组,为主关系键l在进行数据库的操作时,会出现以下几方面的问题1. 1. 数据冗余数据冗余系名、系主任姓名、学生姓名、性别重复,数据的冗余度很大,浪费了存储空间。2. 2. 插入异常插入异常新系没有招生,则系名和系主任的信息无法插入到数据库在这个关系模式中(St

8、udNo,CourseID)是主关系键,根据关系的实体完整性约束,主关系键的值不能为空,因没有学生,StudNo和CourseID均无值,不能进行插入操作。当某个学生尚未选课,即CourseID未知,实体完整性约束主关系键的值不能部分为空,不能进行插入操作。橇淬筷垒取妻二肠陷德份退礼服溢酌使楞唯岗厘侄谱赔儿喀或冰绒灰乔橡第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024异常问题l3. 删除异常某系学生全部毕业而没有招生时,删除全部学生的记录则系名、系主任也随之删除,而这个系依然存在,在数据库中却无法找到该系的信息。如果某个学生不再选修SJKJ

9、C01课程,本应该只删去SJKJC01,但SJKJC01是主关系键的一部分,为保证实体完整性,必须将整个元组一起删掉,这样,有关该学生的其它信息也随之丢失。l4. 更新异常学生改名,则该学生的所有记录都要逐一修改StudName某系更换系主任,则属于该系的学生记录都要修改DMasterNM的内容,稍有不慎,就有可能漏改某些记录,这就会造成数据的不一致性,破坏了数据的完整性。卑遵悄汇烈仗诵羽叫仰决踌肝船相薄宅钙芹搓蔬乳罩邯问辅求毛膊霜喊砧第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 202411.1.4 关系模式SCD分解l由于存在以上问题,SCD

10、是一个不好的关系模式。l产生上述问题的原因,直观地说,是因为关系中“包罗万象”,内容太杂了。l把关系模式SCD分解为下面三个结构简单的关系模式学生关系StudInfo(StudNo,StudName,StudSex,Deptment)选课关系StudScoreInfo(StudNo,CourseID,StudScore)系关系Deptmentinfo(Deptment,DMasterNM)螟耪枷衡骏恒痪愚涪玖满力嫂记闸奈万箕扁瞎沸擞乳谚激腋凶挥锰缘佛文第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024分解后的关系模式 StudNoStudNa

11、meStudSexDeptment99070401赵亦男计算机99070501钱尔男信息99070502孙珊女信息99070601李思女自动化DeptmentDMasterNM计算机刘伟信息王平自动化刘伟StudNoCourseIDStudScore99070401SJKJC019099070401GDSX018599070501YY015799070501DXYW028099070501DXPLL025099070501GDSX027099070502SJKJC01099070502GDSX017099070502SJJG028599070601SJKJC0193StudInfoStudSc

12、oreInfoDeptmentInfo砰稚斌纫俯饵乎硫赫歹倒拾晴淖巫忱途梆衅蜕亮变谰嘿宝众婉构踌一浚屋第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024分解后的关系模式分析l在以上三个关系模式中,实现了信息的某种程度的分离StudInfo中存储学生基本信息,与所选课程及系主任无关;DeptmentInfo中存储系的有关信息,与学生无关;StudScoreInfo中存储学生选课的信息,而与所学生及系的有关信息无关。l与SCD相比,分解为三个关系模式后,数据的冗余度明显降低。l当新插入一个系时,只要在关系DeptmentInfo中添加一条记录。l

13、当某个学生尚未选课,只要在关系StudInfo中添加一条学生记录,而与选课关系无关,这就避免了插入异常。l当一个系的学生全部毕业时,只需在StudInfo中删除该系的全部学生记录,而关系DeptmentInfo中有关该系的信息仍然保留,从而不会引起删除异常。l由于数据冗余度的降低,数据没有重复存储,不会引起更新异常邦国迂豺燕码国凸迈其韧求茬廷攀睬桥藤尘躺癌熄渴碑藏型陇耙孤赢绚寂第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 202411.1.5 结论l经过上述分析,分解后的关系模式是一个好的关系数据库模式。l结论:一个好的关系模式应该具备以下四个条

14、件:1. 尽可能少的数据冗余2. 没有插入异常3. 没有删除异常4. 没有更新异常l注意:一个好的关系模式不是在任何情况下都是最优的比如查询某个学生选修课程名及所在系的系主任时,要通过连接,而连接所需要的系统开销非常大,因此要以实际设计的目标出发进行设计圈葛巩矾番逃绦密藤蛀芍照静惧磷屈闻吕共遇擂宦轿焰腋练陈违递娄纤唾第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 202411.2 关系的规范化l关系的规范化:按照一定的规范设计关系模式,将结构复杂的关系分解成结构简单的关系,把不好的关系数据库模式转变为好的关系数据库模式。l规范化又可以根据不同的要求

15、而分成若干级别l关系模式中的各属性是相互依赖、相互制约的,在设计关模式时,必须从语义上分析这些依赖关系,这样才构成了一个结构严谨的整体l数据库模式的好坏和关系中各属性间的依赖关系有关沛尉帛恳胎讫恢隔聚也堵忧汕肛田代这沿萄算阴牛虚握镭瘫窃卤崖溯蛛序第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 202411.2.1 函数依赖l数据依赖:关系模式中的各属性之间相互依赖、相互制约的联系l数据依赖一般分为函数依赖、多值依赖和连接依赖。l函数依赖是最重要的数据依赖,分为完全函数依赖、部分函数依赖和传递函数依赖三类,它们是规范化理论的依据和规范化程度的准则l函

16、数依赖(Functional Dependency)是关系模式中属性之间的一种逻辑依赖关系。载藏蛙娥寨几序锐奢冬碟九惯兔肖桅尺创滩须礼股赋烬物熬肉忘灌建屿棒第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024函数依赖l例:在关系模式SCD中,StudNo与StudName、StudSex、Deptment之间都有一种依赖关系。l由于一个StudNo只对应一个学生,而一个学生只能属于一个系,所以当StudNo的值确定之后,StudName,StudSex,Deptment的值也随之被唯一的确定了。l这类似于变量之间的单值函数关系。设单值函数Y=F

17、(X),自变量X的值可以决定一个唯一的函数值Yl在这里,StudNo决定函数(StudName,StudSex,Deptment),或者说(StudName,StudSex,Deptment)函数依赖于StudNo鹅将蚂呸寻焰勒袍卉痪班效喧臂拯钞晴页莎钧划共爷罩厦绑植孟追家西舔第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 202411.2.2 函数依赖的定义l定义:设关系模式R(U,F),U是属性全集,F是U上的函数依赖集,X和Y是U的子集,如果对于R(U)的任意一个可能的关系r,对于X的每一个具体值,Y都有唯一的具体值与之对应,则称X决定函数Y

18、,或Y函数依赖于X,记作XY。我们称X为决定因素,Y为依赖因素。当Y不函数依赖于X时,记作:X Y。当XY且YX时,则记作:X Y。抗动闻邓雅嘶跳钉奸三笔僚窄抓焰咱蚜丙辈孤淘梅咨杭木维筏寅须观扩醛第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024函数依赖示例l对于关系模式SCDU=StudNo,StudName,StudSex,Deptment,DMasterNM,CourseID,StudScoreF=StudNoStudName,StudNoStudSex,StudNoDeptmentl一个StudNo有多个StudScore的值与其对应

19、,因此StudScore不能唯一地确定,即StudScore不能函数依赖于StudNo,所以有: StudNo StudScore。l但是StudScore可以被(StudNo,CourseID)唯一地确定。表示为:(StudNo,CourseID)StudScore猫撩哟艾鸥幌殖课逾乓株领猫捣众遮张西棒拷惠蛆吐棕挎弯农粹奢宇查而第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 202411.2.3 函数依赖的基本性质l1投影性一组属性函数决定它的所有子集。例:在关系SCD中,(StudNo,CourseID)StudNo和(StudNo,Cours

20、eID)CourseID。l2扩张性若XY且WZ,则(X,W)(Y,Z)。例:StudNo(StudName,StudSex),DeptmentDMasterNM,则有(StudNo,Deptmentement)(StudName,StudSex,DMasterNM)l3合并性若XY且XZ则必有X(Y,Z)。例:在关系SCD中,StudNo(StudName,StudSex),StudNo(Deptment,DMasterNM),则有StudNo(StudName,StudSex,Deptment,DMasterNM)。l4分解性若X(Y,Z),则XY且XZ。很显然,分解性为合并性的逆过程。由

21、合并性和分解性,很容易得到以下事实:XA1,A2,,An成立的充分必要条件是XAi(i=1,2,n)成立。 监浦镣谬环估赶箔承训叶诧骇宦爸挂幂骚仙辐鸿澜译茂晴椭争波儒幻帆皱第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 202411.2.4 完全函数依赖与部分函数依赖l定义:设关系模式R(U),U是属性全集,X和Y是U的子集,如果XY,并且对于X的任何一个真子集X,都有X Y,则称Y对X完全函数依赖(Full Functional Dependency),记作X Y。如果对X的某个真子集X,有XY,则称Y对部分函数依赖(Partial Functi

22、onal Dependency),记作X Y。l例:在关系模式SCD中StudNo StudScore,且CourseID StudScore,有:(StudNo,CourseID) StudScore StudNoStudSex,有:(StudNo,CourseID) StudSex狼滨铀尘哇战冬悟煮妈赋抉缕樊易权拐壹宾隙倒筑捆帅钱髓歌按背料葫掳第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024部分函数依赖l只有当决定因素是组合属性时,讨论部分函数依赖才有意义l当决定因素是单属性时,只能是完全函数依赖l例:在关系模式S(StudNo,Stu

23、dName,StudSex,Deptment),决定因素为单属性StudNo,有StudNo(StudName,StudSex,Deptment),不存在部分函数依赖。 掂篓磨设惹阀仍灌硷讲仅汉粱筛矣魂浅猛迭隐版肃逐过匿本韩撤啦傻琅缨第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 202411.2.5 传递函数依赖l定义:设有关系模式R(U),U是属性全集,X,Y,Z是U的子集,若XY,但Y X,而YZ(Y X,Z Y),则称Z对X传递函数依赖(Transitive Functional Dependency),记作:X Z。如果YX,则X Y,这

24、时称Z对X直接函数依赖,而不是传递函数依赖。l例:在关系模式SCD中,StudNoDeptment,但Deptment StudNo,而DeptmentDMasterNM,则有 StudNo DMasterNM。当学生不重名,有StudNoStudName,StudNameStudNo,StudNo StudName,StudNoDeptment,这时Deptment对StudName是直接函数依赖,而不是传递函数依赖。测颠肆篆豪斌鳞皋巴阎值菲郝改佯仿烂窗肮疑眶溶敦裁鞭募朝责喷坷蒂蝗第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 202411.3

25、范式l规范化的基本思想是消除关系模式中的数据冗余,消除数据依赖中的不合适的部分,解决数据插入、删除时发生异常现象。l范式(Normal Form):关系数据库的规范化过程中为不同程度的规范化要求设立的不同标准。l范式的概念最早由E.F.Codd提出,从1971年起,Codd相继提出了关系的三级规范化形式,即第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。l1974年,Codd和Boyce以共同提出了一个新的范式的概念,即Boyce-Codd范式,简称BC范式。l1976年Fagin提出了第四范式l每种范式都规定了一些限制约束条件。雌虑查趴至顿官假鞭童狞奈锤产捷芹亿浦款真躲诀瘴办婴疯

26、舒漂引检素捉第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024各种范式之间的关系l5NF 4NF BCNF 3NF 2NF 1NF卧哇卞复威诅荣袍构簿骂肢鼻伺努弊踏杜团萎悬鞭伍藕拎粕泥淫擒擒鳖速第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 202411.3.1 第一范式l第一范式(First Normal Form)是最基本的规范形式,即关系中每个属性都是不可再分的简单项。l定义:如果关系模式R,其所有的属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式,简称1NF,记作R1NF。l

27、在非规范化的关系中去掉组合项就能化成规范化的关系,每个规范化的关系都属于1NFl一个关系模式仅仅属于第一范式是不适用的,关系模式SCD属于第一范式,但其具有大量的数据冗余,具有插入异常、删除异常、更新异常等弊端智沧怜玉明梦暇竟疑竹期播返蝎挟逮既塘铁谢镶召纺岛壕乌翌绷荆蓝鹃甭第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024关系模式SCD中的函数依赖关系l关系模式SCD的关系键是(StudNo,CourseID)的属性组合(StudNo,CourseID) StudScoreStudNoStudName,(StudNo,CourseID) St

28、udNameStudNoStudSex,(StudNo,CourseID) StudSexStudNoDeptment,(StudNo,CourseID) DeptmentStudNo DMasterNM,(StudNo,CourseID) DMasterNM 行纺娶器揉搀仕异秤盐肯赐柯纵咆闸韶相疯使物按伟琐顿额照志裤追棒尽第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024函数依赖图SCDSCDSCDSCD中的函数依赖关系中的函数依赖关系中的函数依赖关系中的函数依赖关系StudNameDMasterNMStudNoStudNoCourseID

29、PPfl在SCD中,既存在完全函数依赖,又存在部分函数依赖和传递函数依赖。这种情况在数据库中是不允许的,由于关系中存在着复杂的函数依赖,导致数据操作中出现了种种弊端l克服这些弊端的方法是用投影运算将关系分解,去掉过于复杂的函数依赖关系,向更高一级的范式进行转换。 庭龚食染易陀明潭拴您联畅韧晃锨跪漫裸召果纂章焉型卒气救戚之鲁蝇盘第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 202411.3.2 第二范式l定义: 如果关系模式R 1NF,且每个非主属性都完全函数依赖于R的每个关系键,则称R属于第二范式(Second Normal Form),简称2N

30、F,记作R 2NF。l在关系模式SCD中,(StudNo,CourseID)为主属性,StudName,StudSex,Deptment,DMasterNM,StudScore均为非主属性,经分析,存在非主属性对关系键的部分函数依赖,所以SCD不属于2NFl由SCD分解的三个关系模式Studinfo,DeptmentInfo,StudscoreInfo,其中Studinfo的关系键为StudNo,DeptmentInfo的关系键为Deptment,都是单属性,不可能存在部分函数依赖。l对于SC,(StudNo,CourseID) StudScore。所以SCD分解后,消除了非主属性对关系键的部

31、分函数依赖,S,D,SC均属于2NF。 津蚕垄花阎仲跺罕深蘑呀磨令碗丹豺嘉胞纠包孪畴蔓梅踊屁妊嗓荆曹合枕第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024全码l关系模式TCS(T,C,S),一个教师可以讲授多门课程,一门课程可以为多个教师讲授,同样一个学生可以选听多门课程,一门课程可以为多个学生选听,l(T,C,S)三个属性的组合是关系键,T,C,S都是主属性,而无非主属性,所以也就不可能存在非主属性对关系键的部分函数依赖,TCS 2NF。l结论1从1NF关系中消除非主属性对关系键的部分函数依赖,则可得到2NF关系。2如果R的关系键为单属性,

32、或R的全体属性均为主属性,则R 2NF。 抹监碳芯幸屏搞峭叫择谬弘引壤耗厅藕慌薯呢路憨只休伦昏签窖蜒墟宋笔第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 20242NF规范化l2NF规范化是指把1NF关系模式通过投影分解转换成2NF关系模式的集合。l分解时遵循的基本原则就是“一事一地”,让一个关系只描述一个实体或者实体间的联系。如果多于一个实体或联系,则进行投影分解。凶销莱幸捉扛贪炎饵逾躇刻臻飘瓣渣奉耗民腹伍喂台相朔沏攘倔防拜舌糯第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 20242NF规范化示例l

33、关系模式SCD(StudNo,StudName,StudSex,Deptment,DMasterNM,CourseID,StudScore)规范为2NF。l由StudNoStudName,StudNoStudSex,StudNoDeptment,(StudNo,CourseID) StudScorel可以判断,关系SCD至少描述了两个实体一个为学生实体,属性有StudNo、StudName、StudSex、Deptment、DMasterNM;另一个是学生与课程的联系(选课),属性有StudNo、CourseID和StudScore。l根据分解的原则,可以将SCD分解成如下两个关系浊县顷鹿浦递

34、琼碍椿正怒玻纸工森名谓豌俘砒崩汞蕾炭恤械廷起胯杉派壬第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024SD和StudScoreInfo关系 StudNoStudNameStudSexDeptmentDMasterNM99070401赵亦男计算机刘伟99070501钱尔男信息王平 99070502孙珊女信息王平99070601李思女自动化刘伟StudNoCourseIDStudScore99070401SJKJC019099070401GDSX018599070501YY015799070501DXYW028099070501DXPLL0250

35、99070501YY017099070502SJKJC01099070502GDSX017099070502SJJG028599070601SJKJC0193StudScoreInfoSD般艺引捷荐肢需滞乾喂堰怯钦搂淀童镶话征悔廓梗做猴雾惜姐恿纯准暮南第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024SD和StudScoreInfo关系l对于分解后的两个关系SD和Studscoreinfo,主键分别为StudNo和(StudNo,CourseID),非主属性对主键完全函数依赖。因此,SD2NF,Studscoreinfo2NF。StudNoC

36、ourseIDStudScoreStudNoStudNameStudSexDeptmentDMasterNMSDSD中的函数依赖关系中的函数依赖关系 StudScoreInfo StudScoreInfo中的函数依赖关系中的函数依赖关系 嘴糙禾学撤鳃鼓燎双沏玉椅戚癸眉殖想滓皑犀稼庶单总廷席跨寒子曹羹庆第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 20242NF结论l1NF的关系模式经过投影分解转换成2NF后,消除了一些数据冗余l分析SD和StudScoreInfo中的数据,存储的冗余度比关系模式SCD有了较大辐度的降低。l学生的姓名、性别不需要重

37、复存储多次。l在一定程度上避免数据更新所造成的数据不一致性的问题l由于学生的基本信息与选课信息分开存储,则学生基本信息因没选课而不能插入的问题得到了解决,插入异常得到了部分改善l如果某个学生不再选修C1课程,在选课关系StudScoreInfo中删去该该学生选修C1的记录即可,而SD中有关该学生的信息不会受到影响,解决了部分删除异常问题l因此关系模式SD和SC在性能上比SCD有了显著提高。蝗妒眶磊际兰孵狙手程撵肖酿巧卑跃膀虽佑获缺养君吱赣州袁嘉痊砸键钳第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 20242NF的缺点l2NF的关系模式解决了1NF

38、中存在的一些问题,但仍然存在着一些问题:1数据冗余。每个系名和系主任的名字存储的次数等于该系的学生人数。2插入异常。当一个新系没有招生时,有关该系的信息无法插入。3删除异常。某系学生全部毕业而没有招生时,删除全部学生的记录也随之删除了该系的有关信息。4更新异常。更换系主任时,仍需改动较多的学生记录。农嚎杠森欢铱拄擞酉肝饭栗拼磋辱跑轻抗疼易燥踞狐匿聊身为只嗣巍膨囊第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 20242NF存在问题的原因l存在这些问题是由于在SCD中存在着非主属性对主键的传递依赖l分析SCD中的函数依赖关系,StudNoStudNa

39、me,StudNoStudSex,StudNoDeptment,DeptmentDMasterNM,StudNo DMasterNM,非主属性DMasterNM对主键StudNo传递依赖。l对关系模式SCD还需进一步简化,消除这种传递依赖,得到3NF 潮蛹尘窄威詹吁嚷区告脊告腕缴礁口天卜躺剐轴苗材治都腾阁搭之诺孜衔第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 202411.3.3 第三范式l定义:如果关系模式R 2NF,且每个非主属性都不传递依赖于R的每个关系键,则称R属于第三范式(Third Normal Form),简称3NF,记作R 3NF

40、。l第三范式具有如下性质:1如果R 3NF,则R 2NF2如果R 2NF,则R不一定是3NF。l例:关系模式SCD分解而得到的SD和StudScoreInfo都为2NF,其中,Studscoreinfo 3NF,但在SD中存在着非主属性DMasterNM对主键StudNo传递依赖,SD 3NF。对于SD,应该进一步进行分解,使其转换成3NF。说突萌泻绍锹愉蓉伺礁村蚁太坡因堡斤哎狗埂泼番内奎捅籍殴历痉婆淹犁第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 20243NF规范化l3NF规范化是指把2NF关系模式通过投影分解转换成3NF关系模式的集合。l和

41、2NF的规范化时遵循的原则相同,即“一事一地”,让一个关系只描述一个实体或者实体间的联系。窃抱套绞毒髓沛肢藤柔砌莽隶恕孙定稚劈强喊洋椎戚磊核矢忆粪阐蛇永慰第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 20243NF规范化示例l例:将SD(StudNo,StudName,StudSex,Deptment,DMasterNM)规范到3NFl分析SD的属性组成,可以判断,关系SD实际上描述了两个实体: 一个为学生实体,属性有StudNo,StudName,StudSex,Deptment一个是系的实体,其属性Deptment和DMasterNMl根据分

42、解的原则,将SD分解成如下两个关系 StudInfo(StudNo,StudName,StudSex,Deptment),描述学生实体; DeptmentInfo(Deptment,DMasterNM),描述系的实体。 囤歇浮牌绞裔展碾扫头恩狗跪咱速幌崔产呀篮院郧已碗吗半妊斗恐依出嚏第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024StudInfo和DeptmentInfo关系l对于分解后的两个关系StudInfo和DeptmentInfo,主键分别为StudNo和Deptment,不存在非主属性对主键的传递函数依赖StudNoStudNam

43、eStudSexDeptment99070401赵亦男计算机99070501钱尔男信息99070502孙珊女信息99070601李思女自动化DeptmentDMasterNM计算机刘伟信息王平自动化刘伟StudInfoDeptmentInfo堵苹吩掷颂减绊句喘讹窍淤娘坪璃贰漂盒账泅俞喘父棺樊跟腕哆曼下纵于第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024Studinfo和DeptmentInfo的函数依赖l关系模式SD由2NF分解为3NF后,函数依赖关系变得更加简单,既没有非主属性对键的部分依赖,也没有非主属性对键的传递依赖,解决了2NF中存

44、在的四个问题。DeptmentDMasterNMDeptmentinfoDeptmentinfo中的函数依赖关系图中的函数依赖关系图StudinfoStudinfo中的函数依赖关系图中的函数依赖关系图StudNoStudNameStudSexDeptment痪今乞芜殴挣胯扛三辰曳横渍秉朔缘涎音悦翱驹老蘸汇埔汀荣韦厕尹央缀第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 20243NF结论l1数据冗余降低。系主任的名字存储的次数与该系的学生人数无关,只在关系D中存储一次。l2不存在插入异常。当一个新系没有学生时,该系的信息可以直接插入到关系D中,而与学

45、生关系S无关。l3不存在删除异常。要删除某系的全部学生而仍然保留该系的有关信息时,可以只删除学生关系S中的相关学生记录,而不影响系关系D中的数据。l 4不存在更新异常。更换系主任时,只需修改关系D中一个相应元组的DMasterNM属性值,从而不会出现数据的不一致现象。lSCD规范到3NF后,所存在的异常现象已经全部消失。l3NF只限制了非主属性对键的依赖关系,而没有限制主属性对键的依赖关系。仍有可能存在数据冗余、插入异常、删除异常和修改异常。l对3NF进一步规范化,消除主属性对键的依赖关系,Boyce与Codd共同提出了一个新范式的定义,这就是Boyce-Codd范式,通常简称BCNF或BC范

46、式。它弥补了3NF的不足。藉打孕椒昼战需武焕喇闽炔雾迅盲弥片荡渡笑沸别仕讣辕讼筐仙戴穿霜网第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 202411.3.4 BCNF范式l定义:如果关系模式R 1NF,且所有的函数依赖XY(Y X),决定因素X都包含了R的一个候选键,则称R属于BC范式(Boyce-Codd Normal Form),记作R BCNF。lBCNF具有如下性质:1满足BCNF的关系将消除任何属性(主属性或非主属性)对键的部分函数依赖和传递函数依赖,如果R BCNF,则R 3NF。2如果R 3NF,则R不一定是BCNF。郝外扔乞牧铸议

47、木怯搅尽蜂戒撤间卡为蔷萄拭庆芝禹屏侩卯纹聘筏觉量旗第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024BCNF范式示例l设关系模式StudCourse(StudNo,StudName,CourseID,StudScore),其中StudNo代表学号,StudName代表学生姓名并假设没有重名,CourseID代表课程号,StudScore代表成绩。可以判定,StudCourse有两个候选键(StudNo,CourseID)和(StudName,CourseID),其函数依赖如下: StudNo StudName(StudNo,CourseID)

48、StudScore(StudName,CourseID)StudScore。l唯一的非主属性StudScore对键不存在部分函数依赖,也不存在传递函数依赖,StudCourseinfo 3NF拄搁返权尹卧杯蜒电岩狗济爬颠甸怨喊楚请恫非弘散弗否吴茫其岂桂躇诈第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024主属性对键的部分函数依赖存在的问题l因StudNo StudName,即决定因素StudNo或StudName不包含候选键,从另一个角度说,存在着主属性对键的部分函数依赖: (StudNo,CourseID) StudName,(StudNa

49、me,CourseID) StudNo,所以StudCourse不是BCNF。l因存在主属性对键的部分函数依赖关系,造成了关系StudCourse中存在着较大的数据冗余,学生姓名的存储次数等于该生所选的课程数,从而会引起修改异常。l例:当更改某个学生的姓名时,则必须搜索出现该姓名的每个学生选课记录,并对其姓名逐一修改,容易造成数据的不一致问题l解决这一问题的办法是通过投影分解进一步提高StudCourse的范式等级,将StudCourse规范到BCNF。 壤茅衙莎虽羡咸拭责沪脐里朔恢英氖轧靛域申稍晕承毕卤划镐疹蛰蕾厂会第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday,

50、July 25, 2024BCNF规范化lBCNF规范化是指把3NF关系模式通过投影分解转换成BCNF关系模式的集合。l例:将StudCourse(StudNo,StudName,CourseID,StudScore)规范到BCNF。l分析StudCourse数据冗余的原因是在这一个关系中存在两个实体,一个为学生实体,属性有StudNo、StudName;另一个是选课实体,属性有StudNo、CourseID和StudScore。l根据分解的原则,将StudCourse分解成如下两个关系:StudInfo(StudNo,StudName),描述学生实体;StudScoreInfo(StudNo

51、,CourseID,StudScore),描述学生与课程的联系。l对于StudInfo,有两个候选键StudNo和StudNamel对于StudScoreInfo,主键为(StudNo,CourseID)。l在这两个关系中,无论主属性还是非主属性都不存在对键的部分依赖和传递依赖,StudInfo BCNF,StudScoreInfo BCNF。 蚕或别月禽巾钟绦川录岸味饶梨瓶锤帽彤搪傲掌答绥亭靛汀螺差艇哼啦瞎第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024Studinfo和Studscoreinfo的函数依赖l 关系StudCourse转换

52、成BCNF后,数据冗余度明显降低。l学生的姓名只在关系S1中存储一次,学生要改名时,只需改动一条学生记录中的相应的StudName值,从而不会发生修改异常。 StudNoCourseIDStudScoreStudNoStudNameStudInfoStudInfo中的函数依赖关系中的函数依赖关系 StudScoreInfo StudScoreInfo中的函数依赖关系中的函数依赖关系 浓诫献翔箔桔戴硼膳阮仟橡傣擂沉早丘悔历拐拯绽凰天徘堡屈适枷唆董叔第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024BCNF范式示例l例:设关系模式TCS(T,C,

53、S),T表示教师,C表示课程,S表示学生。l语义假设:每一位教师只讲授一门课程;每门课程由一个教师讲授;某一学生选定某门课程,就对应于一确定的教师。l根据语义假设,TCS的函数依赖是:l(S,C)T,(S,T)C,TC。SCTSTCTCSTCS中的函数依赖关系中的函数依赖关系 纲昂肾拎顶榆妒妻岗瘁剪钝否鉴毫宽即碘潦盾桌佑常厚眨嗽包谰疗抽认漓第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024BCNF范式示例l对于TCS,(S,C)和(S,T)都是候选键,两个候选键相交,有公共的属性S。TCS中不存在非主属性,也就不可能存在非主属性对键的部分依赖

54、或传递依赖,所以TCS 3NFTCST1C1S1T1C1S2T2C1S3T2C1S4T3C2S2T4C2S2T4C3S2TCS一个关系实例一个关系实例师键捡搁镣它败虐翘锥署侠许氦酒蔽乍婴探浓绪丛簧茧吟樊陌淀糊缎遣坤第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024关系TCS存在的问题l1数据冗余。虽然每个教师只开一门课,但每个选修该教师该该门课程的学生元组都要记录这一信息。l2插入异常。当某门课程本学期不开,自然就没有学生选修。没有学生选修,因为主属性不能为空,教师上该门课程的信息就无法插入。同样原因,学生刚入校,尚未选课,有关信息也不能输入

55、。l3删除异常。如果选修某门课程的学生全部毕业,删除学生记录的同时,随之也删除了教师开设该门课程的信息。l4更新异常。当某个教师开设的某门课程改名后,所有选修该教师该门课程的学生元组都要进行修改,如果漏改某个数据,则破坏了数据的完整性。 链兵挝粱增羚透材耐妒隔祖乍五丹蜜魔厂烂迸脉纲推常针撰包颜垢搬体刁第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024BCNF范式示例l分析出现上述问题的原因在于主属性部分依赖于键,(S,T)C,因此关系模式还继续分解,转换成更高一级的范式BCNF,以消除数据库操作中的异常现象。l将TCS分解为两个关系模式ST(

56、S,T)和TC(T,C),消除函数依赖(S,T)C。其中ST的键为S,TC的键为T。STBCNF,TCBCNF。STTC ST ST中的函数依赖关系中的函数依赖关系 TC TC中的函数依赖关系中的函数依赖关系 理惯洱汁狸旨誓灿足狭蹦怯褂询韭舒卫扶肚寅旭朔仔玉诽帖侦绚糕鳞淀围第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024BCNF结论l关系模式TCS由规范到BCNF后,解决原来存在的四个异常问题 1数据冗余降低。每个教师开设课程的信息只在TC关系中存储一次。 2不存在插入异常。对于所开课程尚未有学生选修的教师信息可以直接存储在关系TC中,而对

57、于尚未选修课程的学生可以存储在关系ST中。 3不存在删除异常。如果选修某门课程的学生全部毕业,可以只删除关系ST中的相关学生记录,而不影响系关系TC中相应教师开设该门课程的信息。 4不存在更新异常。当某个教师开设的某门课程改名后,只需修改关系TC中的一个相应元组即可,不会破坏数据的完整性。l如果一个关系数据库中所有关系模式都属于BCNF,那么在函数依赖的范畴内,已经实现了模式的彻底分解,消除了产生插入异常和删除异常的根源,而且数据冗余也减少到极小程度。 炊趴樊孔语某寺赔升瞩殊宣寞怂追小耻佃爸衰超唱惠抉跺庄因狼乐眩柳芹第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, J

58、uly 25, 202411.3.5 关系模式的规范化l规范化的基本原则:遵从概念单一化“一事一地”的原则,即一个关系只描述一个实体或者实体间的联系。l若多于一个实体,就把它“分离”出来。l所谓规范化,实质上是概念的单一化,即一个关系表示一个实体把触龟帅槛杏茹笋巷环恨兜镐缴洼券奶查啪赡宾淫斌秀欲冠陕侥爵研凉睫第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024关系模式规范化的步骤l规范化就是对原关系进行投影,消除决定属性不是候选键的任何函数依赖。具体可以分为以下几步:1对1NF关系进行投影,消除原关系中非主属性对键的部分函数依赖,将1NF关系转

59、换成若干个2NF关系。2对2NF关系进行投影,消除原关系中非主属性对键的传递函数依赖,将2NF关系转换成若干个3NF关系。3对3NF关系进行投影,消除原关系中主属性对键的部分函数依赖和传递函数依赖,也就是说使决定因素都包含一个候选键。得到一组BCNF关系。 噶剃践娄沸馈吟捅逢淬堂覆簿懈楼俗憾荤瞎芬谭斟槛症远拷种诛匆獭档钳第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024关系模式规范化过程1NF2NF3NFBCNF消除决定属性不是候选键的非平凡的函数依赖消除非主属性对键的部分函数依赖消除非主属性对键的传递函数依赖消除主属性对键的部分和传递函数依赖消除原关系可再分的属性歼爱肾纪各该系独攒抨俐虐粹垒矛臻浅扰肄颤设裤谍黔滔庆淘咕碉冰绵专第十一讲关系数据库规范化理论第十一讲关系数据库规范化理论Thursday, July 25, 2024

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号