三、设计与应用题【共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分
上一篇:计算机等级考试真题精选7