2009年9月计算机四级数据库工程师笔试试题:文字版

来源:计算机等级考试    发布时间:2012-08-27    计算机等级考试视频    评论

  三、设计与应用题(共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分)

上一页345下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答