1、数据库系统概论课后习题答案王珊萨师煊 1第2章 关系数据库 (1) 1、试述关系模型的三个组成部分。(46页)答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。2、试述关系数据语言的特点和分类。(47页)答:关系数据语言可以分为三类: A、 关系代数语言。 B、 关系演算语言:元组关系演算语言和域关系演算语言。C、 SQL:具有关系代数和关系演算双重特点的语言。这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。2、 定义并理解下列术语,说明它们联系与区别:(P46-50页)(1)域,笛卡尔积,关系,元组,属性(2)
2、主码,候选码,外部码 (3)关系模式,关系,关系数据库3、 试述关系模型的完整性规则(53页),在参照完整性中,为什么外部码属性也可以为空?什么情况下才可以为空?(55页)答:实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。(P55页)若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。即属性F本身不是主属性,则可以取空值,否则不能取空值。5设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:1)求供应工程J1
3、零件的供应商号码SNO:Sno(Sno=J1(SPJ))2)求供应工程J1零件P1的供应商号码SNO:Sno(Sno=J1Pno=P1(SPJ)3)求供应工程J1零件为红色的供应商号码SNO:Sno(Pno=P1 (COLOR=红 (P)SPJ))4)求没有使用天津供应商生产的红色零件的工程号JNO:Jno(SPJ)- JNO(city=天津Color=红 (SSPJP)5)求至少用了供应商S1所供应的全部零件的工程号JNO:Jno,Pno(SPJ) Pno(Sno=S1 (SPJ)(见P62页 例6)6试述等值连接与自然连接的区别和联系。(61页)答:连接运算符是“=”的连接运算称为等值连接
4、。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组,即等值连接为:RS=trts| trR tsStrA=tsB A=B自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。7关系代数的基本运算有哪些 ? 如何用这些基本运算来表示其他运算?(63页)并、差、笛卡尔积、投影和选择5种运算为基本的运算。其他3种运算,即交、连接和除,均可以用这5种基本运算来表达。 第3章 SQL语言 1试述SQL语言的特点。(85页)答:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供两种使用方式、语言简捷,易学易用。2试述SQ
5、L的定义功能。(87页)答:SQL的数据定义功能包括定义表、定义视图和定义索引3用SQL语句建立第二章习题5中的四个表。S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY); 供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成:CREATE TABLE S(Sno C(2) UNIQUE,Sname C(6) ,Status N(2),City C(4)零件表P由零件代码(PNO)、零件名(PNAME)
6、、颜色(COLOR)、重量(WEIGHT)组成:CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2), WEIGHT I(2)工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、所在城市(CITY)组成:CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4)供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成:CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), QTY N(2)4针对上题中建
7、立的四个表试用SQL语言完成第二章习题5中的查询:(1) 求供应工程J1零件的供应商号码SNO:SELECT DIST SNO FROM SPJ WHERE JNO=J1(2) 求供应工程J1零件P1的供应商号码SNO:SELECT DIST SNO FROM SPJ WHERE JNO=J1 AND PNO=P1(3) 求供应工程J1零件为红色的供应商号码SNO:SELECT SNO FROM SPJ,P WHERE JNO=J1 AND SPJ.PNO=P.PNO AND COLOR=红(4) 求没有使用天津供应商生产的红色零件的工程号JNO:SELECT DIST JNO FROM SP
8、J WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S WHERE S.CITY=天津 AND COLOR=红 AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)。 (5) 求至少用了供应商S1所供应的全部零件的工程号JNO。由于VFP不允许子查询嵌套太深,将查询分为两步A、查询S1供应商供应的零件号SELECT DIST PNO FROM SPJ WHERE SNO=S1结果是(P1,P2)B、查询哪一个工程既使用P1零件又使用P2零件。SELECT JNO FROM SPJ WHERE PNO=P1 AND JNO IN (SELECT J
9、NO FROM SPJ WHERE PNO=P2)5针对习题3中的四个表试用SQL语言完成以下各项操作:(1)找出所有供应商的姓名和所在城市。SELECT SNAME,CITY FROM S(2)找出所有零件的名称、颜色、重量。SELECT PNAME,COLOR,WEIGHT FROM P(3)找出使用供应商S1所供应零件的工程号码。SELECT DIST JNO FROM SPJ WHERE SNO=S1(4)找出工程项目J2使用的各种零件的名称及其数量。SELECT PNAME,QTY FROM SPJ,P WHERE P.PNO=SPJ.PNO AND SPJ.JNO=J2(5)找出上
10、海厂商供应的所有零件号码。SELECT PNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND CITY=上海(6)出使用上海产的零件的工程名称。SELECT JNAME FROM SPJ,S,JWHERE S.SNO=SPJ.SNO AND S.CITY=上海 AND J.JNO=SPJ.JNO(7)找出没有使用天津产的零件的工程号码。注意: SELECT DISP JNO FROM SPJ WHERE JNO NOT IN (SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY=天津) 适用于JNO是唯一或
11、不唯一的情况.注意: SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY天津适用于JNO是唯一的情况(8)把全部红色零件的颜色改成蓝色。UPDATE P SET COLOR=蓝 WHERE COLOR=红(9)由S5供给J4的零件P6改为由S3供应。UPDATE SPJ SET SNO=S3 WHERE SNO=S5 AND JNO=J4 AND PNO=P6(10)从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。A、DELETE FROM S WHERE SNO=S2B、DELETE FROM SPJ
12、WHERE SNO=S2(11)请将(S2,J6,P4,200)插入供应情况关系。INSERT INTO SPJ VALUES(S2,J6,P4,200)6什么是基本表?什么是视图?两者的区别和联系是什么?(87页)基本表是本身独立存在的表,在SQL中一个关系就对应一个表。一个(或多个)基本表对应一个存储文件,一个表可以带若干索引,索引也存放在存储文件中。视图是从一个或几个基本表导出的表。它本身不独立存储在数据库中,即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。视图在概念上与基本表等同,用户可以在视图上再定义视图。7试述视图的优点。(
13、128页)答:视图能够简化用户的操作、视图使用户能以多种角度看待同一数据、视图对重构数据库提供了一定程度的逻辑独立性、视图能够对机密数据提供安全保护。8所有的视图是否都可以更新?为什么?(127页)答:并不是所有的视图都是可更新的,因为有些视图的更新不能唯一地有意义地转换成对相应基本表的更新。9哪类视图是可以更新的,哪类视图是不可更新的? 各举一例说明。(127页)行列子集视图是可更新的。除行列子集视图外,还有些视图理论上是可更新的,但它们的确切特征还是尚待研究的课题。还有些视图从理论上不可更新的。10试述某个你热悉的实际系统中对视图更新的规定。(VFP)11请为三建工程项目建立一个供应情况的
14、视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。CREATE VIEW VSP AS SELECT SNO,PNO,QTY FROM SPJ,J WHERE SPJ.JNO=J.JNO AND J.JNAME=三 建针对该视图VSP完成下列查询:(1)找出三建工程项目使用的各种零件代码及其数量。SELECT DIST PNO,QTY FROM VSP(2)找出供应商S1的供应情况。SELECT DIST * FROM VSP WHERE SNO=S112针对习题3建立的表,用SQL语言完成以下各项操作:(1) 把对表S的INSERT权限授予用户张勇,并允许他再将此权限授
15、予其他用户。GRANT INSERT ON TABLE S TO 张勇 WITH GRANT OPTION(2) 把查询SPJ表和修改QTY属性的权限授给用户李天明。GRANT SELECT,UPDATE(QTY) ON TABLE SPJ TO 李天明* 以 下 选 作 *13在嵌入式SQL中是如何区分SQL语句和主语言语句的? (133页)在嵌入式SQL中,为了能够区分SQL语句与主语言语句,所有SQL语句都必须加前缀EXEC SQL。(VFP例外)14在嵌入式SQL中是如何解决数据库工作单元与源程序工作单元之间通讯的?(134页)(1)向主语言传递SQL语句的执行状态信息,使主语言能够据
16、此信息控制程序流程,主要用SQL通信区(SQL Communication Area,简称SQLCA)实现。(2)主语言向SQL语句提供参数,主要用主变量(Host Variable)实现。(3)将SQL语句查询数据库的结果交主语言进一步处理,主要用主变量和游标(Cursor)实现。15在嵌入式SQL中是如何协调SQL语言的集合处理方式和主语言的单记录处理方式的? (135页)答:游标是用于协调SQL语言的集合处理方式和主语言的单记录处理方式。 SQL语言与主语言具有不同的数据处理方式。SQL语言是面向集合的,一条SQL语句原则上可以产生或处理多条记录。主语言是面向记录的,一组主变量一次只能存
17、放一条记录。所以仅使用主变量并不能完全满足SQL语句向应用程序输出数据的要求,为此嵌入式SQL引入了游标的概念,用游标来协调这两种不同的处理方式。第4章 关系系统及其优化1、给出各类关系系统的定义:最小关系的系统;关系完备的系统;全关系型的关系系统。(P153页)答:(最小)关系系统:仅支持关系数据结构和三种关系操作。许多微机关系数据库系统如FoxBASE,FoxPro等就属于这一类。关系完备的系统:这类系统支持关系数据结构和所有的关系代数操作(功能上与关系代数等价)。20世纪90年代初的许多关系数据库管理系统属于这一类。全关系系统:这类系统支持关系模型的所有特征。即不仅是关系上完备的而且支持
18、数据结构中域的概念,支持实体完整性和参照完整性。目前,大多数关系系统已不同程度上接近或达到了这个目标。3、试述查询优化在关系数据库系统中的重要性和可能性。(P157页)答:查询优化在关系数据库系统中有着非常重要的地位。关系数据库系统和非过程化的SQL语言能够取得巨大的成功,关键是得益于查询优化技术的发展。关系查询优化是影响RDBMS性能的关键因素。优化对关系系统来说既是挑战又是机遇。所谓挑战是指关系系统为了达到用户可接受的性能必须进行查询优化。由于关系表达式的语义级别很高,使关系系统可以从关系表达式中分析查询语义,提供了执行查询优化的可能性。这就为关系系统在性能上接近甚至超过非关系系统提供了机
19、遇。4对学生-课程数据库有如下的查询:查询信息系学生选修的所有课程名称: SELECT Cname FROM St,Course,SC WHERE St.Sno=SC.Sno AND SC.Cno=Course.Cno AND St.Sdept=IS试画出用关系代数表示的语法树,并用关系代数表达式优化算法对原始的语法树进行优化处理,画出优化后的标准语法树。答:关系代数表达式如下:cname(St.sdept=IS(st.sno=sc.Sno(sc.Cno=Course.Cno(STSCCOURSE)用关系代数表示的语法树如下左图:cname cnameSt.sdept=IS So=ost.sn
20、o=sc.Sno scCno=Course.Cno St.sno=sc.sno cno,cname Course Course sno sno,cnoSt Sc St.sdept=IS Sc St用关系代数表达式优化算法对原关系代数表达式进行优化,优化后的关系代数表达式如下:cname(o=o(St.sno=sc.sno(sno(St.sdept=IS(ST)sno,cno(SC) cno,cname(Course)优化处理后的标准语法树如上右图。5 试述查询优化的一般准则。(P161-162页)答:1)选择运算应尽可能先做。2)在执行连接前对关系适当地预处理。3)把投影运算和选择运算同时进行
21、。4)把投影同其前或其后的双目运算结合起来。5)把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算。6)找出公共子表达式。6 试述查询优化的一般步骤。( 165页)答: (1)把查询转换成某种内部表示。(2)把语法树转换成标准(优化)形式。(3)选择低层的存取路径。(4)生成查询计划,选择代价最小的。第5章 关系数据理论习题参考答案规范化定义小结:定义1:设R(U)是属性集U上的关系模式。X,Y是属性集U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作XY。(即只要X上的属性值相等,Y
22、上的值一定相等。)术语和记号:(P173页)XY,但Y不是X的子集,则称XY是非平凡的函数依赖。若不特别声明,总是讨论非平凡的函数依赖。XY,但Y是X的子集,则称XY是平凡的函数依赖。若XY,则X叫做决定因素(Determinant)。若XY,YX,则记作XY。若Y不函数依赖于X,则记作X Y。定义2:在R(U)中,如果 XY,并且对于X的任何一个真子集X,都有X Y,则称Y对X完全函数依赖,记作:FXY若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作:PXY定义3:若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式(1NF)。定义4:若关系模式R1NF,且每一个
23、非主属性完全函数依赖于码,则关系模式R2NF 。(即1NF消除了非主属性对码的部分函数依赖则成为2NF)。定义5:关系模式R 中若不存在这样的码X、属性组Y及非主属性Z(Z不是Y的子集)使得XY,Y X,Y Z成立,则称R3NF。定义6:关系模式R1NF 。若XY且Y不是X的子集时,X必含有码,则RBCNF。定义7:关系模式R1NF,如果对于R的每个非平凡多值依赖XY(Y不是X的子集,Z=U-X-Y不为空),X都含有码,则称R4NF。习题如下:2建立一个关于系、学生、班级、学会等诸信息的关系数据库。学生:学号、姓名、出生年月、系名、班号、宿舍区。班级:班号、专业名、系名、人数、入校年份。系:系
24、名、系号、系办公地点、人数。学会:学会名、成立年份、办公地点、人数。语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在解:(1)关系模式如下:学生:S(Sno,Sname,Sbirth,Dept,Class,Rno)班级:C(Class,Pname,Dept,Cnum,Cyear
25、)系:D(Dept,Dno,Office,Dnum)学会:M(Mname,Myear,Maddr,Mnum)(2)每个关系模式的最小函数依赖集如下: A、学生S (Sno,Sname,Sbirth,Dept,Class,Rno) 的最小函数依赖集如下:SnoSname,SnoSbirth,SnoClass,ClassDept,DEPTRno传递依赖如下: 由于SnoDept,而DeptSno ,DeptRno(宿舍区)所以Sno与Rno之间存在着传递函数依赖。 由于ClassDept,Dept Class,DeptRno所以Class与Rno之间存在着传递函数依赖。 由于SnoClass,Cl
26、assSno,ClassDept所以Sno与Dept之间存在着传递函数依赖。 B、班级C(Class,Pname,Dept,Cnum,Cyear)的最小函数依赖集如下:ClassPname,ClassCnum,ClassCyear,PnameDept.由于ClassPname,PnameClass,PnameDept所以C1ass与Dept之间存在着传递函数依赖。C、系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:DeptDno,DnoDept,DnoOffice,DnoDnum根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。D、学会M
27、(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下:MnameMyear,MnameMaddr,MnameMnum该模式不存在传递依赖。 (3)各关系模式的候选码、外部码,全码如下:A、学生S候选码:Sno;外部码:Dept、Class;无全码 B、班级C候选码:Class;外部码:Dept;无全码C、系D候选码:Dept或Dno;无外部码;无全码 D、学会M候选码:Mname;无外部码;无全码12下面的结论哪些是正确的 哪些是错误的 对于错误的请给一个反例明之。 (1) 任何一个二目关系是属于3NF。答:正确。因为关系模式中只有两个属性,所以无传递。(2) 任何一个二目关系
28、是属于BCNF.答:正确。按BCNF的定义,若XY,且Y不是X的子集时,每个决定因素都包含码,对于二目关系决定因素必然包含码。详细证明如下:(任何二元关系模式必定是BCNF)。证明:设R为一个二目关系R(A1,A2),则属性A1和A2之间可能存在以下几种依赖关系:A、A1A2,但A2A1,则关系R的码为A1,决定因素都包含码,所以,R是BCNF。B、A1A2,A2A1,则关系R的码为A2,所以决定因素都包含码,R是BCNF。包含码。R是BCNF。C、R的码为(A1,A2)(即A1 A2,A2 A1),决定因素都(3)任何一个二目关系是属于4NF.答:正确。因为只有两个属性,所以无非平凡的多值依
29、赖。第5章 关系数据理论规范化定义小结:定义1:设R(U)是属性集U上的关系模式。X,Y是属性集U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作XY。(即只要X上的属性值相等,Y上的值一定相等。)术语和记号:(P173页)XY,但Y不是X的子集,则称XY是非平凡的函数依赖。若不特别声明,总是讨论非平凡的函数依赖。XY,但Y是X的子集,则称XY是平凡的函数依赖。若XY,则X叫做决定因素(Determinant)。若XY,YX,则记作XY。若Y不函数依赖于X,则记作X Y。定义2:在R(U)中,如
30、果 XY,并且对于X的任何一个真子集X,都有X Y,则称Y对X完全函数依赖,记作:FXY若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作:PXY定义3:若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式(1NF)。定义4:若关系模式R1NF,且每一个非主属性完全函数依赖于码,则关系模式R2NF 。(即1NF消除了非主属性对码的部分函数依赖则成为2NF)。定义5:关系模式R 中若不存在这样的码X、属性组Y及非主属性Z(Z不是Y的子集)使得XY,Y X,Y Z成立,则称R3NF。定义6:关系模式R1NF 。若XY且Y不是X的子集时,X必含有码,则RBCNF。定义7:关系模式R1NF,如果对于R的每个非平凡多值依赖XY(Y不是X的子集,Z=U-X-Y不为空),X都含有码,则称R4NF。习题如下:2建立一个关于系、学生、班级、学会等诸信息的关系数据库。学生:学号、姓名、出生年月、系名、班号、宿舍区。班级:班号、专业名、系名、人数、入校年份。系:系名、系号、系办公地点、人数。学
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1