第 1 页:单选题 |
第 2 页:应用题 |
第 3 页:设计与应用题 |
三、设计与应用题(共30分)
36[简答题]
设有图书管理数据库,包含三张表:
图书明细表(图书编号,图书类别,图书名称,作者,出版社,出版日期,定价);
读者表(借书证号,姓名,系别,办证日期);
借出信息表(借出编号,借书证号,图书编号,借书日期);
完成下列操作:
定义一个多语句表值函数,用于查询学生借书情况,只需提供参数:借书证号,就可以通过调用函数返回此学生的借书情况,若有借书籍,则返回所借书籍的编号、书籍名称、定价和借书日期;若没有在借书籍,则返回记录为空。设函数名为:f_BorrowBook(@jszh char(20))。
参考解析:【解题思路】
采用三表联合查询,通过传人的借书证号查出借出信息表中的图书编号,然后查出图书明细表的信息。
SELECT图书明细表.图书编号,图书名称,定价,借出信息表.借书日期FROM借出信息表,图书明细表
WHERE借出信息表.图书编号=图书明细表.图书编号AND借出信息表,借书证号=@jszh
RETURN
END
37[简答题]
设有高校选课系统,需要对学校的系信息、教师信息、课程信息、学生信息、学生选课信息进行管理。已知系(DEPT)信息包括系编号(DeptNO)、系名称(DeptName);教师(Teacher)信息包括教师号(TNO)、教师名(Tname);课程(Course)信息包括课程号(CNO)、课程名(CName)、课程学分(Credit);学生(Student)信息包括学号(SNO)、学生姓名(Sname)、学生性别(Sex)。
选课系统的管理规则如下:
Ⅰ 一个系可聘用多名教师,一个教师只受聘于一个系;
Ⅱ 一个系可有多名学生,一个学生只属于一个系;
Ⅲ 一名教师可讲授多门课程,一门课程可由多名教师讲授;
Ⅳ 一名学生可选修多门课程,一门课程可被多名学生选修;
V 学生选修完课程后,可获得相应课程的成绩。
针对以上描述,完成下列设计内容:
(1)构建选修课系统的ER图。(要求图中的实体集名用试卷中给出的英文名,联系所关联的实体集名的首字母,字母间用“—”或“_”连接,大小写不限)。
(2)根据所构建的ER图,设计满足3NF的关系模式,并标出每个关系模式的主码和外码。(要求关系模式名同实体集名或联系名,属性名用试卷中给出的英文名,大小写不限)
参考解析:【解题思路】 (1)ER图的画法
建立相应的ER图的过程如下:
第一,确定实体类型。本题有四个实体类型,即Teacher实体,Course实体,Student实体和DEPT实体。
第二,确定联系类型。Teacher实体与Course实体之间是多对多关系,即T-C关系,Student实体与Course实体之间是多对多关系,即S-C关系。DEPT实体与Teacher实体之间是一对多关系,即D-T关系。DEPT实体与Student实体之间是一对多关系,即D-S关系。
第三,把实体类型和联系类型组合成ER图。
第四,确定实体类型和联系类型的属性。
Teacher实体集属性:教师号、教师名
Course实体集属性:课程号、课程名、课程学分
Student实体集属性:学号、学生姓名、学生性别
DEPT实体集属性:系编号、系名称
(2)ER模型转换为关系模式的规则
①把ER模型中的每一个实体集转换为同名的关系,实体集的属性就是关系的属性,实体集的码就是关系的码。
②把ER模型中的每一个联系转换成一个关系,与该联系相连的各实体集的码以及联系的属性转换为关系的属性。关系的码根据下列情况确定。
若联系为1:1,则每个实体集码均是该关系的候选码。
若联系为1:n,则关系的码为n端实体集的码。
若联系为m:n,则为各实体集码的组合或其中一部分实体集码的组合。
③合并具有相同码的关系。根据规则,把一个ER模型转换为关系模式,一般经历下面两个步骤:
第一,标识ER模型中的联系。
第二,依次转换与每个联系相关联的实体集及联系。
【参考答案】
ER图如下所示:
38[简答题]
某书店采用了SQL Server 2008数据库管理系统,该书店有一个需求,需要统计指定年份中每一本书的销售总额,例如:查询2012年所有书的销售总额。
已知图书结构如下:
图书表(书号BOOK_ID,书名BOOK_NAME,单价BOOK_PRICE)
销售表(书号BOOK_ID,销售时间SALE_TIME,销售数量SALE_NUM)。
假设单价和销售数量均为int型,书号和书名均为varchar(50)类型,销售时问为datetime型。请给出满足如下要求的多语句表值函数,该函数统计指定年份中每本书的销售总额。
设函数名为:BOOK_PROFIT(@year int),函数的返回结果格式如下:
书号销售总额
B00160000
A00450000
参考解析:【解题思路】 采用JOIN联合查询,先用WHERE条件查出符合销售时间=@year的记录,再将找出的记录和图书表合并,并采用单价*销售数量计算出联合查询的表数据,最后根据GROUP BY统计每种书的销售价格总和。
【参考答案】
微信搜索"考试吧"了解更多考试资讯、下载备考资料
相关推荐: