数据库期末考试复习题附答案.docx
《数据库期末考试复习题附答案.docx》由会员分享,可在线阅读,更多相关《数据库期末考试复习题附答案.docx(16页珍藏版)》请在冰豆网上搜索。
![数据库期末考试复习题附答案.docx](https://file1.bdocx.com/fileroot1/2022-12/1/59599ec0-71c8-4cf6-829f-7bb1aa3b0e8d/59599ec0-71c8-4cf6-829f-7bb1aa3b0e8d1.gif)
数据库期末考试复习题附答案
数据库期末考试复习题(附答案)
数据库系统概论2011年期末考试复习题
一、选择题
•第
(1)至(3)题基于以下的叙述:
有关系模式A(C,T,H,R,S),基中各属性的含义是:
•C:
课程T:
教员H:
上课时间R:
教室S:
学生
•根据语义有如下函数依赖集:
•F={C→T,(H,R)→C,(H,T)→R,(H,S)→R}
•1、关系模式A的码是(D)
•A.CB.(H,R)C.(H,T)D.H,S)
•2、关系模式A的规范化程度最高达到(B)
•A.1NFB.2NFC.3NFD.BCNF
•3、现将关系模式A分解为两个关系模式A1(C,T),A2(H,R,S),则其中A1的规范化程度达到(D)
•A.1NFB.2NFC.3NFD.BCNF
•4.设有关系R(A,B,C)和S(C,D)。
与SQL语句•selectA,B,DfromR,SwhereR.C=S.C
•等价的关系代数表达式是(B)
•A.σR.C=S.C(πA,B,D(R×S))•B.πA,B,D(σR,C=S.C(R×S))
•C.σR.C=S.C((πA,BR)×(πDS))•D.σR,C=S.C(πD((πA,BR)×S)
•5、设关系R和关系S的元数分别是3和4,关系T是R与S的广义笛卡尔积,即:
T=R×S,则关系T的元数是(C)
•A.7B.9C.12D.16
•6、数据库设计阶段分为(B)
•A.物理设计阶段、逻辑设计阶段、编程和调试阶段
•B.概念设计阶段、逻辑设计阶段、物理设计阶段、实施和调试阶段
•C.方案设计阶段、总体设计阶段、个别设计和编程阶段
•D.模型设计阶段、程序设计阶段和运行阶段
•7、设U是所有属性的集合,X、Y、Z都是U的子集,且Z=U-X-Y。
下面关于多值依赖的叙述中,不正确的是(C)
•A.若X→→Y,则X→→ZB.若X→Y,则X→→Y
•C.若X→→Y,且Y′⊂Y,则X→→Y′D.若Z=Φ,则X→→Y
•8、查询优化策略中,正确的策略是(D)
A.尽可能早地执行笛卡尔积操作B.尽可能早地执行并操作
C.尽可能早地执行差操作D.尽可能早地执行选择操作
•9、语句deletefromsc表明(A)
A.删除sc中的全部记录B.删除基本表sc•
C.删除基本表sc中的列数据D.删除基本表sc中的部分行
•10、在DB应用中,一般一条SQL语句可产生或处理一组记录,而DB主语言语句一般一次只能处理一条记录,其协调可通过哪种技术实现(B)
•A.指针B.游标C.数组D.栈
11、五种基本关系代数运算是(A)
•A.∪,-,×,π和σB.∪,-,⋈,π和σ
•C.∪,∩,×,π和σD.∪,∩,⋈,π和σ
•12、下列聚合函数中不忽略空值(null)的是(C)
•A.SUM(列名)B.MAX(列名)•C.COUNT(*)D.AVG(列名)
•13、在数据库设计中,将ER图转换成关系数据模型的过程属于(B)
•A.需求分析阶段B.逻辑设计阶段•C.概念设计阶段D.物理设计阶段
•第(14)至(16)题是基于如下两个关系,其中雇员信息表关系EMP的主键是雇员号,部门信息表关系DEPT的主键是部门号。
•14、若执行下面列出的操作,哪个操作不能成功执行?
(D)
•A.从EMP中删除行(‘010’,‘王宏达’,‘01’,1200)
•B.在EMP中插入行(‘102’,‘赵敏’,‘01’,1500)
•C.将EMP中雇员号=‘056’的工资改为1600元
•D.将EMP中雇员号=‘101’的部门号改为‘05’
•15、若执行下面列出的操作,哪个操作不能成功执行?
(C)
•A.从DEPT中删除部门号=‘03’的行•B.在DEPT中插入行(‘06’,‘计划部’,‘6号楼’)
•C.将DEPT中部门号=‘02’的部门号改为‘10’
•D.将DEPT中部门号=‘01’的地址改为‘5号楼’
•16、在雇员信息表关系EMP中,哪个属性是外键(foreignkey)?
(C)
A.雇员号B.雇员名C.部门号D.工资
•17、在SQL语言的SELECT语句中,实现投影操作的是哪个子句?
(A)
•A.selectB.fromC.WhereD.groupby
•18、设属性A是关系R的主属性,则属性A不能取空值(NULL)。
这是(A)
•A.实体完整性规则B.参照完整性规则
•C.用户定义完整性规则D.域完整性规则
填空题
•1、用树型结构表示实体类型及实体间联系的数据模型称为层次模型。
•2、关系数据库的关系演算语言是以谓词演算为基础的DML语言。
•3、从数据库管理系统角度看,数据库系统通常采用三级模式结构,即数据库系统由内模式、外模式和模式组成。
•4、RDMBS查询处理可分为查询分析、查询检查、查询优化和查询执行四个阶段。
•5、概念结构设计是对现实世界的一种抽象,一般有分析、聚集、概括共三种抽象机制。
•6、物理优化就是要选择高效合理的操作算法或存取路径以求得优化的查询计划。
•7、将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计,概念结构设计通常有四类方法:
自顶向上、自底向下、逐步扩张和混合策略。
•8、在关系模式R中若不存在这样的码X,属性组Y及非属性组Z(Z不是Y的子集)使得X→Y,Y→Z成立,且YX,则称R∈3NF。
简答题
•1、什么叫数据与程序的物理独立性?
什么叫数据与程序的逻辑独立性?
为什么数据库系统具有数据与程序的独立性?
答:
数据与程序的逻辑独立性:
当模式改变时(例如增加新的关系、新的属性、改变属性的数据
类型等),由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不
变。
应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻
辑独立性,简称数据的逻辑独立性。
数据与程序的物理独立性:
当数据库的存储结构改变了,
由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也
不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
数据库管理系统在三
级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理
独立性。
•2、数据库的完整性概念与数据库的安全性概念有什么区
别和联系?
答:
数据的完整性和安全性是两个不同的概念,但是有一定的联系。
前者是为了防止数据库中存
在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(Garba:
eIn
Garba:
eout)所造成的无效操作和错误结果。
后者是保护数据库防止恶意的破坏和非法的
存取。
也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是
不合语义的数据。
•3、试给出多值依赖、和4NF的定义。
•4、试给出函数依赖、BCNF的定义。
•5、简述嵌入式SQL语句与主语言之间的通信。
首先用SQL通信区(SQLCommunicationArea,简称SQLCA)向主语言传递SQL语句的执行状态信息,使主语言能够据此控制程序流程;在程序运行中,主语言向SQL语句提供参数,使用主变量(hostvariable)输入数据;同时,程序把SQL语句查询数据库的结果交主语言进一步处理,其中使用主变量和游标(cursor)向主语言输出数据,从而实现了SQL语言的过程化工作。
SQL语句执行后,系统要反馈给应用程序若干信息,主要包括描述系统当前工作状态和运行环境的各种数据,这些信息将送到SQL通信区SQLCA中。
应用程序从SQLCA中取出这些状态信息,据此决定接下来执行的语句。
•6、试述RDBMS查询优化的一般步骤。
(l)把查询转换成
某种内部表示,通常用的内部表示是语法树。
(2)把语法树转换成标准(优化)形式。
即
利用优化算法,把原始的语法树转换成优化的形式。
(3)选择低层的存取路径。
(4)生
成查询计划,选择代价最小的。
•7、试述RDBMS查询优化的一般准则。
答:
下面的优化策略一般能提高查询效率:
(l)选择运算应尽可能先做;
(2)把投影运
算和选择运算同时进行;(3)把投影同其前或其后的双目运算结合起来执行;(4)把
某些选择同在它前面要执行的笛卡儿积结合起来成为一个连接运算;(5)找出公共子表
达式;(6)选取合适的连接算法。
•8、什么是数据库的逻辑结构设计?
试述其设计步骤。
(DeptnoNUMBER
(2),
DeptnameVARCHAR(10),
ManagerVARCHAR(10),
PhoneNumberChar(12)
CONSTRAINTPK_SCRIMARYKEY(Deptno));
CREATETABLEEMP
(EmpnoNUMBER(4),
EnameVARCHAR(10),
AgeNUMBER
(2),
CONSTRAINTC1CHECK(Aage<=60),
JobVARCHAR(9),
SalNUMBER(7,2),
DeptnoNUMBER
(2),
CONSTRAINTFK_DEPTNO
FOREIGNKEY(Deptno)
REFFERENCESDEPT(Deptno));
•3、设某商业集团关于商店销售商品的数据库中有三个基本表:
•商店SHOP(S#,SNAME,AREA,MGR_NAME)其属性是商店编号,商店名称,区域名,经理姓名。
销售SALE(S#,G#,QUANTITY)其属性是商店编号,商品编号,销售数量。
商品GOODS(G#,GNAME,PRICE)
•其属性是商品编号,商品名称,单价。
•
(1)试写出下列查询的关系代数表达式、元组表达式和关系逻辑规则:
检索销售“冰箱”的商店的编号和商店名称。
解:
关系代数表达式:
πS#,SNAME(σGNAME='冰箱'(SHOP⋈SALE⋈GOODS))
元组表达式:
{t|(u)(v)(w)(SHOP(u)∧SALE(v)∧GOODS(w)
∧u[1]=v[1]∧v[2]=w[1]∧w[2]='冰箱'∧t[1]=u[1]∧t[2]=u[2])}
关系逻辑规则:
W(u1,u2)SHOP(u1,u2,u3,u4)∧SALE(u1,v2,v3)∧GOODS(v2,'冰箱',w3)
•
(2)试写出上面第
(1)问的SELECT语句表达形式。
解:
SELECT语句如下:
SELECTA.S#,SNAME
FROMSHOPA,SALEB,GOODSC
WHEREA.S#=B.S#ANDB.G#=C.G#ANDGNAME='冰箱';
•(3)试写出下列操作的SQL语句:
从SALE表中,把“开开商店”中销售单价高于1000元的商品的销售元组全部删除。
解:
DELETEFROMSALE
WHERES#IN(SELECTS#
FROMSHOP
WHERESNAME='开开商店')
ANDG#IN(SELECTG#
FROMGOODS
WHEREPRICE>1000);
•(4)写一个断言,要求区域名为“EAST”的商店里销售商品的单价不能低于100元。
解:
CREATEASSERTIONASSE8CHECK
(100<=ALL(SELECTPRICE
FROMSHOPA,SALEB,GOODSC
WHEREA.S#=B.S#ANDB.G#=C.G#ANDAREA='EAST'));
或CREATEASSERTIONASSE8CHECK
(NOTEXISTS(SELECT*
FROMSHOPA,SALEB,GOODSC
WHEREA.S#=B.S#ANDB.G#=C.G#
ANDAREA='EAST'ANDPRICE<100));
•(5)试写出下列操作的SQL语句:
•统计区域名为“EAST”的所有商店销售的每一种商品的总数量和总价值。
•要求显示(G#,GNAME,SUM_QUANTITY,SUM_VALUE),其属性为商品编号、商品名称、销售数量、销售价值。
解:
SELECTC.G#,GNAME,SUM(QUANTITY)ASSUM_QUANTITY,
PRICE*SUM(QUANTITY)ASSUM_VALUE
FROMSHOPA,SALEB,GOODSC
WHEREA.S#=B.S#ANDB.G#=C.G#ANDAREA='EAST'
GROUPBYC.G#,GNAME;
(注:
SELECT子句中的属性C.G#,GNAME应在分组子句中出现)
4、今有一个层次数据库实例,试用子女一兄弟链接法和层次序列链接法画出它的存储结构示意图。
•5、请设计一个图书馆数据库,此数据库中对每个借阅者保存读者记录,包括:
读者
号,姓名,地址,性别,年龄,单位。
对每本书存有:
书号,书名,作者,出版社。
对
每本被借出的书存有读者号、借出日期和应还日期。
要求:
给出E一R图,再将其转换为关系模型。
答:
关系模型为:
读者(读者号,姓名,地址,性别书(书号,书名,作者,出版社)借书
(读者号,书号,借出日期,年龄,单位)应还日期)
•6、设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:
供应商(供应商代码,供应商姓名,供应商状态,供应商所在城市)
S(SNO,SNAME,STATUS,CITY)
•零件(零件代码,零件名,颜色,重量)
•P(PNO,PNAME,COLOR。
WEIGHT)
•工程项目(工程项目代码,工程项目名,工程项目所在城市)
•J(JNO,JNAME,CITY)
•供应情况(供应商代码,零件代码,工程项目代码,供应数量)
•SPJ(SNO,PNO,JNO,QTY)
•试用关系代数和SQL语言完成下列查询。
•
(1)求供应工程J1零件的供应商号码SNO:
SELECTDISTSNOFROMSPJWHEREJNO='J1'
•
(2)求供应工程J1零件P1的供应商号码SNO:
SELECTDISTSNOFROMSPJWHEREJNO='J1'ANDPNO='P1';
•(3)求供应工程J1零件为红色的供应商号码SNO:
SELECTSNOFROMSPJ,PWHEREJNO='J1'ANDSPJPNO=PPNOANDCOLOR='红';
•(4)求没有使用天津供应商生产的红色零件的工程号JNO:
SELECTDISTJNOFROMSPJWHEREJNONOTIN(SELEJNOFROM
SPJ,P,SWHERES.CITY='天津'ANDCOLOR='红'ANDS.SNO=SPJ.SNOAND
P.PNO=SPJ.PNO);
•(5)求至少用了供应商S1所供应的全部零件的工程号JNO:
由于VFP不允许子查询嵌套太深,将查询分为两步
A、查询S1供应商供应的零件号
SELECTDISTPNOFROMSPJWHERESNO='S1'结果是(P1,P2);
B、查询哪一个工程既使用P1零件又使用P2零件。
SELECTJNOFROMSPJWHEREPNO='P1'
ANDJNOIN(SELECTJNOFROMSPJWHEREPNO='P2');
•7、设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:
•供应商(供应商代码,供应商姓名,供应商状态,供应商所在城市)
•S(SNO,SNAME,STATUS,CITY)
•零件(零件代码,零件名,颜色,重量)
•P(PNO,PNAME,COLOR。
WEIGHT)
•工程项目(工程项目代码,工程项目名,工程项目所在城市)
•J(JNO,JNAME,CITY)
•供应情况(供应商代码,零件代码,工程项目代码,供应数量)
•SPJ(SNO,PNO,JNO,QTY)
•试用SQL语言完成以下各项操作:
•
(1)找出所有供应商的姓名和所在城市。
SELECTSNAME,CITYFROMS
•
(2)找出所有零件的名称、颜色、重量。
SELECTPNAME,COLOR,WEIGHTFROMP
•(3)找出使用供应商S1所供应零件的工程号码。
SELECTDISTJNOFROMSPJWHERESNO='S1'
•(4)找出工程项目J2使用的各种零件的名称及其数量。
SELECTPNAME,QTYFROMSPJ,P
WHEREP.PNO=SPJ.PNOANDSPJ.JNO='J2'
•(5)找出上海厂商供应的所有零件号码。
SELECTPNOFROMSPJ,SWHERES.SNO=SPJ.SNOANDCITY='上海'
•(6)找出使用上海产的零件的工程名称。
SELECTJNAMEFROMSPJ,S,J
WHERES.SNO=SPJ.SNOANDS.CITY='上海'ANDJ.JNO=SPJ.JNO
•(8)把全部红色零件的颜色改成蓝色。
UPDATEPSETCOLOR='蓝'WHERECOLOR='红'
•(9)由S5供给J4的零件P6改为由S3供应。
UPDATESPJSETSNO='S3'WHERESNO='S5'ANDJNO='J4'ANDPNO='P6'
•(10)请将(S2,J6,P4,200)插入供应情况关系。
INSERTINTOSPJVALUES(‘S2’,‘J6’,‘P4’,200)
综合题
•1、假设某商业集团数据库中有一关系模式R如下:
•R(商店编号,商品编号,数量,部门编号,负责人)
•如果规定:
•
(1)每个商店的每种商品只在一个部门销售;
•
(2)每个商店的每个部门只有一个负责人;
•(3)每个商店的每种商品只有一个库存数量。
•试回答下列问题:
•
(1)根据上述规定,写出关系模式R的基本函数依赖;
(商店编号,商品编号)→部门编号
(商店编号,商品编号)→数量
(商店编号,部门编号)→负责人
•
(2)找出关系模式R的候选码;
候选码(商店编号,商品编号)
•(3)试问关系模式R最高已经达到第几范式?
为什么?
1NF,存在部分函数和传递函数依赖。
•(4)如果R不属于3NF,请将R分解成3NF模式集。
R1(商店编号,商品编号,商品库存数量,部门编号);R2(商店编号,负责人)
•2、建立一个关于系、学生、班级、学会等诸信息的关系数据库。
•学生:
学号、姓名、出生年月、系名、班号、宿舍区。
•班级:
班号、专业名、系名、人数、入校年份。
•系:
系名、系号、系办公地点、人数。
•学会:
学会名、成立年份、办公地点、人数。
•语义如下:
一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。
一个系的学生住在同一宿舍区。
每个学生可参加若干学会,每个学会有若干学生。
学生参加某学会有一个入会年份。
•请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。
指出各关系模式的候选码、外部码,有没有全码存在?
解:
(1)关系模式如下:
学生:
S(Sno,Sname,Sbirth,Dept,Class,Rno)
班级:
C(Class,Pname,Dept,Cnum,Cyear)
系:
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,DeptClass,DeptRno
所以Class与Rno之间存在着传递函数依赖。
由于SnoClass,ClassSno,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(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下:
MnameMyear,MnameMaddr,MnameMnum
该模式不存在传递依赖。
(3)各关系模式的候选码、外部码,全码如下:
A、学生S候选码:
Sno;外部码:
Dept、Class;无全码
B、班级C候选码:
Class;外部码:
Dept;无全码
C、系D候选码:
Dept或Dno;无外部码;无全码
D、学会M候选码:
Mname;无外部码;无全码
•3、现有一个未规范化的表,包含了项目、部件和部件向项目已提供的数量信息。
请采用规范化方法,将该表规范化到3NF要求。
答:
原表存在的函数依赖关系为:
部件号→部件名,部件号→现有数量,
项目代号→项目内容,项目代号→项目负责人,
(项目代号,部件号)→已提供数量。
关系键为(项目代号,部件号)。
(2分)
存在部分函数依赖:
(项目代号,部件号)p→部件名,(项目代号,部件号)p→现有数量,
(项目代号,部件号)p→项目内容,(项目代号,部件号)p→项目负责人。
(1分)
消除部分函数依赖,分解得到以下的三个关系模式:
部件(部件号,部件名,现有数量)
项目(项目代号,项目内容,项目负责人)
提供(项目代号,部件号,已提供数量)
该关系达到2NF。
由于不存在传递函数依赖,也达到3NF。
(3分)
•4、涉及到学生、教师和课程的关系模式
STC(SNo,SN,SA,TN,CN,G),其中6个属