试题 百分网手机站

9月全国计算机四级《数据库工程师》笔试真题下

时间:2020-10-24 15:14:10 试题 我要投稿

2010年9月全国计算机四级《数据库工程师》笔试真题(下)

  二、应用题(每空2分,共30分)

  (1)【1】文件支持多种记录类型的存储,这种文件将来自多个关系表不同类型的记录存储在一起,可减少多表查询时磁盘的访问量,提高多表查询的效率。

  设有表T(c1,c2),c1的数据类型为char(2),要求其第I位的取值范围为[1,9],第2位的取值范围为[0, 9].实现此要求的约束表达式为CHECK(c1 LIKE“【2】”)。

  (3)设有某种文件,当向其中插入一条新记录时,首先读文件头,找到最末磁盘块的地址后将最末磁盘块读入内存缓冲区,在缓冲区内将新插入记录写入该数据块的末尾,然

  后将缓冲区中修改过的数据块作为最末磁盘块写回磁盘文件。以这种方式组织的文件被称为【3】。

  (4)在保证数据一致性的加锁协议中,【4】级加锁协议要求事务在读数据项之前必须先对该数据项加共享锁,直到事务结束才释放该锁。

  (5)利用日志技术进行数据库恢复时,为了使恢复子系统避免对整个日志文件进行检查,需要在日志文件中增加【5】记录。

  (6)数据库逻辑设计的目标是把概念设计阶段得到的`【6】模型转换成所选定的数据库管理系统支持的数据模型。

  在各种数据环境中,粒度用于描述数据的综合程度。设某系统中有商品销售表(商品号,销售量,单价,日期,时间)和商品周销售表(商品号,周销售量,周),则商品销售表的粒度级要【7】于商品周销售表的粒度级。若两个表的时间跨度相同,则商品销售表中存放的数据量要【8】于商品周销售表的数据量。

  (8)设有商品表(商品号,商品名,单价)和销售表(商品号,销售时间,销售数量)。

  现要查询单价高于100元的全部商品的销售总次数和总数量,包括没有被卖出过的商品(没有被卖出过的商品的销售总次数和总数量置为0)。请补全如下语句:

  SELECT商品表。商品号,销售总次数=【9】,

  销售总数量=SUM(销售数量)

  FROM商品表【10】销售表

  0N商品表。商品号=销售表。商品号

  WHERE单价>100

  GROUP BY商品表。商品号

  (9)在SQL Server 2000中,设u1是某数据库中的用户,若要使u1在该数据库中只具有查询全部用户表的权限。请补全如下语句:

  EXEC sp_addrolemember“【11】”,“【12】”

  (10)SQL Server 2000内置的系统管理员账户是【13】

  (11)设在SQL Server 2000平台一民对数据库SalesDB进行了如下图所示的各份操作。

  己知这三次备份操作均备份在设备BK上,且该设备只包含这三个备份操作的结果。在数据库出现故障后,为尽可能减少数据丢失,需要恢复所有的备份。请补全如下用于恢复日志备份1的SQL语句:

  RESTORE LOG SalesDB FROM BK

  WITH【14】

  【15】

  三、设计与应用题(共30分)

  (1)已知某教务管理系统有下列关系模式(带下划线的属性是主码):

  系(系号,系名)

  学生(系号,姓名,性别,入学日期,正常毕业日期,所在系号)

  课程(课程号,课程名,学分,开课系号,教师号)

  选课(学号,课程号,成绩)

  教师(教师号,姓名,职称,所在系号)

  ①请根据给出的关系模式画出该系统的ER图,图中忽略实体集的属性,但如果实体集之间的联系有属性则需要给出联系的属性。(6分)

  ②随着教学改革的需要,该系统需要满足下列需求:

  I.需为课程增加先修课信息(一门课程可有多门先修课程);

  II.一门课程可由多名教师讲授,一名教师可以讲授多门课程。

  请根据以上需求修改关系模式,仅列出有改动的关系模式,并使每个关系模式满足3NF。(4分)

  (2)在SQLServer2000的某数据库中有如下两张关系表:

  学生表(学号,姓名,性别,系号),学号为主码

  系表(系号,系名,系简称),系号为主码

  ①在数据库中执行如下T-SQL代码:

  DECLARE @DePtID varchar(10)

  DECLARE @cnt int

  set @cnt=O

  DECLARE cursor1 cursor FOR SELEET系号FROM系表

  WHERE系名LIKE'%电%'

  OPEN cursorl

  FETCH NEXT FROM cursor1 INTO @DePtID

  WHILE @@FETCH_STATUS=O

  BEGIN

  DECLARE @temp_cnt int

  sELECT @temp_cnt=COUNT(*)FROM学生表WHERE系号=@DeptID

  set @Cnt=@cnt+@temp_cnt

  FETCH NEXT FROM cursor1 INTO ODePtID

  END

  CLOSE cursor1

  DEALLOCATE cursor1

  SELECT @cnt

  执行过程中发现速度比较慢,为了解决性能问题,需在功能不变的情况下,将此T-SQL代码改为一条SQL语句,请写出此SQL语句(语句中不能含有子查询)并说明为什么此种修改可以提高性能。(5分)

  ②设在学生表的(姓名,系号)列上建有一个复合索引,该索引是否有助于提高下列两个语句的查询效率?并说明原因。(5分)

  SELECT*FROM学生表 WHERE系号='1';

  SELEET*FRoM学生表WHERE姓名=‘张三';

  (3)在SQL server 2000中,设有图书表(书号,书名,类别,单价)和图书印刷表(书号,印刷日期,印刷数量,印次),每个书号代表一种图书。书号、书名和类别的数据类型均为varehar(20),单价、印刷数量和印次的数据类型均为int,印刷日期的数据类型大smalldatetime.现需查询指定类别的图书在指定年份后(含指定年份)累计印刷总数量。请写出实现该功能的标量函数。(10分)

【2010年9月全国计算机四级《数据库工程师》笔试真题(下)】相关文章:

1.全国计算机四级软件测试工程师笔试真题练习

2.全国计算机等级考试四级软件测试工程师笔试真题

3.计算机四级《数据库工程师》特训题

4.2017计算机四级《数据库工程师》特训题

5.历年全国计算机三级网络技术笔试真题

6.计算机四级《数据库工程师》应用题训练

7.计算机二级Java笔试真题

8.Java软件开发工程师笔试真题

9.全国计算机四级软件测试工程师笔试训练