当前位置:学者斋 >

计算机 >计算机四级 >

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

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

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

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

(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分)

  • 文章版权属于文章作者所有,转载请注明 https://xuezhezhai.com/jsj/siji/qdzozg.html