上半年数据库系统工程师下午试题及答案.docx
《上半年数据库系统工程师下午试题及答案.docx》由会员分享,可在线阅读,更多相关《上半年数据库系统工程师下午试题及答案.docx(15页珍藏版)》请在冰豆网上搜索。
上半年数据库系统工程师下午试题及答案
2006年上半年数据库系统工程师下午试题
试题一(15分)
阅读下列说明以及数据流图,回答问题1、问题2和问题3,将解答填入答题纸的对应栏内。
[说明]
某学校建立了一个网上作业提交与管理系统,基本功能描述如下:
(1)帐号和密码。
任课老师用帐号和密码登录系统后,提交所有选课学生的名单。
系统自动为每个选课学生创建登录系统的帐号和密码。
(2)作业提交。
学生使用帐号和密码登录系统后,可以向系统申请所选课程的作业。
系统首先检查学生的当前状态,如果该学生还没有做过作业,则从数据库服务器申请一份作业。
若申请成功,则显示需要完成的作业。
学生需在线完成作业,单击“提交”按钮上交作业。
(3)在线批阅。
系统自动在线批改作业,显示作业成绩,并将该成绩记录在作业成绩统计文件中。
[问题1](3分)
如果将数据库服务器(记为DB)作为一个外部实体,那么在绘制该系统的数据流图时,还应有哪些外部实体和数据存储?
答:
外部实体:
(选课)学生、(任课)老师
数据存储:
作业成绩统计文件
[问题2](7分)
根据说明结合问题1的解答,指出在该系统的顶层数据流图中应有哪些数据流.请采用说明中的词汇给出这些数据流的起点、终点以及数据流名称,下表给出了数据流的部分信息,请填充空缺处。
序号
起 点
终 点
数据流名称
1
__(选课)学生__
网上作业提交与管理系统
作业申请
2
__(选课)学生__
网上作业提交与管理系统
提交的作业
3
网上作业提交与管理系统
__(选课)学生__
需完成的作业
4
网上作业提交与管理系统
__(选课)学生__
__作业成绩__
5
网上作业提交与管理系统
__DB__
作业申请
6
网上作业提交与管理系统
__作业成绩统计文件__
__作业成绩__
7
__(任课)老师__
网上作业提交与管理系统
选课学生名单
8
__DB__
网上作业提交与管理系统
__作业__
9
__(选课)学生__
网上作业提交与管理系统
帐号和密码
10
__(任课)老师__
网上作业提交与管理系统
帐号和密码
[问题3](5分)
根据数据流图的设计原则,阅读下图所示的数据流图,找出其中的错误之处。
答:
错误1:
外部实体A和B之间不能存在数据流。
错误2:
外部实体A和数据存储H之间不能存在数据流。
错误3:
加工2的输入/输出数据流名字相同
错误4:
加工4只有输入没有输出
错误5:
加工5只有输出,没有输入。
试题二(15分)
阅读下列说明,回答问题1至问题5,将解答填入答题纸的对应栏内。
[说明]
某企业网上销售管理系统的数据库部分关系模式如下所示:
客户(客户号,姓名,性别,地址,邮编)
产品(产品号,名称,库存,单价)
订单(订单号,时间,金额,客户号)
订单明细(订单号,产品号,数量)
关系模式的主要属性及约束如表2-1所示。
表2-1关系模式的主要属性及约束
关系名
约束
客户
客户号唯一标识一位客户,客户性别取值为“男”或者“女’
产品
产品号唯一标识一个产品
订单
订单号唯一标识一份订单。
一份订单必须且仅对应一位客户,一份订单可由一到多条订单明细组成。
一位客户可以有多份订单。
订单明细
一条订单明细对应一份订单中的一个产品
客户、产品、订单和订单明细关系及部分数据分别如表2-2、2-3、2-4、2-5所示。
表2-2客户关系
客户号
姓名
性别
地址
邮编
Ol
王晓丽
女
南京路2号
200005
02
林俊杰
男
北京路18号
200010
表2-3产品关系
产品号
名称
库存
单价
01
产品A
20
298.00
02
产品B
50
168.00
表2-4订单关系
订单号
时间
金额
客户号
1001
2006.02.03
1268.00
01
1002
2006.02.03
298.00
02
表2-5订单明细关系
订单号
产品号
数量
1001
01
2
1001
02
4
1002
01
1
[问题1](3分)
以下是创建部分关系表的SQL语句,请将空缺部分补充完整。
CREATETABLE客户(
客户号CHAR(5)___NOTNULLUNIQUE___
姓名CHAR(30),
性别CHAR
(2)___CHECK(VALUEIN('男','女'))___
地址CHAR(30),
邮编CHAR(6));
CREATETABLE订单(
订单号CHAR(4),
时间CHAR(10),
金额NUMBER(6,2),
客户号CHAR(5)NOTNULL,
PRIMARYKEY(订单号),
___FOREIGNKEY(客户号)REFERENCES客户(客户号)___;
[问题2](4分)
请根据如下查询语句,回答问题(d),(e)和(f)
SELECT客户号
FROM订单,订单明细
WHERE订单明细.订单号=订单.订单号AND
产品号='02’AND
数量>10;
(d)上述查询语句的功能是什么?
请简要回答。
(30个字以内)
答:
查询一次订购(或购买)产品号为02的数量大于10的客户号
(e)将上述查询语句转换成对应的关系代数表达式。
答:
π客户号(订单∞σ产品号='02'^数量>10(订单明细))
(f)上述SQL查询语句是否可以进一步优化?
如可以,给出优化后的SQL查询语句。
[问题3](3分)
可以优化。
优化的SQL语句为:
SELECT客户号
FROM订单
WHERE订单号IN
(SELECT订单号
FROM订单明细
WHERE产品号='02'AND数量>10)
请按题意将下述SQL查询语句的空缺部分补充完整。
按客户购买总额的降序,输出每个客户的客户名和购买总额。
SELECT客户.客户名,___SUM(金额)AS总额___
FROM客户,订单
WHERE客户.客户号=订单.客户号
___GROUPBY客户.客户号___
___ORDERBY总额DESC___;
[问题4](3分)
用SQL语句完成下述要求。
(1)定义一个描述订单的客户号和对应订单明细中产品号关系的视图,客户产品(客户号,产品号)。
CREATEVIEW客户产品AS(
SELECT客户号,产品号
FROM订单,订单明细
WHERE订单明细.订单号=订单.订单号)
(2)借助
(1)所定义的视图,查询至少购买了01号客户购买的所有产品的客户号。
SELECT客户号
FROM客户产品客户产品1
WHERE___NOTEXISTS___
(SELECT*
FROM客户产品客户产品2
WHERE___客户号='01'ANDNOTEXISTS___
(SELECT*
FROM客户产品客户产品3
WHERE客户产品1.客户号=客户产品3.客户号AND客户产品2.产品号=客户产品3.产品号));
[问题5](2分)
当—个订单和对应的订单明细数据入库时,应该减少产晶关系中相应的产品库存,为此应该利用数据库管理系统的什么机制实现此功能?
请用100字以内的文字简要说明。
试题三(15分)
阅读下列说明,回答问题1、问题2和问题3,将解答填入答题纸的对应栏内。
[说明]
某单位资料室需要建立一个图书管理系统,初步的需求分析结果如下:
(1)资料室有图书管理员若干名,他们负责已购入图书的编目和借还工作,每名图书管理员的信息包括工号和姓名;
(2)读者可在阅览室读书,也可通过图书流通室借述图书,读者信息包括读者ID、姓名、电话和Email,系统为不同读者生成不同的读者ID;
(3)每部书在系统中对应惟一的一条图书在版编目数据(CIP,以下简称书目),书目的基本信息包括ISBN号、书名、作者、出版商、出版年月,以及本资料室拥有该书的册数(以下简称册数),不同书目的ISBN号不相同;
(4)资料室对于同一书目的图书可拥有多册(本),图书信息包括图书ID、ISBN号、存放位置、当前状态,每一本书在系统中被赋予惟一的图书ID;
(5)一名读者最多只能借阅十本图书,且每本图书最多只能借两个月,读者借书时需由图书管理员登记读者ID、所借图书ID、借阅时间和应还时间,读者还书时图书管理员在对应的借书信息中记录归还时间;
(6)当某书目的可借出图书的数量为零时,读者可以对其进行预约登记,即记录读者ID、需要借阅的图书的ISBN号、预约时间。
某书目的信息如表3-1所示,与该书目对应的图书信息如表3-2所示。
表3-1书目信息
书名
作者
出版商
ISBN号
出版年月
册数
经办人
(数据结构)
严蔚敏
吴伟民
清华大学出版社
ISBN7-302-02368-9
1997.4
4
01
表3-2图书信息
图书ID
ISBN号
存放位置
状态
经办人
C832.1
ISBN7-302-02368-9
图书流通室
已借出
01
C832.2
ISBN7-302-02368-9
图书阅览室
不外借
01
C832.3
ISBN7-302-02368-9
图书流通室
未借出
01
C832.4
ISBN7-302-02368-9
图书流通室
已预约
01
系统的主要业务处理如下:
(1)入库管理;图书购进入库时,管理员查询本资料室的书目信息,若该书的:
书目尚未建立,则由管理员编写该书的书目信息并录入系统,然后编写并录入图书信息:
否则,修改该书目的册数,然后编写并录入图书信息,对于进入流通室的书,其初始状态为“未借出”,而送入阅览室的书的状态始终为“不外借”。
(2)借书管理:
读者借书时,若有,则由管理员为该读者办理借书手续,并记录该读者的借书信息,同时将借出图书的状态修改为“已借出”。
(3)预约管理;若图书流通室没有读者要借的书,则可为该读者建立预约登记,需要记录读者ID、书的ISBN号、预约时间和预约期限(最长为10天)。
一旦其他读者归还这种书,就自动通知该预约读者。
系统将自动清除超出预约期限的预约记录并修改相关信息。
(4)还书管理:
读者还书时,则记录相应借还信息中的“归还时间”,对于超期归还者,系统自动计算罚金(具体的计算过程此处省略)。
系统同时自动查询预约登记表,若存在其他读者预约该书的记录,则将该图书的状态修改为“已预约”,并将该图书ID写入相应的预约记录中(系统在清除超出预约期限的记录时解除该图书的“已预约”状态);否则,将该图书的状态修改为“未借出”。
(5)通