2006年上半年数据库系统工程师下午试题

试题中通用的表示规则

  关于概念数据模型、关系模式、关系数据库的表结构标记,试题中若无特殊声明,将使用如下的通用标记规则。
1.概念数据模型的标记规则分别如图1、图2和图3所示。其中:
  (1)实体类型用长方形表示。长方形内为实体类型名称。
  (2)实体类型间的联系用菱形表示。在联系与实体间的连线上注明联系的类型。


图1实体类型和联系的标记规则

  (3)超类型和子类型之间的联系,从超类型到子类型之间画连线,连线上加注小圆圈,子类型加双线竖框。


图2超类型和子类型的标记规则

  (4)实体和联系的属性用椭圆表示,并用直线将属性与其所属的实体或联系连接起来。


图3实体类型及联系与其属性的标记规则

2.关系模式的标记规则如下:
  关系名(属性名1属性名2,…,属性名n)
  其中,
  (1)若该属性仅为主键属性时,则该属性名下画实下划线;
  (2)若该属性仅是外键属性时,则该属性名下画虚下划线:
  (3)若该属性既是主键属性,又是外键属性时,则在该属性名下面画实下划线和虚下划线;
  (4)若该属性既不是主键属性,又不是外键属性时,则在该属性名下不做标记。
3.关系数据库的表结构标记规则如下:
    表名

列名1

列名2

列名3

… …

列名n

其中;
  (1)若该列名仅为主键的列名时,则该列名下画实下划线:
  (2)若该列名仅是外键的列名时,则该列名下画虚下划线;
  (3)若该列名既是主键的列名,又是外键的列名时,则在该列名下面画实下划线和虚下划线;
  (4)若该列名既不是主键的列名,又不是外键的列名时,则在该列名下不做标记。

试题一(15分)
  阅读下列说明以及数据流图,回答问题1、问题2和问题3,将解答填入答题纸的对应栏内。 
[说明]
  某学校建立了一个网上作业提交与管理系统,基本功能描述如下:
  (1)帐号和密码。任课老师用帐号和密码登录系统后,提交所有选课学生的名单。系统自动为每个选课学生创建登录系统的帐号和密码。
  (2)作业提交。学生使用帐号和密码登录系统后,可以向系统申请所选课程的作业。
系统首先检查学生的当前状态,如果该学生还没有做过作业,则从数据库服务器申请一份作业。若申请成功,则显示需要完成的作业。学生需在线完成作业,单击“提交”按钮上交作业。
  (3)在线批阅。系统自动在线批改作业,显示作业成绩,并将该成绩记录在作业成绩统计文件中。
[问题1](3分)
  如果将数据库服务器(记为DB)作为一个外部实体,那么在绘制该系统的数据流图时,还应有哪些外部实体和数据存储?
[问题2](7分)
  根据说明结合问题1的解答,指出在该系统的顶层数据流图中应有哪些数据流.请采用说明中的词汇给出这些数据流的起点、终点以及数据流名称,下表给出了数据流的部分信息,请填充空缺处。

序号 起 点 终 点 数据流名称
1  __(1)__  网上作业提交与管理系统  作业申请
2  __(2)__  网上作业提交与管理系统  提交的作业
3  网上作业提交与管理系统  __(3)__  需完成的作业
4  网上作业提交与管理系统  __(4)__  __(5)__
5  网上作业提交与管理系统  __(6)__  作业申请
6  网上作业提交与管理系统  __(7)__  __(8)__
7  __(9)__  网上作业提交与管理系统  选课学生名单
8  __(10)__  网上作业提交与管理系统  __(11)__
9  __(12)__  网上作业提交与管理系统  帐号和密码
10  __(13)__  网上作业提交与管理系统  帐号和密码

[问题3](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语句,请将空缺部分补充完整。
  CREATE TABLE 客户(
   客户号CHAR(5)___(a)___
   姓名CHAR(30),
   性别CHAR(2)___(b)___
   地址CHAR(30),
   邮编CHAR(6));
  CREATE TABLE 订单(
   订单号CHAR(4),
   时间 CHAR(10),
   金额 NUMBER(6,2),
   客户号 CHAR(5) NOT NULL,
   PRIMARY KEY(订单号),
   ___(c)___;
[问题2](4分)
  请根据如下查询语句,回答问题(d),(e)和(f)
  SELECT 客户号
  FROM 订单,订单明细
  WHERE 订单明细.订单号 = 订单.订单号 AND
     产品号 = '02’AND
     数量>10;
  (d)上述查询语句的功能是什么?请简要回答。(30个字以内)
  (e)将上述查询语句转换成对应的关系代数表达式。
  (f)上述SQL查询语句是否可以进一步优化?如可以,给出优化后的SQL查询语句。
[问题3](3分)
  请按题意将下述SQL查询语句的空缺部分补充完整。
  按客户购买总额的降序,输出每个客户的客户名和购买总额。
  SELECT 客户.客户名,___(g)___
  FROM 客户,订单
  WHERE 客户.客户号 = 订单.客户号
   ___(h)___
   ___(i)___;
[问题4](3分)
  用SQL语句完成下述要求。
  (1)定义一个描述订单的客户号和对应订单明细中产品号关系的视图,客户产品(客户号,产品号)。
  (2)借助(1)所定义的视图,查询至少购买了01号客户购买的所有产品的客户号。
  SELECT 客户号
  FROM 客户产品 客户产品1
  WHERE___(j)___
   (SELECT*
    FROM客户产品 客户产品2
    WHERE___(k)___
    (SELECT*
     FROM客户产品 客户产品3
     WHERE___(l)___));
[问题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)通知处理:对于已到期且未归还的图书,系统通过Email自动通知读者;若读者预约的书已到,系统则自动通过Email通知该读者来办理借书手续。
[问题1](2分) 
  根据以上说明设计的实体联系图如图3-1所示,请指出读者与图书、书目与读者、书目与图书之间的联系类型。

 
图3-1 图书管理系统的实体联系图

[问题2](2分) 
  该图书管理系统的主要关系模式如下,请补充“借还记录”和“预约登记”关系中的空缺。
  管理员(工号,姓名)
  读者(读者ID,姓名,电话,Email)
  书目(1SBN号,书名,作者,出版商,出版年月,册数,经办人)
  图书(图书ID,ISBN号,存放位置,状态,经办人)
  借还记录(__(a)__,借出时间,应还时间,归还时间)
  预约登记(__(b)__,预约时间,预约期限,图书ID)
  注:时间格式为“年.月.日 时:分:秒”
[问题3](4分)
  请指出问题2中给出的读者、书目关系模式的主键,以及图书、借还记录和预约登记关系模式的主键和外键。
[问题4](7分)
  若系统增加新的预约需求,其业务处理描述如下:
  若图书流通室没有读者要借的书,则可为该读者建立预约登记,需要记录读者ID、书的ISBN号、预约时间和预约期限(最长为10天)。一旦其他读者归还这种书,系统将自动查询预约登记表,若存在有读者预约该书的记录,则将该图书的状态修改为“已预约”,并将该图书ID写入相应的预约记录中(系统在清除超出预约期限的记录时解除该图书的“已预约”状态),同时通过Email通知该预约读者办理借阅手续。对于超出预约期限的预约记录,系统将自动清除。
  为满足上述需要,应对图3-1所示的实体联系图如何修改或补充,请给出修改后的实体联系图,并对关系模式做相应的修改或补充,指出新增关系模式的主键和外键。

试题四(15分)
  阅读下列说明,回答问题l至问题4,将解答填入答题纸的对应栏内。
[说明]
  某保险公司需要管理用户投保的相关信息,拟建立针对投保数据、险种数据、缴费数据的管理系统。系统需求分析情况如下:
  1.投保单是缔结保险合同的重要依据,需填写投保人、被保险人、受益人资料等信息。投保单格式如下所示:

投保书号:zO00001                                 年 月 日



姓名: 性别:男口女口 出生日期:    年 月 日
身份证号码:
联系地址:               邮政编码:




姓名: 性别:男口女口 出生日期:    年 月 日
身份证号码:
联系地址:                邮政编码:




险种名称 业务员姓名 业务员联系方式
     
身故受益人姓名 受益顺序 身份证号码
     
     

  2.该公司需要管理险种信息以供查询。险种信息包括:险种名称、承保年龄、保险
利益、缴费方式、保险费、保险特点等信息。示例如下:

险种名称

重大疾病保险

承保年龄

三十日以上、六十五周岁以下

保险利益

重大疾病保险金——由于患病无法工作而失去正常收入来源,将获得一笔资金以 支付巨额医疗费用。

缴费方式

保险费的交付方式分为趸交、年交和月交三种。分期交付保险费的交费期间分为五年、十年、二十年和三十年四种,由投保人在投保时选择。

保险费

10万

保险特点

提供29种疾病的特别保障。

  3.业务处理过程。用户可通过网络查询险种,并选择投保的险种。用户直接填写投保书,经过业务员审核通过后,请投保人签字,并由业务员确认投保书。业务员按月查询用户的缴费记录,以便生成相应的缴费通知单。
  初步设计的关系模式如下所示:
  投保单(投保书号,投保人客户号,被保人客户号,险种名称,身故受益人姓名,受益顺序,受益人身份证号码,业务员姓名,业务员联系方式,投保日期)
  客户信息(客户号,姓名,性别,出生日期,身份证号码,联系地址,邮政编码)
  缴费记录(投保书号,缴费月份,缴费金额,欠款,节余,滞纳金)
  险种信息(险种名称,承保年龄,保险利益,缴费方式,保险费,保险特点)
  注:投保单关系中,投保人客户号和被保人客户号是外键,依赖于客户信息关系的主键“客户号”。
[问题1](4分)
  给出上述各关系模式的主键,以及投保单关系模式的函数依赖。
[问题2](4分)
  列出投保单关系模式可能存在的更新异常和多值依赖,并简要说明。
[问题3](4分)
  分析投保单关系模式属于第几范式,并简单说明原因。修改上述关系模式,以达到4NF。
[问题4](3分)
  公司需要查询每个业务员每月完成的保单总金额,根据业务员月保单总金额分档,设定不同的提成比例,以便计算业务员月奖金。对上述的数据库模式如何修改或补充,以满足需求。

试题五(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),T4w<X)
[问题1]
  
试述事务并发调度的正确性准则及其内容。(4分)
[问题2]
  请判断如下调度是否正确。(4分)
  T3w(Y),T1R(X),T2R(Y),T3w(X),T2w(X),T3w(Z),T4R(Z),T4w(X)
  按这种调度产生的事务依赖关系图如下:

[问题3]
  
给出与[问题2]中调度等价的一个串行调度序列。(3分)
[问题4]
  采用何种加锁策略能够保证事务调度的正确性,简述其内容。(4分)

回目录     老顽童整理校对 2006年8月