1、数据库原理与应用教程期末测试题数据库原理与应用教程期末测试题(一)一、 填空题(每空1分,共10分)1数据库系统的核心是_ 数据库管理系统 _。2在关系模型中,实体以及实体间的联系都是用_关系(二维表)_来表示的。3设关系模型R(A,B,C),F是R上的函数依赖集,F=AB,CB,则R的候选码为_(A,C)_。4层次模型用“树结构”来表示数据之间的联系,网状模型用“_图状结构_” 来表示数据之间的联系。5SQL Server2005中,一个简单的数据库可以只有一个_数据_文件和一个日志文件。6聚集索引和非聚集索引的存储结构都采用_B树_索引结构。7一个事务必须具有的四个属性是原子性、一致性、_
2、隔离性_和持久性。1、 8在T-SQL中,查询表中数据时,可用_DISTINCT_关键字滤掉重复行。9调用标量函数时必须提供至少由两部分组成的名称,即_拥有者_. 函数名。10 DML 触发器是当数据库服务器中发生数据操作语言事件时会自动执行的存储过程。二、选择题(每小题1分,共20分)1、数据管理的发展不包括下面哪个阶段( )(A)文件系统 (B)数据库系统(C)人工管理 (D)统一管理2、一个学生可以同时借阅多本书,一本书只能由一个学生借阅,学生和图书之间是什么样的联系( )(A)一对一 (B)一对多 (C)多对多 (D)以上全不是3、如果事务1将数据库中的A值从200改为300,事务2读
3、A值为300,事务1又将刚才的操作撤销,A值恢复为200,那么事务2读取了“脏”数据。这种情况是由于数据库保护中的那方面不当而引起的( )(A)并发控制 (B)完整性约束(C)安全性控制 (D)数据库的恢复4、在关系模型中,“元组”是指( B )(A)表中的一行 (B)表中的一列 (C)表中的一个数据 (D)表中的一个成分5、有学生、选修和课程三个关系,学生S(学号,姓名,性别.),课程C(课程号,课程名),选修SC(学号,课程号,成绩)。想查询选修2号课程的学生的学号和姓名,则关系运算式应写成( )(A)学号(课程号=2 (SSC) (B) 学号,姓名(课程号=2 (S) (C)学号,姓名(
4、课程号=2 (SSC) (D)课程号=2 (学号,姓名(SSC) 6、规定关系的所有主属性都不能取空值,是用来实现哪一类完整性约束( D )(A)实体完整性 (B)属性值的约束(C)参照完整性 (D)用户定义完整性7、学生关系(学号,姓名,性别,年龄,系号,系名)中,“系名”对主关键字“学号”的函数依赖是( )(A)完全函数依赖 (B)部分函数依赖(C)传递函数依赖 (D)平凡函数依赖8、在一个关系中,所有字段都是不可分的,给定一个关键字,则可以在这个数据表中唯一确定一条记录,则这个关系一定满足1NF、2NF和3NF中的( )(A)1NF (B)1NF和2NF (C)1NF、2NF和3NF (
5、D)2NF和3NF9、有关系R和S,关系代数运算RS等价于( )(A)S-(R-S) (B)R-(R-S)(C)R-S (D)S-R10、有学生、选修和课程三个关系,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)学号= 20
6、04_-0512、已知三个关系:S(学号,姓名,性别)C(课程编号,课程名称,学时)SC(学号,课程编号,分数)若要查询所有选了课的学生的学号和姓名,下列语句正确的是( )(A) select 学号,姓名 from s WHERE 学号 in (select * from sc)(B)select 学号,姓名 from s WHERE in (select * from sc where s.学号=sc. 学号)(C)select学号,姓名 from s WHERE 学号 exists (select * from sc where s.学号=sc. 学号)(D) select学号,姓名 fr
7、om s WHERE exists (select * from sc where s. 学号=sc. 学号)13、SQL语句中删除表的命令是( )(A)DELETE TABLE (B)DELETE DBF(C)DROP TABLE (D)DROP DBF14、如果课程表Course是使用以下SQL语句创建的:CREATE TABLE Course(Cno CHAR(2) not null, Cname CHAR(20), Cfen INT);下面的SQL语句中可以正确执行的是( )(A)INSERT INTO Course(Cno,Cname,Cfen) VALUES (C2,数据库,3)(
8、B)INSERT INTO Course(Cno,Cname,Cfen ) VALUES(C2,数据库, 2)(C)INSERT INTO Course(Cname,Cfen )VALUES(数据库,3)(D)INSERT INTO Course(Cno,Cname )VALUES(C2,数据库)15、已知三个关系:S(SNO,NAME,SEX,CLASS);C(CNO,CNAME,TIME);SC(SNO,CNO,DEGREE)若要查询统计每门课各班的平均成绩和每门课的平均成绩以及总的平均成绩,下列语句正确的是( )(A)select class, cname, avg(degree) as
9、平均分from s, sc, c where s.sno=sc.sno and c. cno=o group by s.class, c. cname with rollup(B)select class, cname, avg(degree) as平均分from s, sc, c where s.sno =sc.sno and c. cno =sc. cno group by s. class, c. cname with cube(C) select class, cname, avg(degree) as平均分 from s, sc, c where s.sno =sc. sno and
10、 c. cno =sc. cno group by c. cname, s.class with cube(D)select class, cname, avg(degree) as 平均分from s, sc, c where s. sno =sc. sno and c. cno =sc. cno group by c. cname, s.class with rollup 16、当where子句、聚合函数、group by子句和having子句同时出现在一个查询中时,最后执行的是( )(A)聚合函数 (B)where子句(C)group by子句 (D)having子句17、授予user1
11、用户修改st表中的“姓名”字段的权限,应使用的SQL语句是( )(A)GRANT UPDATE(姓名) ON st TABLE TO user1(B)GRANT UPDATE(姓名) ON TABLE st TO user1(C)GRANT MODIFY(姓名) ON st TABLE TO user1(D)GRANT MODIFY(姓名) ON TABLE st TO user118、SQL Server 2005中,主数据库文件的扩展名为( A )(A).mdf (B).dbf (C).ldf (D).ndf19、显式事务和隐式事务都需要用什么语句来提交和回滚( )(A)END TRANS
12、ACTION和ROLLBACK TRANSACTION(B)COMMIT TRANSACTION和ROLLBACK TRANSACTION(C)SAVE TRANSACTION和ROLLUP TRANSACTION (D)COMMIT TRANSACTION和ROLLUP TRANSACTION20、下列哪种情况不适合创建索引( )(A)表中的主键列 (B)只有两个或若干个值的列(C)需要强制实施唯一性的列 (D)连接中频繁使用的列三. 名词解释(每小题3分,共15分)1、 数据库:数据库就是存放数据的仓库,是将数据按一定的数据模型组织、描述和存储,能够自动进行查询和修改的数据集合。2、 候选
13、关键字:如果在一个关系中,存在多个属性(或属性组合)都能用来唯一标识该关 系中的元组,这些属性(或属性组合)都称为该关系的候选关键字或候选码。3、 视图:视图(View)是关系数据库系统提供给用户以多种角度观察数据库中数据的重要机制,视图是从一个或几个表导出来的表,不是真实存在的基本表而是一张虚表,视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。 4、 游标:游标是处理数据的一种方法,它允许应用程序对查询语句SELECT 返回的结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作。5、事务:事务由一系列的数据操作组成,是数据库应用程序的基本逻
14、辑单元,用来保证数据的一致性。四、简答题(每小题5分,共25分)1、创建索引的必要性和作用是什么?数据库的索引就类似于书籍的目录,如果想快速查找而不是逐页查找指定的内容,可以通过目录中章节的页号找到其对应的内容。类似地,索引通过记录表中的关键值指向表中的记录,这样数据库引擎就不用扫描整个表而定位到相关的记录。相反,如果没有索引,则会导致SQL Server搜索表中的所有记录,以获取匹配结果。2、简述主键约束和唯一性约束的异、同点。主键约束在表中定义一个主键值,这是唯一确定表中每一行数据的标识符。该约束强制实体完整性。一个表中最多只能有一个主键,且主键列不允许取空值。UNIQUE(唯一性)约束指
15、定表中某一个列或多个列不能有相同的两行或两行以上的数据存在。这种约束通过实现唯一性索引来强制实体完整性。当表中已经有了一个主键约束时,如果需要在其他列上实现实体完整性,又因为表中不能有两个或两个以上的主键约束,所以只能通过创建UNIQUE约束来实现。一般地,把UNIQUE约束称为候选的主键约束。3、简述T-SQL语言的特点。 (1)综合统一:T-SQL语言集数据定义语言、数据操纵语言、数据控制语言和附加语言元素为一体。 (2)两种使用方式,统一的语法结构:即联机交互式和嵌入高级语言的使用方式。 (3) 高度非过程化(4) 类似于人的思维习惯,容易理解和掌握4、简述存储过程的优点。 存储过程最主
16、要的特色是当写完一个存储过程后即被翻译成可执行码存储在系统表内,当作是数据库的对象之一,一般用户只要执行存储过程,并且提供存储过程所需的参数就可以得到所要的结果而不必再去编辑T-SQL命令。5、简述死锁及其解决办法。产生死锁的情况一般包括以下两种: 第一种情况,当两个事务分别锁定了两个单独的对象,这时每一个事务都要求在另外一个事务锁定的对象上获得一个锁,因此每一个事务都必须等待另外一个事务释放占有的锁,这时,就发生了死锁。这种死锁是最典型的死锁形式。 第二种情况,当在一个数据库中时,有若干个长时间运行的事务执行并行的操作,当查询分析器处理一种非常复杂的查询例如连接查询时,那么由于不能控制处理的
17、顺序,有可能发生死锁现象。 在数据库中解决死锁常用的方法有:(1)要求每个事务一次就将要使用的数据全部加锁,否则就不能继续执行。(2)允许死锁发生,系统来用某些方式诊断当前系统中是否有死锁发生。五、综合题(每小题10分,共30分)1、把下面用关系表示的实体、实体与实体之间的联系,用E-R图表示出来,要求在图中表示联系的类型(1:1、1:n、m:n),并写出相应的关系模式和各关系的主关键字。实体1:学生(学号,姓名,性别,年龄);实体2:课程(课程号,课程名,学分);实体1与实体2的联系:学习(学号,课程号,成绩)。注:一个学生可以选多门课程,一门课程也可以被多个学生选,学生选课后有成绩。1、E
18、-R图:关系模式:学生(学号,姓名,性别,年龄)课程(课程号,课程名,学分)学习(学号,课程号,成绩)2设有关系模式R(运动员编号,姓名,性别,班级,班主任,项目号,项目名,成绩)如果规定:每名运动员只能代表一个班级参加比赛,每个班级只能有一个班主任;每名运动员可参加多个项目,每个比赛项目也可由多名运动员参加;每个项目只能有一个项目名;每名运动员参加一个项目只能有一个成绩。根据上述语义,回答下列问题:(1) 写出关系模式R的候选码;(2) R最高属于第几范式?说明理由;(3) 若R不是3NF,将其分解为3NF。解:(1)关系模式R的主关键字是(运动员编号,项目号)。 (2)R最高属于第一范式。
19、 因为存在着姓名,性别,班级和项目名对主关键字(运动员编号,项目号)的部 分函数依赖,没有达到2NF。 (3)首先分解为2NF:R1(运动员编号,姓名,性别,班级,班主任),R2(项目号, 项 目名),R3(运动员编号,项目号,成绩) 因为R1存在班主任对运动员编号的传递函数依赖,所以没有达到3NF,再分解为3NF:R1分解为R1(运动员编号,姓名,性别,班级)和R4(班级,班主任) 3. 设有一个学生-课程数据库,包括学生关系Student、课程关系Course、选修关系SC,如下图所示:Student学号姓名性别年龄所在系95001李勇男20CS95002刘晨女19IS95003王敏女18
20、MACourse课程号课程名学分1数据库32数学33信息系统44操作系统3SC学号课程号成绩9500119295001285950013889500229095002380根据以上所定义的三张基表写出相应的SQL语句:(1)查询年龄在20以下的女生的姓名、系别、年龄。(2)查询每个学生的姓名及其选修课程的课程名。(3)创建一个视图,包括每个系的学生所选的每门课程的平均成绩,而且只选取平均成绩为80分以上的。(4)查询学号为95013的学生的各科成绩,如果没有这个学生的成绩,就显示“此学生无成绩”。解:(1)select 姓名,所在系,年龄 from Student where 年龄=80) (
21、4)if (select count(*) from sc where sno=95013)0 select * from sc where sno=95013 else print 此学生无成绩 期末测试题(二)一、填空题(每空1分,共10分)1.在信息世界中能唯一标识实体的属性集,称为_码_。2.如果关系模式R是1NF,且每个非主属性_都完全_函数依赖于主键,那么称R是第二范式的模式。3.数据规范化的优点之一是能消除_数据冗余 _和操作异常现象。4.若关系A有m个属性,关系B有n个属性,则AB有_m+n_个属性。5.关系代数运算中,专门的关系操作有:选择、投影、除和_连接_。6.关系中属性
22、的取值范围称为属性的_域_。7. 在SQL Server2005中,通配符只有在_like_子句中才有意义,否则会被当作普通字符使用。 8. 触发器也是一种存储过程,它主要通过事件进行触发而被执行,而存储过程可以通过 存储过程名 而被直接调用。9. 一般可以使用_GO_命令来标识T-SQL批处理的结束。10. 在索引命令中使用关键字CLUSTERED表示将建立的是_聚集_索引。二、选择题(每小题1分,共20分)1数据库的概念模型( )(A)依赖于计算机硬件和DBMS(B)独立于计算机硬件,依赖于DBMS(C)依赖于计算机硬件,独立于DBMS(D)独立于计算机硬件和DBMS2假设某个E-R图中有
23、5个实体型、2个1M联系和2个MN联系,则该E-R图转换的关系模式个数至少是( )(A)5 (B)7 (C)8 (D)93用二维表来表示实体及实体之间联系的数据模型称为( )(A)实体-联系模型 (B)层次模型(C)网状模型 (D)关系模型4在学生关系:学生(学号,姓名,年龄,性别)中,想查询年龄小于20的学生的学号和姓名,则关系运算式应写成( )(A) (B)(C) (D)5在一个关系中,每个属性都是不可分解的,这个关系一定达到( )(A) 2NF (B)3NF (C)BCNF (D)1NF 6学生表中st(学号,姓名,性别,年龄),删除其中的“年龄”字段的SQL语句是( )(A)ALTER
24、 TABLE st DROP 年龄(B)DROP 年龄 FROM st(C)ALTER TABLE st DELETE年龄(D)DELETE年龄FROM st 7如果学生表st是使用以下SQL语句创建的:CREATE TABLE st (sno CHAR(4) not null,sn CHAR(8),sex CHAR(2),age INT);下面的SQL语句中可以正确执行的是( )(A)INSERT INTO st(sno,sex,age) VALUES (s9,男,17)(B)INSERT INTO st(sn,sex,age) VALUES(李安齐,男,20)(C)INSERT INTO
25、st(sex,age)VALUES(男,20)(D)INSERT INTO st(sno,sn)VALUES(s9,安齐,16)8撤销user1用户修改st表中的“姓名”字段的权限,应使用的SQL语句是( )(A)REVOKE UPDATE(姓名) ON st TABLE FROM user1(B)REVOKE UPDATE(姓名) ON TABLE st FROM user1(C)REVOKE MODIFY(姓名) ON st TABLE FROM user1(D)REVOKE MODIFY(姓名) ON TABLE st FROM user19SQL Server 2005的四个系统数据库
26、中记录系统的所有信息的是( )(A)Master (B)Model (C)Msdb (D)Tempdb10有这样一个数据表,学生(学号,姓名,年龄,省份),要想查询学生们所在省份的种类个数,以下SELECT语句正确的是()(A)SELECT COUNT(省份) FROM学生(B)SELECT COUNT(DISTINCT 省份) FROM学生(C)SELECT COUNT(学号) FROM学生(D)SELECT COUNT(学号) FROM学生 GROUP BY省份11. 有这样一个数据表,职工(职工号,姓名,职务,工资),要想查询工资最高的职工号和姓名,以下SELECT语句正确的是( )(A
27、)SELECT职工号, 姓名FROM职工 WHERE工资= MAX(工资) (B)SELECT职工号, 姓名FROM职工 WHERE工资=(SELECT MAX(工资) 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对
28、Q( )(A)只能读不能写 (B)只能写不能读 (C)既可读又可写 (D)不能读不能写14SQL语言具有数据操作功能,SQL语言的一次查询的结果是一个( )(A)数据项 (B)记录 (C)元组 (D)表15SQL语言的标准库函数COUNT、SUM、AVG、MAX和MIN等,不允许出现在下列哪个子句中( )(A)SELECT (B)HAVING (C)GROUPHAVING (D)WHERE16现要在SC(S#, C#, G)表中查找缺少成绩(G)的学生学号(S#)和课程号(C#),下面SQL语句中WHERE子句的条件表达式应是:SELECT S#,C# FROM SCWHERE ( )(A)G=0 (B)G=0 (C)G=NULL (D)G IS NULL17关于视图以下说法正确的是( )(A)不可以在其他视图上再建立视图(B)视图也是表,只不过存储基本表中的一部分数据(C)视图增强了数据的安全性(D)如果视图中的某列是从算术表达式派生而来,可以指定视图中每列的名称,也可以不指定18不能激活触发器执行的事件是( )(A)SELECT (B)UPDATE (C)INSFRT (D)DELETE19对数据模式来说,采用三级模式的主要原因是( )(A)把大模式分解成小模式,便于DBMS进行分级管理(B
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1