《上半年数据库系统工程师下午试题及答案.doc》由会员分享,可在线阅读,更多相关《上半年数据库系统工程师下午试题及答案.doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2012年上半年数据库系统工程师下午试题试题一(15分)阅读下列说明以及数据流图,回答问题1、问题2和问题3,将解答填入答题纸的对应栏内。说明某学校建立了一个网上作业提交与管理系统,基本功能描述如下:(1)帐号和密码。任课老师用帐号和密码登录系统后,提交所有选课学生的名单。系统自动为每个选课学生创建登录系统的帐号和密码。(2)作业提交。学生使用帐号和密码登录系统后,可以向系统申请所选课程的作业。系统首先检查学生的当前状态,如果该学生还没有做过作业,则从数据库服务器申请一份作业。若申请成功,则显示需要完成的作业。学生需在线完成作业,单击“提交”按钮上交作业。(3)在线批阅。系统自动在线批改作业,
2、显示作业成绩,并将该成绩记录在作业成绩统计文件中。问题1(3分)如果将数据库服务器(记为DB)作为一个外部实体,那么在绘制该系统的数据流图时,还应有哪些外部实体和数据存储?答:外部实体:(选课)学生、(任课)老师数据存储:作业成绩统计文件问题2(7分)根据说明结合问题1的解答,指出在该系统的顶层数据流图中应有哪些数据流请采用说明中的词汇给出这些数据流的起点、终点以及数据流名称,下表给出了数据流的部分信息,请填充空缺处。序号起点终点数据流名称1_(选课)学生_网上作业提交与管理系统作业申请2_(选课)学生_网上作业提交与管理系统提交的作业3网上作业提交与管理系统_(选课)学生_需完成的作业4网上
3、作业提交与管理系统_(选课)学生_作业成绩_5网上作业提交与管理系统_ DB _作业申请6网上作业提交与管理系统_作业成绩统计文件_作业成绩_7_(任课)老师_网上作业提交与管理系统选课学生名单8_ DB _网上作业提交与管理系统_作业_9_(选课)学生_网上作业提交与管理系统帐号和密码10_(任课)老师_网上作业提交与管理系统帐号和密码问题3(5分)根据数据流图的设计原则,阅读下图所示的数据流图,找出其中的错误之处。答:错误1:外部实体A和B之间不能存在数据流。错误2:外部实体A和数据存储H之间不能存在数据流。错误3:加工2的输入/输出数据流名字相同错误4:加工4只有输入没有输出错误5:加工
4、5只有输出,没有输入。试题二(15分)阅读下列说明,回答问题1至问题5,将解答填入答题纸的对应栏内。说明某企业网上销售管理系统的数据库部分关系模式如下所示:客户(客户号,姓名,性别,地址,邮编)产品(产品号,名称,库存,单价)订单(订单号,时间,金额,客户号)订单明细(订单号,产品号,数量)关系模式的主要属性及约束如表2-1所示。 表2-1关系模式的主要属性及约束 关系名 约束 客户 客户号唯一标识一位客户,客户性别取值为“男”或者“女 产品 产品号唯一标识一个产品 订单 订单号唯一标识一份订单。一份订单必须且仅对应一位客户,一份订单可由一到多条订单明细组成。一位客户可以有多份订单。 订单明细
5、 一条订单明细对应一份订单中的一个产品 客户、产品、订单和订单明细关系及部分数据分别如表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订单关系订单号时间金额客户号10011268.00011002298.0002表2-5订单明细关系订单号产品号数量100101210010241002011问题1(3分)以下是创建部分关系表的SQL语句,请将空缺部
6、分补充完整。CREATE TABLE 客户(客户号CHAR(5)_ NOT NULL UNIQUE _姓名CHAR(30),性别CHAR(2)_ CHECK(VALUE IN(男,女)_地址CHAR(30),邮编CHAR(6);CREATE TABLE 订单(订单号CHAR(4),时间 CHAR(10),金额 NUMBER(6,2),客户号 CHAR(5) NOT NULL,PRIMARY KEY(订单号),_ FOREIGN KEY(客户号) REFERENCES 客户(客户号)_;问题2(4分)请根据如下查询语句,回答问题(d),(e)和(f)SELECT 客户号FROM 订单,订单明细W
7、HERE 订单明细.订单号 = 订单.订单号 AND产品号 = 02AND数量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查询语句
8、的空缺部分补充完整。按客户购买总额的降序,输出每个客户的客户名和购买总额。SELECT 客户.客户名,_ SUM(金额)AS总额_FROM 客户,订单WHERE 客户.客户号 = 订单.客户号_ GROUP BY 客户.客户号_ ORDER BY 总额 DESC _;问题4(3分)用SQL语句完成下述要求。(1)定义一个描述订单的客户号和对应订单明细中产品号关系的视图,客户产品(客户号,产品号)。CREATE VIEW 客户产品 AS(SELECT 客户号,产品号FROM 订单,订单明细WHERE 订单明细.订单号=订单.订单号)(2)借助(1)所定义的视图,查询至少购买了01号客户购买的所有
9、产品的客户号。SELECT 客户号FROM 客户产品 客户产品1WHERE_ NOT EXISTS _(SELECT*FROM客户产品 客户产品2WHERE_客户号=01 AND NOT EXISTS _(SELECT*FROM客户产品 客户产品3WHERE客户产品1.客户号=客户产品3.客户号AND客户产品2.产品号=客户产品3.产品号);问题5(2分)当个订单和对应的订单明细数据入库时,应该减少产晶关系中相应的产品库存,为此应该利用数据库管理系统的什么机制实现此功能?请用100字以内的文字简要说明。试题三(15分)阅读下列说明,回答问题1、问题2和问题3,将解答填入答题纸的对应栏内。说明某
10、单位资料室需要建立一个图书管理系统,初步的需求分析结果如下:(1)资料室有图书管理员若干名,他们负责已购入图书的编目和借还工作,每名图书管理员的信息包括工号和姓名;(2)读者可在阅览室读书,也可通过图书流通室借述图书,读者信息包括读者ID、姓名、电话和Email,系统为不同读者生成不同的读者ID;(3)每部书在系统中对应惟一的一条图书在版编目数据(CIP,以下简称书目),书目的基本信息包括ISBN号、书名、作者、出版商、出版年月,以及本资料室拥有该书的册数(以下简称册数),不同书目的ISBN号不相同;(4)资料室对于同一书目的图书可拥有多册(本),图书信息包括图书ID、ISBN号、存放位置、当
11、前状态,每一本书在系统中被赋予惟一的图书ID;(5)一名读者最多只能借阅十本图书,且每本图书最多只能借两个月,读者借书时需由图书管理员登记读者ID、所借图书ID、借阅时间和应还时间,读者还书时图书管理员在对应的借书信息中记录归还时间;(6)当某书目的可借出图书的数量为零时,读者可以对其进行预约登记,即记录读者ID、需要借阅的图书的ISBN号、预约时间。某书目的信息如表3-1所示,与该书目对应的图书信息如表3-2所示。 表3-1 书目信息 书名 作者 出版商 ISBN号 出版年月 册数 经办人 (数据结构) 严蔚敏吴伟民 清华大学出版社 ISBN7-302-02368-9 1997.4 4 01
12、 表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)入库管理;图书购进入库时,管理员查询本资料室的书目信息,若该书的:书目尚未建立,则由管理员编写该书的书目信息并录入系统,然后编写并录入图书信息:否则,修改该书目的册数,然后编写并录入图书信息,对于进
13、入流通室的书,其初始状态为“未借出”,而送入阅览室的书的状态始终为“不外借”。(2)借书管理:读者借书时,若有,则由管理员为该读者办理借书手续,并记录该读者的借书信息,同时将借出图书的状态修改为“已借出”。(3)预约管理;若图书流通室没有读者要借的书,则可为该读者建立预约登记,需要记录读者ID、书的ISBN号、预约时间和预约期限(最长为10天)。一旦其他读者归还这种书,就自动通知该预约读者。系统将自动清除超出预约期限的预约记录并修改相关信息。(4)还书管理:读者还书时,则记录相应借还信息中的“归还时间”,对于超期归还者,系统自动计算罚金(具体的计算过程此处省略)。系统同时自动查询预约登记表,若
14、存在其他读者预约该书的记录,则将该图书的状态修改为“已预约”,并将该图书ID写入相应的预约记录中(系统在清除超出预约期限的记录时解除该图书的“已预约”状态);否则,将该图书的状态修改为“未借出”。(5)通知处理:对于已到期且未归还的图书,系统通过Email自动通知读者;若读者预约的书已到,系统则自动通过Email通知该读者来办理借书手续。问题1(2分)根据以上说明设计的实体联系图如图3-1所示,请指出读者与图书、书目与读者、书目与图书之间的联系类型。 图3-1 图书管理系统的实体联系图 问题2(2分)该图书管理系统的主要关系模式如下,请补充“借还记录”和“预约登记”关系中的空缺。管理员(工号,
15、姓名)读者(读者ID,姓名,电话,Email)书目(1SBN号,书名,作者,出版商,出版年月,册数,经办人)图书(图书ID,ISBN号,存放位置,状态,经办人)借还记录(_(a)_,借出时间,应还时间,归还时间)预约登记(_(b)_,预约时间,预约期限,图书ID)注:时间格式为“年.月.日 时:分:秒”问题3(4分)请指出问题2中给出的读者、书目关系模式的主键,以及图书、借还记录和预约登记关系模式的主键和外键。问题4(7分)若系统增加新的预约需求,其业务处理描述如下:若图书流通室没有读者要借的书,则可为该读者建立预约登记,需要记录读者ID、书的ISBN号、预约时间和预约期限(最长为10天)。一
16、旦其他读者归还这种书,系统将自动查询预约登记表,若存在有读者预约该书的记录,则将该图书的状态修改为“已预约”,并将该图书ID写入相应的预约记录中(系统在清除超出预约期限的记录时解除该图书的“已预约”状态),同时通过Email通知该预约读者办理借阅手续。对于超出预约期限的预约记录,系统将自动清除。为满足上述需要,应对图3-1所示的实体联系图如何修改或补充,请给出修改后的实体联系图,并对关系模式做相应的修改或补充,指出新增关系模式的主键和外键。 试题四(15分)阅读下列说明,回答问题l至问题4,将解答填入答题纸的对应栏内。说明某保险公司需要管理用户投保的相关信息,拟建立针对投保数据、险种数据、缴费
17、数据的管理系统。系统需求分析情况如下:1投保单是缔结保险合同的重要依据,需填写投保人、被保险人、受益人资料等信息。投保单格式如下所示: 投保书号:zO00001 年 月 日 投保人姓名:性别:男口女口出生日期: 年 月 日身份证号码:联系地址:邮政编码:被保险人姓名:性别:男口女口出生日期: 年 月 日身份证号码:联系地址: 邮政编码:投保事项险种名称业务员姓名业务员联系方式身故受益人姓名受益顺序身份证号码2该公司需要管理险种信息以供查询。险种信息包括:险种名称、承保年龄、保险利益、缴费方式、保险费、保险特点等信息。示例如下: 险种名称 重大疾病保险 承保年龄 三十日以上、六十五周岁以下 保险
18、利益 重大疾病保险金由于患病无法工作而失去正常收入来源,将获得一笔资金以 支付巨额医疗费用。 缴费方式 保险费的交付方式分为趸交、年交和月交三种。分期交付保险费的交费期间分为五年、十年、二十年和三十年四种,由投保人在投保时选择。 保险费 10万 保险特点 提供29种疾病的特别保障。 3业务处理过程。用户可通过网络查询险种,并选择投保的险种。用户直接填写投保书,经过业务员审核通过后,请投保人签字,并由业务员确认投保书。业务员按月查询用户的缴费记录,以便生成相应的缴费通知单。初步设计的关系模式如下所示:投保单(投保书号,投保人客户号,被保人客户号,险种名称,身故受益人姓名,受益顺序,受益人身份证号
19、码,业务员姓名,业务员联系方式,投保日期)客户信息(客户号,姓名,性别,出生日期,身份证号码,联系地址,邮政编码)缴费记录(投保书号,缴费月份,缴费金额,欠款,节余,滞纳金)险种信息(险种名称,承保年龄,保险利益,缴费方式,保险费,保险特点)注:投保单关系中,投保人客户号和被保人客户号是外键,依赖于客户信息关系的主键“客户号”。问题1(4分)给出上述各关系模式的主键,以及投保单关系模式的函数依赖。答:投保单:(投保书号,受益人身份证号码)客户信息:客户号缴费记录:(投保书号,缴费月份)险种信息:险种名称投保单关系模式的函数依赖:F1=(投保书号,受益人身份证号码)(投保人客户号,被保人客户号,
20、险种名称,受益顺序,业务员姓名,业务员联系方式,投保日期)F2=投保书号(投保人客户号,被保人客户号,险种名称,业务员姓名,业务员联系方式,投保日期)F3=受益人身份证号码身故受益人姓名F4=业务员姓名业务员联系方式问题2(4分)列出投保单关系模式可能存在的更新异常和多值依赖,并简要说明。答:(1)投保单关系模式存在更新异常。该关系模式存在冗余数据,修改数据时可能会引起修改异常,例如当业务员的联系方式发生变化时,他所负责的每一个投保单里面的业务员联系方式必须更新,如果部分更新,部分不更新,则会产生修改(更新)异常;当一个业务员还没有任何投保单时,他的数据将不能插入数据库,即存在插入异常;当一个
21、投保单记录删除了之后,对应的业务员信息也丢失了,即存在删除异常。 (2)投保单关系模式存在多值依赖,一个特定的投保单对应多个受益人。问题3(4分)分析投保单关系模式属于第几范式,并简单说明原因。修改上述关系模式,以达到4NF。答:投保单关系模式属于1范围(或1NF),该关系模式存在数据冗余。例如一个业务员的姓名、联系方式属性与其负责的投保单数量一样多。在具有多个受益人的一个投保单中,投保单的诸多属性存储多次。关系模式还存在上题所说的更新异常和多值依赖。其函数依赖存在非主属性部分依赖于码,故不屑于2范式(或2NF)。将投保单关系模式进行如下模式分解:投保单(投保书号,投保人客户号,被保人客户号,
22、险种名称,业务员号,投保日期)受益人信息(受益人号,受益人姓名,受益人身份证号码)业务员信息(业务员号,业务员姓名,业务员联系方式)投保-受益信息(投保书号,受益人号,收益人顺序)上述模式分解后,能保证在每个关系模式中,属性间无非平凡且非函数依赖的多值依赖,故达到了4范式(或4NF)。问题4(3分)公司需要查询每个业务员每月完成的保单总金额,根据业务员月保单总金额分档,设定不同的提成比例,以便计算业务员月奖金。对上述的数据库模式如何修改或补充,以满足需求。 答:增加如下关系模式即可满足需求:提成信息(总金额,提成比例)其中总金额属性描述一个金额范围,提成比例表示对应该范围的提成比例。用户查询投
23、保单关系模式,获得业务员每月的保单总金额,再在提成信息关系模式中查询对应的提成比例,即可计算出业务员的月奖金。试题五(15分)阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。说明现有一个事务集T1,T2,T3,T4,其中这四个事务在运行过程中需要读写表X、Y和Z。设T1对X的读操作记作TiR(X),ti对K的写操作记作Tiw(X)。事务对XYZ的访问情况如下:T1:T1R(X)T2:T2R(Y),T2w(X)T3;T3w(Y),T3w(X),T3w(Z)T4:T4R(Z),T4w10(订单明细)(f)可以优化。优化的SQL语句为:SELECT客户号FROM订单WHERE订单号IN
24、(SELECT 订单号FROM 订单明细WHERE 产品号 = 02 AND数量10)问题3(g)SUM(金额)AS总额(h)GROUP BY 客户.客户号(i)ORDER BY 总额 DESC问题4(1)CREATE VIEW 客户产品 AS(SELECT 客户号,产品号FROM 订单,订单明细WHERE 订单明细.订单号=订单.订单号)(2)(j)NOT EXISTS (k)客户号=01 AND NOT EXISTS (l)客户产品1.客户号=客户产品3.客户号AND客户产品2.产品号=客户产品3.产品号问题5采用数据库管理系统的触发器机制。对产品关系定义一个触发器,在订单明细中的记录插入
25、或更新之后,该触发器被激活,根据订单明细中订购的产品及数量,减少产品关系中对应产品的库存量。试题三问题1(1)n(2)m(3)l(4)n或m问题2(a)读者ID,图书ID问题3 关系模式 主键 外键 读者 读者ID 书目 ISBN号 图书 图书ID ISBN号 借还记录 读者ID,图书ID,借书时间 读者ID,图书ID 问题4补充联系预约,修补后的实体联系图 增加新的关系模式:预约登记(读者ID,ISBN号,预约时间,预约期限,图书ID)主键:(读者ID,ISBN号,预约时间)外键:读者ID,ISBN号,图书ID 试题四问题1投保单:(投保书号,受益人身份证号码)客户信息:客户号缴费记录:(投
26、保书号,缴费月份)险种信息:险种名称投保单关系模式的函数依赖:F1=(投保书号,受益人身份证号码)(投保人客户号,被保人客户号,险种名称,受益顺序,业务员姓名,业务员联系方式,投保日期)F2=投保书号(投保人客户号,被保人客户号,险种名称,业务员姓名,业务员联系方式,投保日期)F3=受益人身份证号码身故受益人姓名F4=业务员姓名业务员联系方式问题2(1)投保单关系模式存在更新异常。该关系模式存在冗余数据,修改数据时可能会引起修改异常,例如当业务员的联系方式发生变化时,他所负责的每一个投保单里面的业务员联系方式必须更新,如果部分更新,部分不更新,则会产生修改(更新)异常;当一个业务员还没有任何投
27、保单时,他的数据将不能插入数据库,即存在插入异常;当一个投保单记录删除了之后,对应的业务员信息也丢失了,即存在删除异常。(2)投保单关系模式存在多值依赖,一个特定的投保单对应多个受益人。问题3投保单关系模式属于1范围(或1NF),该关系模式存在数据冗余。例如一个业务员的姓名、联系方式属性与其负责的投保单数量一样多。在具有多个受益人的一个投保单中,投保单的诸多属性存储多次。关系模式还存在上题所说的更新异常和多值依赖。其函数依赖存在非主属性部分依赖于码,故不屑于2范式(或2NF)。将投保单关系模式进行如下模式分解:投保单(投保书号,投保人客户号,被保人客户号,险种名称,业务员号,投保日期)受益人信
28、息(受益人号,受益人姓名,受益人身份证号码)业务员信息(业务员号,业务员姓名,业务员联系方式)投保-受益信息(投保书号,受益人号,收益人顺序)上述模式分解后,能保证在每个关系模式中,属性间无非平凡且非函数依赖的多值依赖,故达到了4范式(或4NF)。问题4增加如下关系模式即可满足需求:提成信息(总金额,提成比例)其中总金额属性描述一个金额范围,提成比例表示对应该范围的提成比例。用户查询投保单关系模式,获得业务员每月的保单总金额,再在提成信息关系模式中查询对应的提成比例,即可计算出业务员的月奖金。试题五问题1事务的可串行调度。多个事务的并发执行是正确的,尚且仅当其结果与按某一次序串行执行它们时的结果相同。问题2此调度是一个可串行化的调度,所以是一个正确的调度。问题3T1,T2,T3,T4问题4两段锁协议。把事务分为两个阶段,第一阶段是获得封锁,但不能解锁;第二个阶段是解除封锁,不能申请新的锁。