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