中级数据库系统工程师上半年下午试题答案及详细解析.docx
《中级数据库系统工程师上半年下午试题答案及详细解析.docx》由会员分享,可在线阅读,更多相关《中级数据库系统工程师上半年下午试题答案及详细解析.docx(22页珍藏版)》请在冰点文库上搜索。
中级数据库系统工程师上半年下午试题答案及详细解析
数据库系统工程师下午试题
试题一
阅读以下说明和图,回答问题1至问题4,将解答填入对应栏。
【说明】
某音像制品出租商店欲开发一个音像管理信息系统,管理音像制品的租借业务。
需求如下;
1.系统中的客户信息文件保存了该商店的所有客户的用户名、密码等信息。
对于首次来租借的客户,系统会为其生成用户名和初始密码。
2.系统中音像制品信息文件记录了商店中所有音像制品的详细信息及其库存数量。
3.根据客户所租借的音像制品的品种,按天收取相应的费用。
音像制品的最长租借周期为一周,每位客户每次最多只能租借6件音像制品。
4.客户租借某种音像制品的具体流程为:
(1)根据客户提供的用户名和密码,验证客户身份。
(2)若该客户是合法客户,查询音像制品信息文件,查看商店中是否还有这种音像制品。
(3)若还有该音像制品,且客户所要租借的音像制品数小于等于6个,就可以将该音像制品租借给客户。
这时,系统给出相应的租借确认信息,生成一条新的租借记录并将其保存在租借记录文件中。
(4)系统计算租借费用,将费用信息保存在租借记录文件中并告知客户。
(5)客户付清租借费用之后,系统接收客户付款信息,将音像制品租借给该客户。
5.当库存中某音像制品数量不能满足客户的租借请求数量时,系统可以接受客户网上预约租借某种音像制品。
系统接收到预约请求后,检查库存信息,验证用户身份,创建相应的预约记录,生成预约流水号给该客户,并将信息保存在预约记录文件中。
6.客户归还到期的音像制品,系统修改租借记录文件,并查询预约记录文件和客户信息文件,判定是否有客户预约了这些音像制品。
若有,则生成预约提示信息,通知系统履行预约服务,系统查询客户信息文件和预约记录文件,通知相关客户前来租借音像制品。
【问题1】
图1-1中只有一个外部实体E1。
使用说明中的词语,给出E1的名称。
【问题2】
使用说明中的词语,给出图1-2中的数据存储D1~D4的名称。
【问题3】
数据流图1-2缺少了三条数据流,根据说明及数据流图1-l提供的信息,分别指出这三条数据流的起点和终点。
起点
终点
【问题4】
在进行系统分析与设计时,面向数据结构的设计方法(如Jackson方法)也被广泛应用。
简要说明面向数据结构设计方法的基本思想及其适用场合。
[参考答案]
[问题1]E1:
客户
[问题2]
D1:
客户信息文件D2:
音像制品信息文件
D3:
租借记录文件D4:
预约记录文件
[问题3]
起点
终点
E1或客户
4或创建新客户
5或创建预约记录
E1或客户
6或归还音像制品
7或履行预服务
注意:
三条数据流无前后顺序区分
[问题4]
面向数据结构的设计方法以数据结构作为设计的基础,它根据输入/输出数据结构导出程序的结构。
面向数据结构的设计方法用于规模不大的数据处理系统。
试题一分析
根据题目说明,本系统的外部实体仅仅涉及到客户,因此系统的顶层数据流图中E1应该对应为客户。
题目的第二个问题在于识别系统中的数据文件D1至D4,根据0层数据流图中的数据文件与处理之间的关系分析可以得知:
D1为创建新客户加工的输出,并且为加工1、6和7的输入,再根据题目中的描述客户信息文件与创建客户信息、预约、归还和履行预约都相关,因此D1便是客户信息文件。
同理可分析出D2为音箱制品信息文件、D3为租借记录文件、D4为预约记录文件。
图1-2中缺少了三条数据流,我们首先检查顶层数据流图和0层数据流是否一致。
首先,从顶层数据流图中可以看出,与E1直接相关的数据流共有9条,而在0层数据流图中与E1直接关联的则只有7条,因此可以直接断定,图1-2中至少缺少直接与E1相关的两条数据流,该两条数据流分别为:
新客户创建请求和预约流水号。
新客户创建请求通过创建新客户加工将客户的信息写到客户信息文件中,因此其起点和终点分别为:
E1和4。
同理,预约流水号的起点和终点为5和E1。
在说明中,客户归还到期的音像制品,系统修改租借记录文件,并查询预约记录文件和客户信息文件,判定是否有客户预约了这些音像制品。
若有,则生成预约提示信息,通知系统履行预约服务,系统查询客户信息文件和预约记录文件,通知相关客户前来租借音像制品。
因此,在客户归还和履行预约服务之间存在着数据上的联系。
面向数据结构的设计方法以数据结构作为设计的基础,它根据输入/输出数据结构导出程序的结构。
面向数据结构的设计方法用于规模不大的数据处理系统。
试题二
阅读下列说明,回答问题1至问题4,将解答填入对应栏。
【说明】
某论坛的部分关系模式如下:
用户(用户编号,账号,密码,积分,级别)
栏目(栏目编号,父栏目编号,名称,版主,描述)
主题(主题编号,标题,类型,点击率,容,发布时间,栏目编号,用户编号,附件)
回复主题(回复主题编号,标题,·主题编号,容,发布时间,用户编号,附件)
其中:
(1)用户编号唯一标识一个用户。
用户的积分根据其发布的主题信息按积分规则计算。
级别的值来自集合{‘高级用户’,‘普通用户’,‘初级用户’},当用户开始注册时,积分为100,级别为初级用户;当用户积分到达1000时,级别为普通用户;当用户积分到达5000时,级别为高级用户。
(2)栏目编号唯一标识一个栏目。
栏目分两级,包括父栏目和子栏目。
每个栏目必须有且仅有一个版主,版主是一个用户。
(3)主题编号唯一标识一个主题。
类型的值来自集合{‘精华’,‘置顶’,‘普通’}。
(4)回复主题编号唯一识别一个回复主题。
一个回复主题对应一个主题,而一个主题可以有多个回复主题。
【问题1】
请将下列SQL语句的空缺部分补充完整。
(1)假设已经创建好用户关系,现在想增加一个属性“个性签名”,类型为VARCHAR(60),请给出相关的SQL语句。
(a);
(2)假设已经创建好用户关系,下面是创建栏目关系的SQL语句,请将空缺部分补充完整。
CREATETABLE栏目(
栏目编号VARCHAR(8)PRIMARYKEY,
父栏目编号VARCHAR(8),
名称VARCHAR(40),
版主VARCHAR(8)NOTNULL,
描述VARCHAR(100),
(b),
(c),
【问题2】
请将下列SQL语句的空缺部分补充完整。
(1)查询标题或容包含“SQL”的主题标题,按发布时间降序排序。
SELECTDISTINCT标题
FROM主题
(d)
(e);
(2)查找名称为“数据库技术”的栏目及其子栏目中的精华主题的标题和点击率。
SELECT标题,点击率
FROM主题
WHERE类型='精华'
AND栏目编号(f)(SELECT栏目编号
FROM栏目
WHERE名称='数据库技术'
(g)
SELECT栏目编号
FROM栏目
WHERE(h)(SELECT栏目编号
FROM栏目
WHERE名称='数据库技术'));
【问题3】
假设所有关系模式已创建,回复主题关系模式的“主题编号”是外键,参照主题关系模式的“主题编号”。
现在要删除编号为“T005”的主题及其相关的回复主题,下面是对应的删除语句,这些语句组成一个事务。
DELETE主题WHERE主题编号=‘T005’;
DELETE回复主题WHERE主题编号=‘T005’;
(1)请问这些删除语句能否完成功能?
若不能,请说明为什么?
(100字以)
(i)
(2)假设现在希望仅通过“DELETE主题WHERE主题编号=‘T005’;”这一条语句就能完成此删除功能,应如何实现?
(100字以)
(j)
【问题4】
为了了解每个栏目用户关注的主题,对原创主题创建视图主题view,属性包括主题编号、标题、用户账号、栏目名称、回复数、点击率和发布时间。
CREATEVIEW主题view(主题编号,标题,用户账号,栏目名称,回复数,点击率,发布时间)As
SELECT主题.主题编号,标题,账号,名称,回复数,点击率,发布时间
FROM主题,用户,栏目,((k)
FROM回复主题
(l))AsA
WHERE主题.用户编号=用户.用户编号AND主题.栏目编号=栏目.栏目编号AND
(m)
[参考答案]
[问题1]
(1)(a)ALTERTABLE用户ADD个性签名VARCHAR(60);
(2)(b)FOREIGNKEY(父栏目编号)REFERENCES栏目(栏目编号)
(c)FOREIGNKEY(版主)REFERENCES用户(用户编号)
[问题2]
(1)(d)WHERE标题LIKE‘%SQL%’OR容LIKE‘%SQL%’
(e)ORDERBY发布时间DESC
(2)(f)IN
(g)UNION
(h)父栏目编号IN
[问题3]
(1)(i)不能完成此功能。
删除了主题编号为“T005”的主题后,可能会存在该主题的回复主题,违反参照完整性约束。
(2)(j)在创建回复主题关系时指定级联删除,定义主题编号属性的外键约束后加上ONDELETECASCADE。
或者是在主题关系上定义触发器,当删除主题时,删除其对应的回复主题。
[问题4]
(k)SELECT主题编号,COUNT(*)回复数或SELECT主题编号,COUNT(*)AS回复数
(1)GROUPBY主题编号
(m)主题.题编号=A.主题编号
试题二分析
本题考查SQL语言的知识。
[问题1]
本题考查的是SQL的数据定义语言,即SQL的DDL,第
(1)题为基本表结构的修改,增加一个新的列用“ALTER...ADD...”语句;第
(2)题为参照完整性约束,因为栏目关系中的父栏目编号和版主是外键,应该定义参照完整性约束。
[问题2]
本题考查的是SQL的数据操纵语言,即SQL的DML中的SELECT语句。
根据要求完成特定的查询要求,第
(1)题考查LIKE、ORDERBY关键字的应用方法,第
(2)题考查m和UNION关键字的应用方法。
数据查询是数据库的核心操作,SELECT语句是SQL语言中进行查询的语句。
该语句提供丰富的功能和灵活的使用方式。
SELECT语句的一般格式为:
SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]...
FROM<表名或视图名>[,<表名或视图名>]...
[WHERE<条件表达式>]
[GROUPBY<列名1>[HAVING<条件表达式>]]
[ORDERBY<列名2>IASC|DESC]];
SELECT既可以完成简单的单表查询,也可以完成复杂的连接查询和嵌套查询。
考生应对SELECT语句非常熟悉,并能灵活的应用该语句进行各种查询。
[问题3]
本题考查的是参照完整性约束,第
(1)题给的两个DELETE语句,删除了主题编号为“T005”的主题后,可能会存在该主题的回复主题,违反参照完整性约束。
因此SQL语句不能完成想要完成的功能,若这两个语句先后顺序调换过来,则可以完成功能。
第
(2)题要求仅用一个DELETE语句就完成该删除要求,数据库提供了一些机制完成这个要求,一个是在定义回复主题关系时指定级联删除,定义主题编号属性的外键约束后加上ONDELETECASCADE;或者通过触发器机制,在主题关系上定义触发器,当删除主题时,删除其对应的回复主题,通过CREATETRIGGER...语句完成。
[问题4]
本题考查的是数据库的视图,视图也是数据库中非常重要的概念,考生应该熟悉这个容。
另外,本题考查的还主要是SELECT查询语句的应用方法。
试题三
阅读下列说明,回答问题1至问题3,将解答填入对应栏。
【说明】
某地区举行篮球比赛,需要开发一个比赛信息管理系统来记录比赛的相关信息。
【需求分析结果】
1.登记参赛球队的信息。
记录球队的名称、代表地区、成立时间等信息。
系统记录球队的每个队员的、年龄、身高、体重等信息。
每个球队有一个教练负责管理球队,一个教练仅负责一个球队。
系统记录教练的、年龄等信息。
2.安排球队的训练信息。
比赛组织者为球队提供了若干个场地,供球队进行适应性训练。
系统记录现有的场地信息,包括:
场地名称、场地规模、位置等信息。
系统可为每个球队安排不同的训练场地,如表3-l所示。
系统记录训练场地安排的信息。
表3-1训练安排表
球队名称
场地名称
训练时间
解放军
一号球场
2008-06-0914:
00—18:
00
解放军
一号球场
2008-06-1209:
00—12:
00
解放军
二号球场
2008-06-1114:
00—18:
00
一号球场
2008-06-1009:
00—12:
00
3.安排比赛。
该赛事聘请有专职裁判,每场比赛只安排一个裁判。
系统记录裁判的、年龄、级别等信息。
系统按照一定的规则,首先分组,然后根据球队、场地和裁判情况,安排比赛(每场比赛的对阵双方分别称为甲队和乙队)。
记录参赛球队、比赛时间、比分、场地名称等信息,如表3-2所示。
4.所有球员、教练和裁判可能出现重名情况。
表3-2比赛安排表
A组:
甲队----乙队
场地名称
比赛时间
裁判
比分
解放军----
一号球场
2008-06-1715:
00
大明
----
一号球场
2008-06-1719:
00
胡学梅
B组:
甲队----乙队
场地名称
比赛时间
裁判
比分
----
二号球场
2008-06-1715:
00
丁鸿平
----
二号球场
2008-06-1719:
00
郭爱琪
【概念模型设计】
根据需求阶段收集的信息,设计的实体联系图和关系模式(不完整)如下:
1.实体联系图(图3-1)
2.关系模式
教练(教练编号,,年龄)
队员(队员编号,,年龄,身高,体重,(a))
球队(球队名称,代表地区,成立时间,(b))
场地(场地名称,场地规模.位置)
训练记录((c))
裁判(裁判编号,,年龄,级别)
比赛记录((d))
【问题1】
根据问题描述,补充四个联系,完善图3-1的实体联系图。
【问题2】
根据你的实体联系图,完成关系模式,并给出训练记录和比赛记录关系模式的主键和外键。
【问题3】
如果考虑记录一些特别资深的热心球迷的情况,每个热心球迷可能支持多个球队。
热心球迷的基本信息包括:
、住址和喜欢的俱乐部等。
根据这一要求修改图3-1的实体联系图,给出修改后的关系模式。
[参考答案]
[问题1]
(图中的M、N、P可表示为*,对联系名称可不做要求,但不能出现重名。
)
[问题2]
填空:
(a)球队名称
(b)教练编号
(c)球队名称,场地名称,开始时间,结束时间
(d)甲队,乙队,比赛时间,场地名称,比分,裁判,分组
主键:
训练记录(球队,开始时间)或训练记录(场地名称,开始时间)
或训练记录(球队,结束时间)或训练记录(场地名称,结束时间)
比赛记录(场地名称,比赛时间)或比赛记录(裁判,比赛时间)
或比赛记录(甲队,比赛时间)或比赛记录(乙队,比赛时间)
外键:
训练记录的外键:
球队名称,场地名称
比赛记录的外键:
甲队,乙队,场地名称,裁判
[问题3]
关系模式:
热心球迷,(球迷编号,,住址,俱乐部)
支持球队(球迷编号,球队)
试题三分析
本题考查数据库概念结构设计及向逻辑结构转换的掌握。
此类题目要求认真阅读题目对现实问题的描述,经过分类、聚集、概括等方法,从中确定实体及其联系。
题目已经给出了4个实体,需要根据需求描述,给出实体间的联系。
由“每个球队有一个教练负责管理球队,一个教练仅负责一个球队。
”知球队与教练间为1:
1联系;球队与队员之间应为1:
N联系;多个球队使用多个训练场地,球队与场地之间为M:
M联系;比赛是球队、场地与裁判之间的联系,一个球队会与同组的其他多个队之间比赛,有多个场地和裁决,一位裁判会对多场比赛判罚,一个场地会有多场比赛,涉及多个球队和裁判,因此球队、场地与裁判之间的比赛关系为M:
N:
P联系。
根据补充后的E-R图,球队与球员之间的1:
N联系应通过将1端实体(球员)的主码(球队名称)加入到N端实体(球员)对应的关系中来表达。
这类联系也可通过独立的一个关系来表达,如球队—球员(球队名称,队员编号),这样会对查询增加多余的连接操作,因此一般不采用这种方法。
同样,球队与教练之间的1:
1联系也应通过将一方的主码增加到另一方实体对应的关系中,来表达联系。
训练和比赛为多对多联系,只能独立成一个关系模式,取该联系相关连的务实体的码及联系自有的属性构成。
如比分和分组应该是比赛的属性,再加上球队、裁判、场地的码,即构成“比赛记录”的关系模式。
同理,训练是球队和场地的多对多联系,训练开始时间和结束时间为训练的属性,加上球队的码和场地的码,构成“训练记录”关系模式。
球迷与球队之间为多对多联系,需新增球迷实体和球迷与球队之间的支持联系。
试题四
阅读下列说明,回答问题1至问题3,将解答填入对应栏。
【说明】
某企业的生产管理部门拟开发生产计划管理系统,该系统负责管理生产计划信息,记录生产安排和采购的情况。
现有的表格信息如表4-1、表4-2和表4-3所示。
表4-1某企业布艺玩具生产计划
编号:
LFX/JL7.5.1-01计划名称:
10月份布艺玩具生产计划
起止时间
2007.10.10~2007.1019
预算总金额
10万
产品编号
产品名称
生产数量
生产小组编号
生产小组名称
安排人力
B0710-2
玩具熊
1000只
A1
裁剪1组
5
B2
缝纫2组
6
C0710-2
玩具猫
500只
B1
缝纫1组
4
表4-2产品用料信息
产品名称
玩具熊
产品编号
B0710-2
材料编号
材料名称
数量
MC005
米色布
1.7米
ML008
米色缎带
0.8米
MC011
棕然带
0.5米
表4-3采购信息
采购单号
P0005
供应商
××集团
地址
××路
52387717
总价格
8420元
成交日期
2007-10-11
材料编号
材料名称
数量
单价
MC005
米色布
12
30元/米
MC011
棕色布
260
31元/米
根据上述需求设计的生产计划数据库的关系模式如图4-1所示。
关系模式的主要属性、含义及约束如表4-4所示。
表4-4主要属性、含义及约束
属性
含义及约束条件
生产计划编号
唯一标识该企业的某个生产计划的编号
产品编号
生产计划包括多个生产产品,产品编号唯一标识一个产品
生产小组编号
一个产品可由多个生产小组共同生产。
生产小组编号唯一标识一个生产小组
材料编号
一种产品固定由多个材料构成。
材料编号唯一标识一种材料。
不同供应商提供的相同材料对应一个材料编号
供应商
唯一标识一个供应商。
该企业有多个供应商,每个供应商可提供若干种材料
采购单号
采购单号唯一标识一次采购。
一次采购从一个供应商购买多种材料
该企业的生产管理部门可根据需求制定多个生产计划。
每个生产计划包含多个生产产品。
一个生产产品可由多个生产小组共同生产。
一个产品基于固定数量的用料来生产。
企业有多个供应商,每个供应商可以提供若干种材料,每种材料可以由多个供应商提供。
企业根据不同生产计划,从供应商处购买材料。
属性间的函数依赖关系如下:
对于“生产计划”关系模式:
生产计划编号→生产计划名称,起始时间,截止时间,预算总金额
生产计划编号,产品编号→生产数量
产品编号→产品名称
生产小组编号→生产小组名称
生产计划编号,生产小组编号,产品编号→安排人力
生产计划编号,产品编号→→生产小组编号,安排人力
对于“产品用料”关系模式:
材料编号→材料名称,单位
产品编号,材料编号→材料数量
对于“采购”关系模式:
采购单号→供应商,地址,,总价格,日期
采购单号,材料编号→数量
供应商,材料编号→单价
供应商→地址,
【问题1】
对关系“生产计划”,请回答以下问题:
(1)关系“生产计划”是否满足第四式?
用不超过200个字的容叙述理由。
(2)把“生产计划”分解为第四式,分解后的关系名依次为:
生产计划1,生产计划2…
【问题2】
对关系“采购”,请回答以下问题:
(1)若“采购”关系中不考虑折扣情况,则该关系是否存在派生属性?
若存在,指出其中的派生属性。
(2)针对“采购”关系,用100字以文字简要说明会产生什么问题。
(3)分解“采购”关系,分解后的关系名依次为:
采购1,采购2…
【问题3】
试分析可否根据图4-1生产计划数据库,统计出某一个生产计划所采购的某个供应商的总金额?
并用不超过100个字的容叙述理由。
[参考答案]
[问题1]
(1)“生产计划”关系模式,不满足第四式。
(2)分解后的关系模式如下:
生产计划1(生产计划编号,生产计划名称,起始时间,截止时间,预算总金额)
生产计划2(生产计划编号,产品编号,生产数量)
生产计划3(生产计划编号,产品编号,生产小组编号,安排人力)
生产计划4(产品编号,产品名称)
生产计划5(生产小组编号,生产小组名称)
[问题2]
(1)存在派生属性“总价格”。
总价格可以根据数量和单价计算出来。
(2)“采购”关系不满足第二式,即:
非主属性不完全依赖于码。
会造成:
插入异常、删除异常和修改复杂(或修改异常)。
(3)分解后的关系模式如下:
采购1(采购单号,总价格,日期)
采购2(供应商,地址,)
采购3(供应商,材料编号,单价)
采购4(采购单号,供应商,材料编号,数量)
[问题3]
无法统计,需在采购关系模式中,记录采购所对应的生产计划编号。
试题四分析
本题考查对关系模式规化理论的掌握。
式的判定可通过式定义来实现。
应从1NF入手,然后2NF、3NF等一步步判定。
1NF的判定是分析属性类型,如含有组合属性则不属于1NF。
再根据函数依赖集,确定关系的候选码和非主属性,考查函数依赖集,不存在非主属性对码的部分依赖为2NF,不存在非主属性对码的传递依赖为3NF,函数依赖的左部包含码为BCNF;只有平凡的多值依赖为4NF。
派生属性是指可以由其他属性经过计算获得的属性,这类属性在设计关系模式中不进行存储,会因为冗余而容易产生不一致性。
不满足BCNF的关系模式往往存在插入异常、删除异常和修改异常等问题。
这也是规化的根本原因所在。
关系模式的规化过程是通过对关系模式的分解来实现的,把低一级的关系模式分解为若干个高一级的关系模式。
分解的方法:
分析关系模式中的函数依赖,通过投影分解,消除不合理的函数依赖