数据库复习题及部分答案.doc
数据库复习题答案一、选择题1. 在数据库设计中,将E-R图转换为关系模式的过程属于( C )。A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段2一辆汽车由多个零部件组成,且相同的零部件可适用于不同型号的汽车,则汽车实体集与零部件实体集之间的联系是( D )A. 1:1 B. 1:M C. M:1 D. M:N3. 若对于实体集A中的每个实体,实体集B中有n(n>1)与之联系;对以实体集B中的每个实体,实体集A中只有1个实体与之联系,则实体集A和实体集B之间的联系的联系基数是( B )。 A1:1 B.1:n C. m:n D. n:14. 在数据库中,产生数据不一致的根本原因是( C )。 A 数据存储量太大 B 没有严格保护数据 C 未对数据进行完整性控制 D 数据冗余5. 如果关系模式R上有函数依赖ABC和AC,则R中存在(B)。A.完全函数依赖 B.部分函数依赖C.传递函数依赖 D.多值依赖6. SQL语言是一种( B )的语言,易学习和使用。 A过程化 B非过程化 C格式化 D导航式7.设有事务T1和T2,其并发操作顺序如下图所示,该并发操作带来的问题是(A)A.丢失更新B.读“脏数据” C.事务不能提交D.不能重复读步骤T1T21读A=502读A=503A=A*2写回4A=A-10写回5COMMITCOMMIT8. 设有事务T1和T2,其并发操作顺序如下图所示。该并发操作带来的问题是(C).A. 丢失更新 B. 不一致C. 读“脏数据” D. 写错误T1T2READ(A)A:=A*2WRITE(A)ROLLBACKREAD(A)8.设有关系R(书号,书名),如果要检索第3个字母为M,且至少包含4个字母的书名,则SQL查询语句中WHERE子句的条件表达式应写成:书名 LIKE(C )A. _ _ M _ B. _ _ M% C. _ _ M _ %D. _%M_ _9. 设关系模式R(A,B,C,D,E),及R下成立的函数依赖集F=ABC,CD,BCE,EA,则分解为R1(ABCE),R2(CD)满足( C )。 A具有无损连接性、保持函数依赖 B不具有无损连接性、保持函数依赖 C具有无损连接性、不保持函数依赖 D不具有无损连接性、不保持函数依赖10.事务的ACID性质中,关于原子性(atomicity)的描述正确的是( C )A. 指数据库的内容不出现矛盾的状态。B. 若事力正常结束,即使发生故障,列新结果也不会从数据库中消失。C. 事务中的所有操作要么都执行,要么都不执行。D. 若多个事务同时进行,与顺序实现的处理结果是一致的。11实现关系代数选择运算的SQL子句是( D )ASELECT BORDER BY CFROMDWHERE12设有关系模式R(A,B,C),F=AB,CB。相对于F,R的候选键为( A )AAC BABC CABDBC13.已知关系模式R(A,B,C,D,E)及其上的函数相关性集合FAD,BC ,EA ,该关系模式的候选关键字是( A ) 。 A.AB B. BE C.CD D. DE 14以下关于事务调度和封锁的描述中,正确的是( A )A遵守两段封锁协议的并发事务一定是可串行化的B可串行化的并发事务一定遵守两段封锁协议C遵守两段封锁协议的并发事务不一定是可串行化的D遵守两段封锁协议的并发事务一定不会产生死锁15. 设关系模式R(A,B,C),下列结论错误的是( C )。A若AB, BC,则ACB若AB, AC,则ABC C若BCA,则BA,CAD若BA ,CA,则BCA16. 在数据库中,下列说法中( A )是不正确的。 A数据库避免了一切数据的重复 B若系统是完全可以控制的,则系统可确保更新时的一致性 C数据库中的数据可以共享 D数据库减少了数据冗余17. 以下关于E-R图的叙述正确的是( C )。A. E-R图建立在关系数据库的假设上B. E-R图使用过程和数据的关系清晰,实体间的关系可导出应用过程的表示。C. E-R图可将现实世界(应用)中的信息抽象地表示为实体以及实体间的联系D. E-R图能表示数据生命周期。18. 下列 SQL语句中,修改表结构的命令是( A )。 AALTER BCREATE CUPDATE DINSERT19.关于日志文件,下列说法错误的是( D )。 A. 使用日志文件进行恢复是事务故障和系统故障恢复的主要办法。 B. 检查点方法可以提高使用日志文件进行恢复的效率。 C应该先写数据,后写日志。 D. 应该先写日志,后写文件20下列聚集函数中不忽略空值(NULL)的是( C )A.SUM(列名) B.MAX(列名) C.COUNT(*) D.AVG(列名)21.设关系模式R(X,Y,Z),F=YX,ZX,分解为R1(XY)、R2(YZ),则该分解是(B)A.是无损联接分解,也保持函数依赖 B.是无损联接分解,但不保持函数依赖C.不是无损联接分解,但保持函数依赖 D.既不是无损联接分解,也不保持函数依赖22.SQL中的“断言”机制用于实现数据库的(A)A.完整性B.保密性 C.并发性 D.安全性23实现关系代数投影运算的SQL子句是( A )ASELECT BORDER BY CFROM DWHERE24SQL语言中,用GRANTREVOKE语句实现数据库的( D )A并发控制 B完整性控制 C一致性控制 D安全性控制25. 对事务回滚的正确描述是( A )。 A将该事务对数据库的修改进行恢复 B将事务对数据库的更新写入硬盘 C跳转到事务程序的开头重新执行 D将事务中修改的变量值恢复到事务开始时的初值26. DBS是采用了数据库技术的计算机系统,它是一个集合体,包含数据库、计算机硬件、软件和( C ) 。 A. 系统分析员 B. 程序员C. 数据库管理员 D. 操作员 27. 数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是( B )。 A. DBS包括DB和DBMS B. DBMS包括DB和DBS C. DB包括DBS和DBMS D. DBS就是DB,也就是DBMS 28. 下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是( D )。 I人工管理阶段 II文件系统阶段 III数据库阶段 A. I 和 II B. 只有 II C. II 和 III D. 只有 I 29. 下列四项中,不属于数据库系统特点的是( C ) 。 A. 数据共享 B. 数据完整性 C. 数据冗余度高 D. 数据独立性高 30. 数据库系统的数据独立性体现在( B ) 。 A.不会因为数据的变化而影响到应用程序 B.不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序 C.不会因为存储策略的变化而影响存储结构 D.不会因为某些存储结构的变化而影响其他的存储结构 32. 要保证数据库的逻辑数据独立性,需要修改的是( C ) 。 A. 模式与外模式的映射 B. 模式与内模式之间的映射 C. 模式 D. 三层模式 33. 用户或应用程序看到的那部分局部逻辑结构和特征的描述是( C ),它是模式的逻辑子集。 A.模式 B. 物理模式 C. 子模式 D. 内模式 34.下述( D )不是DBA数据库管理员的职责 。 A.完整性约束说明 B. 定义数据库模式 C.数据库安全 D. 数据库管理系统设计 36.下述哪个是SQL语言中的数据控制命令( A )。 A. GRANT B. COMMIT C. UPDATE D. SELECT 二、 填空题(请在每小题的有下划线的空白处填上答案,错填、不填均无分。)1. 在数据库系统中,存储数据的视图叫 物化视图 。2. 查询优化中,启发式优化的规则是尽早执行选择运算和尽早执行 投影 运算。3. 在SQL语言的关系定义语句中,外码定义实现_完整性约束。4. 事务的所有操作在数据库中要么全部正确反映出来,要么完全不反映,这称为事务ACID特性中的 原子性 。5数据抽象的三个层次包括:物理层、逻辑层和 视图层 。6. 空值(NULL)是一个特殊的值,表示值未知或 不存在 。7. 对关系进行投影、选择、联接运算的结果是_关系_。8. 两个事务同时在申请对方持有的锁,导致都不能正常执行的情形称为 死锁 。9. 对于顺序索引和散列索引,在一个范围的值内进行查找, 顺序 索引效率更高。10. 在基于锁的协议中,如果A类型锁和B类型锁是相容的,则A和B是 共享 锁。11.概念模型是现实世界的第一层抽象,这一类最著名的模型是_E-R_ 。 12.区分不同实体的依据是_属性_。 13. 数据库设计中,用ER图赖描述信息结构但不涉及信息在计算机中的表示,这是数据库设计的_概念设计_阶段。 14. 在数据库设计中,将E-R图转换成关系数据模型的过程属于_逻辑模式设计_阶段。 15. 子模式DDL是用来描述数据库的_物理存储_结构。 三、 分析简答题1. 假设教学管理规定:一个学生可选修多门课,一门课有若干学生选修;一个教师可讲授多门课,一门课只有一个教师讲授;一个学生选修一门课,仅有一个成绩。学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、课程名。要求:(1)根据上述语义画出ER图;(2)试将ER模型转换成关系模型,并指出每个关系模式的主键和外键。(该题已多次讲解过,请同学们自行解答)2. 试由Armostrong公理系统推导出下面三条推理规则: (1)合并规则:若XZ,XY,则有XYZ (2)伪传递规则:由XY,WYZ有XWZ (3)分解规则:XY,Z 包含于 Y,有XZ 证: (1)已知XZ,由增广律知XYYZ,又因为XY,可得XXXYYZ,最后根据传递律得XYZ。 (2)已知XY,据增广律得XWWY,因为WYZ,所以XWWYZ,通过传递律可知XWZ。 (3)已知Z 包含于 Y,根据自反律知YZ,又因为XY,所以由传递律可得XZ。3. 假设有下面两个关系模式: 职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码; 部门(部门号,名称,经理名,电话),其中部门号为主码; 用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:定义每个模式的主码;定义参照完整性;定义职工年龄不得超过60岁。答:(1)CREATE TABLE DEPT (Deptno NUMBER(2), Deptname VARCHAR(10), Manager VARCHAR(10), PhoneNumber Char(12) CONSTRAINT PK_SC PRIMARY KEY (Deptno); (2)CREATE TABLE EMP (Empno NUMBER(4), Ename VARCHAR(10), Age NUMBER(2), CONSTRAINT C1 CHECK (Age60), Job VARCHAR(9), Sal NUMBER(7,2), Deptno NUMBER(2), CONSTRAINT FK_DEPTNO FOREIGN KEY (Deptno) REFERENCES DEPT(Deptno); 4设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式: S(sno,sname,city); P(pno,pname,color); J(jno,jname,city); SPJ(sno,pno,jno,qty)。其中:供应商表S由供应商代码sno(长度为6的字符串)、供应商姓名sname(长度为30的可变长字符串)、供应商所在城市city(长度为50的可变长字符串)组成;零件表P由零件代码pno(长度为5的字符串)、零件名pname(长度为30的可变长字符串)、颜色color(长度为6的字符串)组成;工程项目表J 由工程项目代码jno(长度为4的字符串)、工程项目名jname(长度为30的可变长字符串)、工程项目所在城市city(长度为10的字符串)组成;供应情况表SPJ由供应商代码sno、零件代码pno、工程项目代码jno、供应数量组成qty(整型)组成,表示某供应商供应某种零件给某工程项目的数量为qty。 请完成以下任务:(1) 写出S、P、J、SPJ四个表的数据定义语句(2) 写出下列查询问题的关系代数表达式 求供应工程号J001零件为红色(red)的供应商号码sno。 (3)写出以下查询SQL语句 列出天津的供应商的供应商代码和供应商姓名列出供应工程J001零件的供应商姓名列出供应工程J001 零件为红色的供应商号码(4)设计一个存储过程,通过输入供应商代码和工程项目代码,查询输出供应商姓名、工程项目名、该供应商供应该项目的零件名、供应的零件的数量等信息。答:(1)建表对于S表:S( SNO,SNAME,STATUS,CITY); 建S表:CREATE TABLE S(SNO CHAR(3),SNAME CHAR(10),STATUS CHAR(2),CITY CHAR(10); 对于P(PNO,PNAME,COLOR,WEIGHT); 建P表:CREATE TABLE P (PNO CHAR(3),PNAME CHAR(10),COLOR CHAR(4),WEIGHT INT); 对于J(JNO,JNAME,CITY); 建J表:CREATE TABLE J(JNO CHAR(3),JNAME CHAR(10),CITY CHAR(10); 对于SPJ(SNO,PNO,JNO,QTY); 建SPJ表:CREATE TABLE SPJ(SNO CHAR(3),PNO CHAR(3),JNO CHAR(3),QTY INT); (2)写查询问题的关系代数表达式 SELECT SNO FROM SPJ,P WHERE JNO=J1 AND SPJ.PNO=P.PNO AND COLOR=red; 对应的关系代数表达式为: (3)写对应的SQL查询语句 天津供应商的供应商代码和名称 SELECT SNO,SNAME FROM S WHERE CITY=天津;列出供应工程J001零件的供应商姓名SELECT SNAME FROM S,SPJ WHERE JNO=J001 AND SPJ.SNO=S.SNO; 列出供应工程J001 零件为红色的供应商号码SELECT SNO FROM P,SPJ WHERE JNO=J001AND COLOR=红 AND SPJ.PNO=P.PNO;(4)设计一个存储过程,通过输入供应商代码和工程项目代码,查询输出供应商姓名、工程项目名、该供应商供应该项目的零件名、供应的零件的数量等信息。create procedure get_result(sno char(6), jno char(4),sname varchar(30) output,jname varchar(30),output, pname varchar(30),output, qty int output)asbeginselect sname=sname from s where sno=snoselect jname=jnamefrom jwhere jno=jnoselect pname=pname, qty=qtyfrom P,SPJwhere p.pno=spj.pno and sno=sno and jno=jnoend5. 建立一个关于系、学生、班级、学会等诸信息的关系数据库。 描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区。 描述班级的属性有:班号、专业名、系名、人数、入校年份。 描述系的属性有:系名、系号、系办公室地点、人数。 描述学会的属性有:学会名、成立年份、地点、人数。 有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。 请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。 指出各关系的候选码、外部码,有没有全码存在? 答:(1)各关系模式如下:学生S(S#,SN,SB,DN,C#,SA) 班级C(C#,CS,DN,CNUM,CDATE) 系 D(D#,DN,DA,DNUM) 学会P(PN,DATE1,PA,PNUM) 学生-学会SP(S#,PN,DATE2) 其中,S#学号,SN姓名,SB出生年月,SA宿舍区 C#班号,CS专业名,CNUM班级人数,CDATE入校年份 D#系号,DN系名,DA系办公室地点,DNUM系人数 PN学会名,DATE1成立年月,PA地点,PNUM学会人数,DATE2入会年份。(2)每个关系模式的极小函数依赖集: S:S#SN,S#SB,S#C#,C#DN,DNSA C:C#CS,C#CNUM,C#CDATE,CSDN,(CS,CDATE)C# D:D#DN,DND#,D#DA,D#DNUM P:PNDATE1,PNPA,PNPNUM SP:(S#,PN)DATE2 S中存在传递函数依赖: S#DN, S#SA, C#SA C中存在传递函数依赖:C#DN (S#,PN)DATE2 和(CS,CDATE)C# 均为SP中的函数依赖,是完全函数依赖 (3)各关系的候选码、外部码及全码情况:关系 候选码 外部码 全码 S S# C#, 无 C C# 无 无 D D# 无 无 P PN 无 无 SP (S#,PN) S#,PN 无 6.已知新华书店销售订单的屏幕输出格式如下表所示。订单编号: 客户编号: NC日期: 2005-09-08客户名称:新东方学校客户电话: 地址:光华路 17 号图书编号书名定价数量金额英语23.001002300.00哲学25.001002500.00合计: 4800.00 元书店的业务描述如下:( 1 )每一个订单有惟一的订单编号;( 2 )一个订单可以订购多种图书,且每一种图书可以在多个订单中出现;( 3 )一个订单对应一个客户,且一个客户可以有多个订单;( 4 )每一个客户有惟一的客户编号;( 5 )每一种图书有惟一的图书编号。根据上述业务描述和订单格式得到关系模式 R :R (订单编号,日期,客户编号,客户名称,客户电话,地址,图书编号,书名,定价,数量)问:(1)写出 R 的基本函数依赖集。 (2)分析 R 的候选码及主码。(3)分析关系模式 R 可达到的最高范式。(4)将R 分解为一组满足 3NF 的模式。解答:(1)R的基本函数依赖集为: (订单编号à日期,客户编号à客户名称, 客户编号à客户电话, 客户编号à地址,图书编号à书名,图书编号à定价,图书编号à数量)(2)关系R的候选码及主码均为:(订单编号,客户编号,图书编号) 因为,可以计算属性集(订单编号,客户编号,图书编号)的闭包为(订单编号,日期,客户编号,客户名称,客户电话,地址,图书编号,书名,定价,数量)(请同学们计算属性集的闭包)。所以属性集(订单编号,客户编号,图书编号)是关系模式R的唯一候选码,因而也是主码。(3)关系模式R最高可达到1NF因为关系R中的非码属性(日期,客户名称, 客户电话, 地址,书名,定价,数量)所依赖的属性都是候选码(订单编号,客户编号,图书编号)的一部分,所以R不满足2NF。而高级范式是低级范式的子集,因而,关系R最高可达到1NF。(4)将关系R分解为如下3NF订单关系=(订单编号,日期)客户关系=(客户编号,客户名称, 客户电话, 地址)图书关系=(图书编号,书名,定价,数量)(请同学们分析分解理由)