数据库原理与应用教程期末测试题.docx
《数据库原理与应用教程期末测试题.docx》由会员分享,可在线阅读,更多相关《数据库原理与应用教程期末测试题.docx(15页珍藏版)》请在冰豆网上搜索。
数据库原理与应用教程期末测试题
数据库原理与应用教程
期末测试题
(一)
一、填空题(每空1分,共10分)
1.数据库系统的核心是_____。
2.在关系模型中,实体以及实体间的联系都是用______来表示的。
3.设关系模型R(A,B,C),F是R上的函数依赖集,F={A→B,C→B},则R的候选码为_________。
4.层次模型用“树结构”来表示数据之间的联系,网状模型用“_________”来表示数据之间的联系。
5.SQLServer2005中,一个简单的数据库可以只有一个_________文件和一个日志文件。
6.聚集索引和非聚集索引的存储结构都采用____________索引结构。
7.一个事务必须具有的四个属性是原子性、一致性、__________和持久性。
8.在T-SQL中,查询表中数据时,可用___________关键字滤掉重复行。
9.调用标量函数时必须提供至少由两部分组成的名称,即________.函数名。
10.触发器是当数据库服务器中发生数据操作语言事件时会自动执行的存储过程。
二、选择题(每小题1分,共20分)
1、数据管理的发展不包括下面哪个阶段()
(A)文件系统 (B)数据库系统
(C)人工管理 (D)统一管理
2、一个学生可以同时借阅多本书,一本书只能由一个学生借阅,学生和图书之间是什么样的联系()
(A)一对一(B)一对多
(C)多对多(D)以上全不是
3、如果事务1将数据库中的A值从200改为300,事务2读A值为300,事务1又将刚才的操作撤销,A值恢复为200,那么事务2读取了“脏”数据。
这种情况是由于数据库保护中的那方面不当而引起的()
(A)并发控制 (B)完整性约束
(C)安全性控制 (D)数据库的恢复
4、在关系模型中,“元组”是指()
(A)表中的一行 (B)表中的一列
(C)表中的一个数据 (D)表中的一个成分
5、有学生、选修和课程三个关系,学生S(学号,姓名,性别….),课程C(课程号,课程名),选修SC(学号,课程号,成绩)。
想查询选修2号课程的学生的学号和姓名,则关系运算式应写成()
(A) ∏学号(σ课程号=2(S∞SC)) (B)∏学号,姓名(σ课程号=2(S))
(C) ∏学号,姓名(σ课程号=2(S∞SC)) (D)σ课程号=2(∏学号,姓名(S∞SC))
6、规定关系的所有主属性都不能取空值,是用来实现哪一类完整性约束()
(A)实体完整性(B)属性值的约束
(C)参照完整性(D)用户定义完整性
7、学生关系(学号,姓名,性别,年龄,系号,系名)中,“系名”对主关键字“学号”的函数依赖是()
(A)完全函数依赖(B)部分函数依赖
(C)传递函数依赖(D)平凡函数依赖
8、在一个关系中,所有字段都是不可分的,给定一个关键字,则可以在这个数据表中唯一确定一条记录,则这个关系一定满足1NF、2NF和3NF中的()
(A)1NF(B)1NF和2NF
(C)1NF、2NF和3NF(D)2NF和3NF
9、有关系R和S,关系代数运算R∩S等价于()
(A)S-(R-S) (B)R-(R-S)
(C)R-S (D)S-R
10、有学生、选修和课程三个关系,S(学号,姓名,性别,年龄),C(课程号,课程名),SC(学号,课程号,成绩)。
以下选项中外码是()
(A)S.学号 (B)SC.学号 (C)C.课程号 (D)SC.成绩
11、要想用T-SQL语句从学生表中查询学号的前四个字符为“2004”第五个字符任意,后三个字符为“-05”的学生,条件表达式为()
(A)学号LIKE‘2004%-05’ (B)学号=‘2004%-05’
(C)学号LIKE‘2004_-05’ (D)学号=‘2004_-05’
12、已知三个关系:
S(学号,姓名,性别)
C(课程编号,课程名称,学时)
SC(学号,课程编号,分数)
若要查询所有选了课的学生的学号和姓名,下列语句正确的是()
(A)select学号,姓名fromsWHERE学号in(select*fromsc)
(B)select学号,姓名froms
WHEREin(select*fromscwheres.学号=sc.学号)
(C)select学号,姓名froms
WHERE学号exists(select*fromscwheres.学号=sc.学号)
(D)select学号,姓名froms
WHEREexists(select*fromscwheres.学号=sc.学号)
13、SQL语句中删除表的命令是()
(A)DELETETABLE(B)DELETEDBF
(C)DROPTABLE(D)DROPDBF
14、如果课程表Course是使用以下SQL语句创建的:
CREATETABLECourse(CnoCHAR
(2)notnull,CnameCHAR(20),CfenINT);下面的SQL语句中可以正确执行的是()
(A)INSERTINTOCourse(Cno,Cname,Cfen)VALUES(C2,″数据库″,3)
(B)INSERTINTOCourse(Cno,Cname,Cfen)VALUES(″C2″,″数据库″,″2″)
(C)INSERTINTOCourse(Cname,Cfen)VALUES(″数据库″,3)
(D)INSERTINTOCourse(Cno,Cname)VALUES(″C2″,″数据库″)
15、已知三个关系:
S(SNO,NAME,SEX,CLASS);C(CNO,CNAME,TIME);
SC(SNO,CNO,DEGREE)
若要查询统计每门课各班的平均成绩和每门课的平均成绩以及总的平均成绩,下列语句正确的是()
(A)selectclass,cname,avg(degree)as平均分froms,sc,cwheres.sno=sc.snoandc.cno=ogroupbys.class,c.cnamewithrollup
(B)selectclass,cname,avg(degree)as平均分froms,sc,cwheres.sno=sc.snoandc.cno=sc.cnogroupbys.class,c.cnamewithcube
(C)selectclass,cname,avg(degree)as平均分froms,sc,cwheres.sno=sc.snoandc.cno=sc.cnogroupbyc.cname,s.classwithcube
(D)selectclass,cname,avg(degree)as平均分froms,sc,cwheres.sno=sc.snoandc.cno=sc.cnogroupbyc.cname,s.classwithrollup
16、当where子句、聚合函数、groupby子句和having子句同时出现在一个查询中时,最后执行的是()
(A)聚合函数 (B)where子句
(C)groupby子句 (D)having子句
17、授予user1用户修改st表中的“姓名”字段的权限,应使用的SQL语句是()
(A)GRANTUPDATE(姓名)ONstTABLETOuser1
(B)GRANTUPDATE(姓名)ONTABLEstTOuser1
(C)GRANTMODIFY(姓名)ONstTABLETOuser1
(D)GRANTMODIFY(姓名)ONTABLEstTOuser1
18、SQLServer2005中,主数据库文件的扩展名为()
(A).mdf (B).dbf(C).ldf (D).ndf
19、显式事务和隐式事务都需要用什么语句来提交和回滚()
(A)ENDTRANSACTION和ROLLBACKTRANSACTION
(B)COMMITTRANSACTION和ROLLBACKTRANSACTION
(C)SAVETRANSACTION和ROLLUPTRANSACTION
(D)COMMITTRANSACTION和ROLLUPTRANSACTION
20、下列哪种情况不适合创建索引()
(A)表中的主键列(B)只有两个或若干个值的列
(C)需要强制实施唯一性的列(D)连接中频繁使用的列
五、综合题(每小题10分,共30分)
3.设有一个学生-课程数据库,包括学生关系Student、课程关系Course、选修关系SC,如下图所示:
Student
学号
姓名
性别
年龄
所在系
95001
李勇
男
20
CS
95002
刘晨
女
19
IS
95003
王敏
女
18
MA
Course
课程号
课程名
学分
1
数据库
3
2
数学
3
3
信息系统
4
4
操作系统
3
SC
学号
课程号
成绩
95001
1
92
95001
2
85
95001
3
88
95002
2
90
95002
3
80
根据以上所定义的三张基表写出相应的SQL语句:
(1)查询年龄在20以下的女生的姓名、系别、年龄。
(2)查询每个学生的姓名及其选修课程的课程名。
(3)创建一个视图,包括每个系的学生所选的每门课程的平均成绩,而且只选取平均成绩为80分以上的。
(4)查询学号为95013的学生的各科成绩,如果没有这个学生的成绩,就显示“此学生无成绩”。
期末测试题
(二)
一、填空题(每空1分,共10分)
1.在信息世界中能唯一标识实体的属性集,称为________。
2.如果关系模式R是1NF,且每个非主属性________函数依赖于主键,那么称R是第二范式的模式。
3.数据规范化的优点之一是能消除________和操作异常现象。
4.若关系A有m个属性,关系B有n个属性,则A×B有________个属性。
5.关系代数运算中,专门的关系操作有:
选择、投影、除和________。
6.关系中属性的取值范围称为属性的___________。
7.在SQLServer2005中,通配符只有在_________子句中才有意义,否则会被当作普通字符使用。
8.触发器也是一种存储过程,它主要通过事件进行触发而被执行,而存储过程可以通过而被直接调用。
9.一般可以使用________命令来标识T-SQL批处理的结束。
10.在索引命令中使用关键字CLUSTERED表示将建立的是____________索引。
二、选择题(每小题1分,共20分)
1.数据库的概念模型()
(A)依赖于计算机硬件和DBMS
(B)独立于计算机硬件,依赖于DBMS
(C)依赖于计算机硬件,独立于DBMS
(D)独立于计算机硬件和DBMS
2.假设某个E-R图中有5个实体型、2个1∶M联系和2个M∶N联系,则该E-R图转换的关系模式个数至少是()
(A)5 (B)7 (C)8 (D)9
3.用二维表来表示实体及实体之间联系的数据模型称为()
(A)实体-联系模型 (B)层次模型
(C)网状模型 (D)关系模型
4.在学生关系:
学生(学号,姓名,年龄,性别)中,想查询年龄小于20的学生的学号和姓名,则关系运算式应写成()
(A)
(B)
(C)
(D)
5.在一个关系中,每个属性都是不可分解的,这个关系一定达到()
(A)2NF (B)3NF (C)BCNF (D)1NF
6.学生表中st(学号,姓名,性别,年龄),删除其中的“年龄”字段的SQL语句是()
(A)ALTERTABLEstDROP年龄
(B)DROP年龄FROMst
(C)ALTERTABLEstDELETE年龄
(D)DELETE年龄FROMst
7.如果学生表st是使用以下SQL语句创建的:
CREATETABLEst(snoCHAR(4)notnull,snCHAR(8),sexCHAR
(2),ageINT);下面的SQL语句中可以正确执行的是()
(A)INSERTINTOst(sno,sex,age)VALUES(″s9″,″男″,17)
(B)INSERTINTOst(sn,sex,age)VALUES(″李安齐″,″男″,20)
(C)INSERTINTOst(sex,age)VALUES(″男″,20)
(D)INSERTINTOst(sno,sn)VALUES(″s9″,″安齐″,16)
8.撤销user1用户修改st表中的“姓名”字段的权限,应使用的SQL语句是()
(A)REVOKEUPDATE(姓名)ONstTABLEFROMuser1
(B)REVOKEUPDATE(姓名)ONTABLEstFROMuser1
(C)REVOKEMODIFY(姓名)ONstTABLEFROMuser1
(D)REVOKEMODIFY(姓名)ONTABLEstFROMuser1
9.SQLServer2005的四个系统数据库中记录系统的所有信息的是()
(A)Master (B)Model(C)Msdb (D)Tempdb
10.有这样一个数据表,学生(学号,姓名,年龄,省份),要想查询学生们所在省份的种类个数,以下SELECT语句正确的是()
(A)SELECTCOUNT(省份)FROM学生
(B)SELECTCOUNT(DISTINCT省份)FROM学生
(C)SELECTCOUNT(学号)FROM学生
(D)SELECTCOUNT(学号)FROM学生GROUPBY省份
11.有这样一个数据表,职工(职工号,姓名,职务,工资),要想查询工资最高的职工号和姓名,以下SELECT语句正确的是()
(A)SELECT职工号,姓名FROM职工WHERE工资=MAX(工资)
(B)SELECT职工号,姓名FROM职工WHERE工资=(SELECTMAX(工资)FROM职工)
(C)SELECT职工号,姓名,工资FROM职工WHERE工资=MAX(工资)
(D)SELECT职工号,姓名,MAX(工资)FROM职工WHERE工资=MAX(工资)
12.要想用T-SQL语句从学生表中查询姓名中有“红”字的学生,条件表达式应写成()
(A)姓名LIKE‘%红%’ (B)姓名LIKE‘%红’
(C)姓名LIKE‘%红-’ (D)姓名LIKE‘-红%’
13.如果事务T获得了数据项Q上的共享锁,则T对Q()
(A)只能读不能写(B)只能写不能读(C)既可读又可写(D)不能读不能写
14.SQL语言具有数据操作功能,SQL语言的一次查询的结果是一个()
(A)数据项(B)记录(C)元组(D)表
15.SQL语言的标准库函数COUNT、SUM、AVG、MAX和MIN等,不允许出现在下列哪个子句中()
(A)SELECT(B)HAVING(C)GROUP…HAVING(D)WHERE
16.现要在SC(S#,C#,G)表中查找缺少成绩(G)的学生学号(S#)和课程号(C#),下面SQL语句中WHERE子句的条件表达式应是:
SELECTS#,C#FROMSC
WHERE()
(A)G=0(B)G<=0(C)G=NULL(D)GISNULL
17.关于视图以下说法正确的是()
(A)不可以在其他视图上再建立视图
(B)视图也是表,只不过存储基本表中的一部分数据
(C)视图增强了数据的安全性
(D)如果视图中的某列是从算术表达式派生而来,可以指定视图中每列的名称,也可以不指定
18.不能激活触发器执行的事件是()
(A)SELECT(B)UPDATE(C)INSFRT(D)DELETE
19.对数据模式来说,采用三级模式的主要原因是()
(A)把大模式分解成小模式,便于DBMS进行分级管理
(B)解决程序与数据之间的数据独立性
(C)便于应用程序从不同角度进行数据调用
(D)便于提供数据的二级映象
20.SQL语言中建立唯一性索引的命令是()
(A)CREATEINDEX索引名ON基本表名(属性名)
(B)CREATEINDEXUNIQUE索引名ON基本表名(属性名)
(C)CREATEUNIQUEINDEX索引名ON基本表名(属性名)
(D)CREATEDISTINCTINDEX索引名ON基本表名(属性名)
五、综合题(每小题10分,共30分)
1、设计一个图书管数据库,此数据库中对每个借阅者保存读者记录,包括:
读者号、姓名、性别、年龄、单位。
对每本书存有:
书号、书名、作者、出版社。
对每本被借出的书存有读者号、借出日期和应还日期。
要求:
给出E-R图,再将其转换为关系模型并给出各关系的主关键字。
3、假设有如下三关系模式:
商品表:
P(PNO,PNAME,CITY,COLOR)
各属性含义依次为商品号、商品名、产地和商品颜色;主键为商品号。
商场表:
M(MNO,MNAME,CITY)
各属性含义依次为商场号、商场名和商场所在城市;主键为商场号。
销售表:
S(MNO,PNO,QTY)
各属性含义依次为商场号、商品号和销售数量。
主键为(商场号,商品号)
用SQL语句写出下列查询:
(1)检索销售了产地为浙江省的商品的商场名和商场所在城市。
(2)检索上海市所有商场中各种商品的平均销售量。
(3)检索销售了蓝色商品的商场号、商品号和数量。
(要求用嵌套子查询完成)
(4)检索每个商场销售的红色商品的总数量。
期末测试题
(二)参考答案
一、填空题(每空1分,共10分)
1、码
2、都完全
3、数据冗余
4、m+n
5、连接
6、域
7、like
8、存储过程名
9、GO
10、聚集
二、选择题(每小题1分,共20分)
1、D2、B3、D4、B5、D6、A7、A8、B9、A10、B
11、B12、A13、A14、D15、D16、D17、C18、A19、B20、C
五、综合题(每小题10分,共30分)
1、E-R图
关系模型:
读者(读者号,姓名,性别,年龄,单位)
图书(书号,书名,作者,出版社)
借阅(书号,读者号,借出日期,应还日期)
3、
(1)SELECTMNAME,M.CITYFROMM,S,P
WhereP.CITY=’浙江’andM.MNO=S.MNOandP.PNO=S.PNO
(2)SELECTP.PNO,AVG(QTY)FROMS,P
WHERECITY=’上海’andP.PNO=S.PNO
GROUPBYP.PNO
(3)SELECTMNO,PNO,QTYFROMS
WHEREPNOIN(SELECTPNOFROMPWHERECOLOR=’蓝’)
(4)SELECTMNO,SUM(QTY)FROMS,P
WHERECOLOR=’红’andP.PNO=S.PNO
GROUPBYMNO
五、SQL语句编程
学生-课程数据库中包含学生、课程和学生选课三个表,其表结构如下:
学生(学号,姓名,性别,年龄,所在院系)
课程(课程号,课程名,先修课号,学分)
选课(学号,课程号,成绩)
用SQL语句完成如下操作:
(1)查询年龄在18-20之间的学生姓名及年龄,并按学号的升序排序。
(2)查询所有姓刘的学生的学号、姓名和性别。
(3)查询学生李勇选修的课程号及成绩。
(4)将选课表中成绩为空的选课记录删除。
(5)将学习了数据库课程的学生成绩加5分。
(6)创建查询每个学生学号和平均成绩的视图。
答:
(1)SELECT姓名,年龄
FROM学生
WHERE年龄BETWEEN18AND20
ORDERBY学号
(2)SELECT学号,姓名,性别
FROM学生
WHERE姓名LIKE‘刘%’
(3)SELECT课程号,成绩
FROM学生,选课
WHERE学生.学号=选课.学号AND姓名=’李勇’
(4)DELETEFROM选课
WHERE成绩ISNULL
(5)UPDATE选课
SET成绩=成绩+5
WHERE课程号=(SELECT课程号
FROM课程
WHERE课程名=‘数据库’)
(6)CREATEVIEWSAVG(学号,平均成绩).
ASSELECT学号,AVG(成绩)
FROM学生
GROUPBY学号