《关系数据理论(习题课).ppt》由会员分享,可在线阅读,更多相关《关系数据理论(习题课).ppt(40页珍藏版)》请在三一办公上搜索。
1、数据库系统概论An Introduction to Database System第六章 关系数据理论(习题课),基本知识点,需要了解的:1.什么是一个“不好”的数据库模式;2.什么是关系模式的操作异常;3.规范化理论的重要意义。,基本知识点,需要牢固掌握的:1.关系的形式化定义;2.数据依赖的基本概念(函数依赖、平凡函数依赖、非平凡函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、码、候选码、外码);3.范式的概念;4.从1NF到BCNF的定义;5.规范化的含义和作用。,需要举一反三的:1.四个范式的理解与应用2.能根据数据依赖分析某一个关系模式属于第几范式;3.能够根据应用语义,完整地写
2、出关系模式的函数依赖集合,并求出最小依赖集;4.能确定关系模式R的候选码;5.能判断模式分解是否具有无损连接性和保持函数依赖6.掌握模式分解的方法,基本知识点,难点:判断关系满足的范式关系模式的分解。,基本知识点,理解并给出下列术语的定义:函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码、1NF、2NF、3NF、BCNF、多值依赖、4NF。函数依赖:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作XY。,基本概念,7
3、,函数依赖的基本概念,解析:函数依赖是最基本的、也是最重要的一种数据依赖。函数依赖是属性之间的一种联系,体现在属性值是否相等。由定义可知,若XY,则 r中任意两个元组,如果它们在X上的属性值相等,那么在Y上的属性值也一定相等。要从属性间实际存在的语义来确定属性间的函数依赖。函数依赖不是指关系模式R在某个时刻的关系(值)满足的约束条件,而是指R在任何时刻的一切关系均要满足的约束条件。,基本概念,9,几种函数依赖类型(一):,例:Sno Sno(Sno,Cname)Cname Sno Sdept(Sno,Cname)Grade,平凡函数依赖不反映新的语义,无实际意义和价值;无特别声明,均讨论有语义
4、价值的非平凡依赖。,10,几种函数依赖类型(二):,例:(Sno,Cname)Grade(Sno,Cname,Sdept)Grade(Sno,Cname,Mname)Grade,真正起作用的函数依赖;派生出的函数依赖;不完全函数依赖或部分函数依赖的存在使依赖关系复杂化。,11,几种函数依赖类型(三):,例:SnoSdept,SdeptMname,SnoMnameSnoSid,SidStel,SnoStel,传递函数依赖与非传递/直接函数依赖形式表示相同;传递函数依赖的存在使依赖关系复杂化,其语义关系比较复杂,容易产生异常及冗余。,12,课堂练习题:,下列关于函数依赖的叙述中,哪一条是不正确的?
5、(A)若XY,YZ,则XZ(B)若XY,Y Y,则X Y(C)若XY,X X,则XY(D)若X X,则XX,解析:C,13,课堂练习题:(续),下列哪一项成立时,称XY为平凡的函数依赖()(A)XY=空(B)XY=空(C)X Y(D)Y X,解析:D,14,课堂练习题:(续),下列关于Y对X部分函数依赖的叙述中正确的是()(A)若XY,且存在Y的真子集Y,XY,则称(B)若XY,且存在Y的真子集Y,XY,则称(C)若XY,且存在X的真子集X,XY,则称(D)若XY,且存在Y的真子集X,XY,则称,解析:C,15,课堂练习题:(续),下述不是由于关系模式设计不当而引起的是()(A)数据冗余(B)
6、丢失修改(C)插入异常(D)更新异常,解析:B,丢失修改属于并发操作带来的数据不一致性。,候选码:设K为关系模式R中的属性或属性组合,若K U,则K称为R的一个侯选码。主码 若候选码多于一个,则选定其中的一个为主码。外码:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外码。全码:整个属性组是码,称为全码。,码(由函数依赖的概念来定义),17,码(续),定义关系模式 R 中属性或属性组X 并非R的码,但X是另一个关系模式的码,则称X是R 的外部码(Foreign Key)也称外码。,主码和外码表示了关系之间的联系。,18,课堂练习题:,下列关于关系模式的码的叙述中,
7、哪一条是正确的?()(A)主码只能包含单属性(B)任何候选码都不能包含关系中的全部属性(C)包含在任一个候选码中的属性称作主属性(D)包含在素有候选码中的属性称作主属性,解析:C,19,9.3 范式(续),各种范式之间存在联系:,某一关系模式R为第n范式,可简记为RnNF。,20,课堂练习题:,下列关于关系模式规范化的叙述中,哪一条是不正确的?()(A)若R4NF,则必然R3NF(B)若R3NF,则必然R2NF(C)若R2NF,则必然R1NF(D)若R3NF,则必然RBCNF,解析:D,测验,1.关系数据库规范化是为解决关系数据库中的_问题而引入的。A.操作异常和数据冗余 B.提高查询速度 C
8、.减少数据操作的复杂性 D.保证数据的安全性和完整性2.假设关系模式属于R(A,B)属于3NF,下列说法中_是正确的。A.它一定消除了插入和删除异常 B.仍存在一定的插入或删除异常 C.一定属于BCNF D.B和C均是正确的,测验,3.当B属性函数依赖于A属性时,属性A与B的关系是_ A.一对多 B.多对一 C.多对多 D.以上都不对4.候选码中的属性称为_。A.非主属性 B.主属性 C.复合属性 D.关键属性5.关系模式R中的属性全部是主属性,则R的最低范式必定是_。A.2NF B.3NF C.BCNF D.4NF,测验,6.设有关系W(工号,姓名,工种,定额),将其规范化到3NF正确的答案
9、是 _。A.W1(工号,姓名)和W2(工种,定额)B.W1(工号,工种,定额)和W2(工号,姓名)C.W1(工号,姓名,工种)和W2(工种,定额)D.以上都不对7.关系模式R(A,B,C,D)中,有函数依赖集 F=BC,CD,DA,则R能达到_。A.1NF B.2NF C.3NF D.BCNF,测验,8.下列规则中正确的是_。A.若XY,WYZ,则WXZ B.若XY,则 XY C.若XYZ,则 XZ,YZ D.若XY=,则 XY,测验,9.设有关系模式R(A,B,C,D)及其函数依赖集 F=DB,BD,ADB,ACD,求(AC)F+和(AB)F+。10.设有关系模式R(A,B,C,D,E,P)
10、及其函数依 赖集F=AD,ED,DB,BCD,DCA,求R的所有候选码。,练习,11.设有关系模式 教务(学号,课程号,学生姓名,年龄,成绩,教师姓名,教师年龄,教师办公室)。假设一门课程只有一名教师讲授,而且教师不重名。试回答下列问题:(1)存在哪些基本函数依赖?该关系模式的候选码是什么?有哪些主属性?(2)有部分依赖吗?若有,请写出两个?有传递依赖吗?若有,请写出一个?(3)关系模式教务最高达到第几范式?为什么?(4)如何分解可消除关系模式中的部分函数依赖?(5)分解后达到了几范式?分解是无损连接分解?(6)分别指出各个关系模式的主码和外码,12.已知:关系模式R(U,F)中,U=ABCD
11、EG.F=BGC,BDE,DGC,ADGBC,AGB,BD求:(1)R的侯选码(2)R最高满足第几范式13设有关系模式R(职工号,项目名,工资,部门名,部门经理)如果规定:每个职工可以参加多个项目,各领一份工资;每个项目只属于一个部门管,每个部门只有一个经理。(1)写出该关系模式的函数依赖集合。(2)判断候选码。(3)说明不满足2NF的理由,并把R分解为2NF的模式集,测验,14.说明下列关系模式最高满足几范式,并说明理由。(1)R(A,B,C,D),F=BD,ABC(2)R(X,Y,Z),F=YZ,YX,XYZ(3)R(A,B,C,D),F=BD,DB,ABC(4)R(X,Y,Z)F=XYZ
12、(5)R(A,B,C),F=AB,BC,CA(6)R(A,B,C,D)F=AC,DB(7)R(A,B,C,D)F=AC,CDB(8)R(X,Y,Z)F=YZ,XZY(9)R(A,B,C,D,E)F=ABCE,EAB,CD(10)R(X,Y,Z)F=XY,XZ,作业,建立一个关于系、学生、班级、学会等诸信息的关系数据库。描述学生的属性有:学号、姓名、生日、系名、班号、宿舍区。描述班级的属性有:班号、专业名、系名、人数、入校年份。描述系的属性有:系号、系名、系办公室地点、人数。描述学会的属性有:学会名、成立年份、地点、人数。有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。
13、一个系的学生住在同一宿舍区。每个学生可参加若干学会,每学会有若干学生。学生参加某学会有一个入会年份。,作业,(1)学生关系模式:学生关系模式:S(Sno,Sname,Sbirth,Sdept,Cno,Sloc)极小函数依赖集为:S:SnoSname,SnoSbirth,SnoCno,CnoSdept,SdeptSloc 候选码:Sno S中存在传递函数依赖:CnoSdept,SdeptSloc,CnoSloc,作业,(2)班级关系模式:关系模式:C(Cno,Cspec,Sdept,Cnum,Cdate)极小函数依赖集为:C:CnoCspec,CspecSdept,CnoCnum CnoCdat
14、e,(Cspec,Cdate)Cno 候选码:Cno 和(Cspec,Cdate)C中存在:CnoSdept传递函数依赖(Cspec,Cdate)Sdept是部分函数依赖,作业,(3)系关系模式:关系模式:系D(Dno,Dname,Dloc,Dnum)极小函数依赖集为:D:DnoDname,DnameDno,DnoDloc DnoDnum 候选码:Dno,Dname,作业,(4)学会关系模式:学会关系模式P:(Pname,Pdate1,Ploc,Pnum)极小函数依赖集为:P:PnamePdate1,PnamePloc,PnamePnum 候选码:Pname,(5)学生学会关系模式:学生学会关
15、系模式SP(Sno,Pname,date2)函数依赖:(Sno,Pname)date2 候选码:(Sno,Pname),作业,关系 候选码 外部码 全码 S Sno Cno,Dno 无 C Cno和(CS,CDATE)Dno 无 D Dno和Dname 无 无 P Pname 无 无 SP(Sno,Pname)Sno,Pname 无,作业,12.下面的结论哪些是正确的,哪些是错误的?对于错误的结论请给出理由或给出一个反例说明之。答:任何一个二目关系都是属于3NF的。任何一个二目关系都是属于BCNF的。任何一个二目关系都是属于4NF的。当且仅当函数依赖AB在R上成立,关系R(A,B,C)等于其投
16、影R1(A,B)和R2(A,C)的连接。,当AB在R上成立,关系R(A,B,C)等于其投影R1(A,B)和R2(A,C)的连接。反之则不然。正确的是当且仅当函数依赖AB在R上成立,关系R(A,B,C)等于其投影R1(A,B)和R2(A,C)的连接。,作业,若R.AR.B,R.BR.C,则R.AR.C若R.AR.B,R.AR.C,则R.AR.(B,C)若R.BR.A,R.CR.A,则R.(B,C)R.A若R.(B,C)R.A,则R.BR.A,R.CR.A,反例:关系模式SC(Sno,Cno,G),(Sno,Cno)G,但Sno G,Cno G,作业,.第五章图5.12表示一个公司各部门的层次结构
17、。对每个部门,数据库中包含部门号(唯一的)D#、预算费(BUDGET)以及此部门领导人员的职工号E#(唯一的)信息。职工信息包括:职工号、他所参加的生产与科研项目号(J#)、他所在办公室的电话号码(PHONE#)。生产与科研项目包含:项目号(唯一的)、预算费。办公室信息包含办公室房间号(唯一的)、面积。对每个职工,数据库中有他曾担任过的职务以及担任某一职务时的工资历史。对每个办公室包含此办公室中全部电话号码的信息。请给出你认为合理的数据依赖,把这个层次结构转换成一组规范化的关系。提示:此题可分步完成,第一步先转换成一组1NF的关系,然后逐步转换为2NF,3NF,BCNF,作业,根据题中的语义假
18、设给出一组函数依赖。语义假设为:一个职工不能同时成为多个部门的领导人;一个职工不能同时在多个部门就职;一个职工不能同时参加多个生产与科研项目;一个职工不能同时在两个不同的办公室办公;一个职工不能同时拥有两部或两部以上的电话;一个生产与科研项目不能同时分配给多个部门;一个办公室不能同时分配给多个部门;部门号、职工号、项目号、办公室号码及电话号码是全局唯一的。设计一组关系模式,它们都是属于1NF的。部门DEPT(DEPT#,DBUDGET,MGR_EMP#),其中DEPT#和MGR_EMP#都是候选码 职工EMP1(EMP#,DEPT#,PROJ#,OFF#,PHONE#),候选码为EMP#,但有
19、PHONE#OFF#,OFF#DEPT#,PROJ#DEPT#职务JOB(EMP#,JOBN),工资史SALHIST(EMP#,DATE,JOBN,SALARY)生产与科研项目PROJ(PROJ#,DEPT#,PBUDGET)办公室OFFICE(OFF#,DEPT#,AREA),电话PHONE(PHONE#,OFF#)分析可知,JOB的属性全包含在SALHIST中,所以JOB可消去。EMP1中OFF#,DEPT#都传递函数依赖于主码EMP#,故将EMP#分解,作业,分解为4个3NF的关系模式:EMP(EMP#,PROJ#,PHONE#)、X(PHONE#,OFF#)、Y(PROJ#,DEPT#)和Z(OFF#,DEPT#)然而X就是PHONE,Y是PROJ的投影,Z是OFFICE的投影,所以X、Y和Z都可以消去。最后得到如下6个关系模式,它们都是3NF,也是BCNF。DEPT(DEPT#,DBUDGET,MGR_EMP#)EMP(EMP#,PROJ#,PHONE#)SALHIST(EMP#,DATE,JOBN,SALARY)PROJ(PROJ#,DEPT#,PBUDGET)OFFICE(OFF#,DEPT#,AREA)PHONE(PHONE#,OFF#),下课了。,休息。,研究,