中级数据库系统工程师上半年下午试题答案及详细解析.docx
- 文档编号:16875667
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:21
- 大小:118.30KB
中级数据库系统工程师上半年下午试题答案及详细解析.docx
《中级数据库系统工程师上半年下午试题答案及详细解析.docx》由会员分享,可在线阅读,更多相关《中级数据库系统工程师上半年下午试题答案及详细解析.docx(21页珍藏版)》请在冰点文库上搜索。
中级数据库系统工程师上半年下午试题答案及详细解析
试题一
阅读以下说明和图,回答问题1至问题3,将解答填入对应栏内。
【说明】
某房屋租赁公司欲建立一个房屋租赁服务系统,统一管理房主和租赁者的信息,从而快速地提供租赁服务。
该系统具有以下功能:
1.登记房主信息。
对于每名房主,系统需登记其姓名、住址和联系电话,并将这些信息写入房主信息文刊:
。
2.登记房屋信息。
所有在系统中登记的房屋都有一个唯一的识别号(对于新增加的房屋,系统会自动为其分配一个识别号)。
除此之外,还需登记该房屋的地址、房型(如平房、带阳台的楼房、独立式住宅等)、最多能够容纳的房客数、租金及房屋状态(待租赁、已出租)。
这些信息都保存在房屋信息文件中。
一名房主可以在系统中登记多个待租赁的房屋。
3.登记租赁者信息。
所有想通过该系统租赁房屋的租赁者,必须首先在系统中登记个人信息,包括:
姓名、住址、电话号码、出生年月和性别。
这些信息都保存在租赁者信息文件中。
4.租赁房屋。
已经登记在系统中的租赁者,可以得到一份系统提供的待租赁房屋列表。
一旦租赁者从中找到合适的房屋,就可以提出看房请求。
系统会安排租赁者与房主见面。
对于每次看房,系统会生成一条看房记录并将其写入看房记录文件中。
5.收取于续费。
房主登记完房屋后,系统会生成一份费用单,房主根据费用单交纳相应的费用。
6.变更房屋状态。
当租赁者与房主达成租房或退房协议后,房主向系统提交变更
房屋状态的清求。
系统将根据房主的请求,修改房屋信息文件。
数据流图1—1和图1-2分别给出了该系统的顶层数据流图和0层数据流图。
【问题1】
使用[【说明】中给出的词汇,将数据流图1-1中
(1)~(4)处的数据流补充完整。
【问题2】
使用【说明】中给出的词汇,将数据流图1-2中的(5)~(8)补充完整。
【问题3】
数据流程图1-2中缺失了三条数据流,请指出这三条数据流的起点、终点和数据流名称。
答案
[问题1]
(1)费用单
(2)待租赁房屋列表(3)看房请求(4)变更房屋状态请求
[问题2]
(5)房主信息文件(6)租赁者信息文件
(7)房屋信息文件(8)看房记录文件
[问题3]
(1)起点:
房主终点:
变更房屋状态数据流名称;变更房屋状态请求
(2)起点:
租赁者终点:
登记租赁者信息数据流名称:
租赁者信息
(3)起点:
租赁者终点,安排租赁者看房数据流名称:
看房请求
[分析]
本题考查的是DFD的应用,属于比较传统的题目,考查点也与往年类似。
[问题1]考查的是顶层DFD。
顶层DFD通常用来确定系统边界,其中只包含一个唯一的加工(即待开发的系统)、外部实体以及外部实体与系统之间的输入输出数据流。
题目要求填充的正是数据流。
细心的考生可能会发现,在0层DFD中,与“房主”相关的数据流有5条。
其中的“费用单”是顶层DFD中没有出现过的,而且是系统输出给“房主”的。
这条数据流恰好可以与第
(1)空对应,因此
(1)处缺失的数据流就是“费用单”。
如果确定了(4)处的数据流,实际上[问题3]要求的一条数据流也就找到了。
由于(4)处缺失的数据流是一条输入数据流,从[说明]中可以看出,只有功能6“当租赁者与房主达成租房或退房协议后,房主向系统提交变更房屋状态的请求”所描述的数据流没有在“房主”与系统之间体现出来。
因此可以确定,(4)处缺失的数据流就是“变更房屋状态请求”。
相应地,可以确定,在0层图中缺失的其中一条数据流也是它,其起点是“房主”,终点是“变更房屋状态”这个加工。
类似地,通过比较两张DFD中与外部实体“租赁者”相关的数据流,可以发现:
出现在0层图上的数据流“带租赁房屋列表”是顶层图上没有的,且与
(2)处的数据流的方向一致。
由此可以断定,
(2)处的数据流就是“带租赁房屋列表”。
而顶层图中的数据流“租赁者信息”却是0层图上没有的。
这样就找到了0层图上缺失的第2条数据流:
租赁者信息,它的起点是“租赁者”,终点是加工“登记租赁者信息”。
再回到[说明],其中与“租赁者”相关的功能“一旦租赁者从中找到合适的房屋,就可以提出看房请求”并没有在图中体现出来。
这样就能确定(3)处的数据流应该是“看房请求”。
而0层图中也没有出现这条数据流。
所以,0层图中缺失的第3条数据流就是“看房请求”,它的起点是“租赁者”,终点是加工“安排租赁者看房”。
到此为止所有缺失的数据流都补齐了,0层图中的(5)~(8)需要填的是数据存储。
由[说明]可以确定,这个系统中的数据存储有房主信息文件(功能1)、房屋信息文件[功能2]、租赁者信息文件(功能3)和看房记录文件(功能4)。
下面就可以根据相应的加工对号入座了。
显然,(5)处的是房主信息文件:
(6)处的是租赁者信息文件;(7)处的是房屋信息文件;(8)处的是看房记录文件。
试题二
阅读下列说明,回答问题1至问题4,将解答填入对应栏内。
【说明】某工程项目公司的信息管理系统的部分关系模式如下:
职工(职工编号,姓名,性别,居住城市)
项目(项目编号,项目名称,状态,城市,负责人编号)
职工项目(职工编号,项目编号)
其中:
(1)一个职工可以同时参与多个项目,一个项目需要多个职工参与。
(2)职工的居住城市与项目所在城市来自同一个域。
(3)每个项目必须有负责人,且负责人为职工关系中的成员。
(4)项目状态有两个:
0表示未完成,1表示已完成。
【问题1】
下面是创建职工关系的SQL语句,职工编号唯一识别一个职工,职工姓名不能为空。
请将空缺部分补充完整。
CREATETABLE职工(
职工编号CHAR(6),
姓名CHAR(8)(a),
性别CHAR
(2),
城市VARCHAR(20),
PRIMARYKEY(b);
【问题2】
下面是创建项目关系的SQL语句。
请实现相关的完整性约束。
CREATETABLE项目(
项目编号CHAR(6),
项目名称VARCHAR(20),
状态CHAR
(1)CHECK(c),
城市VARCHAR(20),
负责人编号CHAR(6)(d),
FOREIGNKEY(e)REFERENCES(f));
【问题3】
请完成下列查询的SQL语句。
(1)查询至少参加两个项目的职工编号和参与的项目数。
SELECT职工编号,(g)
FROM职工项目
GROUPBY(h)
HAVING(i);
(2)查询参与居住城市正在进行的工程项目的职3232号和姓名。
SELECT职工.职工编号,姓名
FROM职工,职工项目,项目
WHERE职工.职工编号=职工项目.职工编号AND项目.项目编号:
职工
项目.项目编号AND(j)AND(k);
【问题4】
假设项目编号为“P001”的项目负责人李强(其用户名为U1)有对参与该项目的职工进行查询的权限。
下面是建立视图emp和进行授权的SQL语句,请将空缺部分补充完整。
(1)CREATEVIEW(l)
ASSELECT职工编号,姓名,性别,城市
FROM职工
WHERE职工编号IN(SELECT(m)
FROM职工项目
WHERE(n))
WITHCHECKOPTION;
(2)GRANT(o)ONempTOU1;
答案
[问题1]
(a)NOTNULL(不区分大小写)
(b)(职工编号)
[问题2]
(c)(状态IN('0','1'))
(d)NOTNULL(不区分人小写)
(e)负责人编号
(f)职工(职工编号)
[问题3]
(1)(g)COUNT(项目编号)
(h)职工编号
(i)COUNT(项目编号)>=2
(2)(j)职工.城市二项目.城市
(k)状态='0'或者项目.状态='0'
说明:
问题(j)与问题(k)的答案可以互换。
[问题4]
(1)
(1)emp或者emp(职工编号,姓名,性别,城市)
(m)职工编号
(n)项目编号='P001'
(2)(o)SELECT
[分析]
[问题1][分析]
本题考核的是关系模型的完整性约束。
完整性约束包括实体完整性、参照完整性和用户定义的完整性三类。
实体完整性约束规定关系的主属性不能取空值,关系模型中以主码作为唯一性标示:
参照完整性约束规定若属性(或属性组)A是关系R上的主码,B是关系S上的外码,A与B相对应(来自相同的域),则B取值为空或者来自于R上的某个A的值。
用户定义的完整性约束是针对具体的数据库应用而定义的,它反映该应用所涉及的数据必须满足用户定义的语义要求。
本题定义了两个完整性约束,职工的姓名不能为空,这是用户定义的完整性,用NOTNULL关键字;职工编号唯一识别一个职工,这是实体完整性约束,用PRIMARYKEY关键字。
[问题2][分析]
本题考核的还是完整性约束。
用户定义项目状态有两个,既0和1分别表示未完成和已完成状态,用CHECK关键字;负责人编号是外码,用关键字FOREIGNKEY…REFERENCES…,并且题中要求每个项目必须有负责人,负责人来自职工关系。
[问题3][分析]
本题考核SQL的查询语句。
其中
(1)考核集合函数、GROUPBY和HAVING语法。
(2)考核多表连接的复合条件查询。
[问题4][分析]
本题考核数据库的视图机制和安全控制功能。
在设计数据库时,可以对不同的用户定义不同的视图实现对机密数据的安全保护功能。
试题三
阅读下列说明,回答问题1至问题3,将解答填入对应栏内。
【说明】
某医院的门诊管理系统实现了为患者提供挂号、处方药品收费的功能。
具体的需求及设计如下。
[需求分析结果]
1.患者首先在门诊挂号处挂号,选择科室和医师,并缴纳挂号费。
收银员为患者生成挂号单(如表3-1所示)。
表3-1XX医院门诊挂号单
收银员:
13011时间:
2007年2月1日08:
58
就诊号
姓名
科室
医师
就诊类型
挂号费
20070205015
叶萌
内科
杨玉明
专家门诊
5元
2.患者在医师处就诊后,凭借挂号单和医师手写处方到门诊药房买药。
收银员根据就诊号和医师处方中开列的药品信息,查询药品库存情况和价格(如表3-2所示),生成与挂号单对应的门诊处方单(如表3-3所示)。
表3-2药品库存
药品编码
药品名称
类型
库存
货架编号
单位
规格
单价
12007
牛蒡子
中药
51590
B1401
G
炒
0.0340
11090
百部
中药
36950
B1523
G
片
0.0313
表3-3XX医院门诊处方单处方单号:
20070201007229时间:
2007年2月1日10:
31
就诊号
20070205015
病人姓名
叶萌
医师姓名
杨玉明
金额总计
0.65
项目总计
2
收银员
21081
药品编码
区品名称
数量
单位
单价
金额(元)
12007
牛蒡子
10
G
0.0340
0.34
11090
百部
10
G
0.0313
0.31
【概念模型设计】
根据需求阶段收集的信息,设计的实体联系图和关系模式(不完整)如下:
【逻辑结构设计】
根据概念模型设计的结果,设计关系模式如下:
挂号单(就诊号,病患姓名,医师编号,时间,
(1))
收银员(编号,姓名,级别)
医师(编号,姓名,科室,职称)
门诊处方(
(2),收银员,时间)
处方明细((3))
药品库存(药品编码,药品名称,(4))
【问题1】
根据问题描述,填写图3-1中(a)~(d)处联系的类型,并补充图3-1中实体间缺少的联系。
【问题2】
根据实体联系图,将第2部分关系模式中的空
(1)~(4)补充完整。
对所有关系模式,用下划线指出各关系模式的主键。
【问题3】
如果考虑处方中不仅包含药品,还包含一些诸如抽血、化验、B超之类的检查项目,也要在门诊进行划价和收费。
根据上述的需求变化新增加的“检查项目”的关系模式,请修改图3-1的实体联系图,画出新增加的关系、联系和联系的类型,新增加的联系取名为“明细1。
答案
[问题1]
(a)1
(b)*(或者n)
(c)*(或者n,或者m)
(d)*(或者n,或者m)
补充后的E-R图:
[问题2]
(1)收银员,挂号费
(2)处方单号,就诊号
(3)处方单号,药品编号,数量
(4)类型,库存,货架编号,单位,规格,单价
各关系模式的主键:
(用下划线指出主键,其余请在上面
(1)~(4)指出)
挂号单就诊号,病患姓名,医师编号,时间,______)
收银员(编号,姓名,科室)
医师(编昱,姓名,科室,级别)
药品库存(药品编码,药品名称,______)
[问题3]
(联系的类型*与n或m等价,虚线框内为答案)
[分析]
[问题1][分析]
本题主要是考数据库的概念结构设计。
根据题目的需求描述和表3-3中的数据可知,一名医生可以开多张门诊处方,一张门诊处方由一名医生开出。
所以对于医生实体与门诊处方实体之间的联系“开处方”,其联系的类型为一对多(1:
n)。
(a)空的答案为1,(b)空的答案为n。
根据题目的需求描述和表3-3中的数据可知,一张门诊处方包含多种库存中的药品,一种库存中的药品也可以在多张门诊处方中。
所以对于门诊处方实体与药品库存实体之间的联系“明细”,其联系的类型为多对多(m:
n)。
(c)空的答案为m,(d)空的答案为n。
同样,根据题目的需求描述和表3-1中的数据可知,病人挂某个医师的号,将挂号的信息记录在挂号单实体中,因此挂号单实体与医师实体之间存在“挂号”联系。
挂号单由收银员进行收费,因此挂号单实体与收银员实体之间存在“收费”联系。
根据题目的需求描述和表3-3中的数据可知,收银员根据挂号单和医师的手写处方生成门诊处方,所以挂号单实体与门诊处方实体之间存在“对应”联系。
[问题2][分析]
本题主要是考数据库的逻辑结构设计。
根据实体联系图和表3-1的数据,对于“挂号单”关系模式,由于挂号单与医师和收银员实体有联系,需记录收银员和所挂号的医师信息,并且挂号单有自己的属性,如挂号费、时间等信息,因此,“挂号单”关系模式需补充属性:
收银员,挂号费。
根据实体联系图和表3-3的数据,“门诊处方”关系模式需要记录处方单号,该属性可作为主键。
此外,由于门诊处方实体与收银员实体和挂号单实体有联系,并且由于对应的医师信息在挂号单中已经确定,所以门诊处方只记录与挂号单的联系即可。
因此,“门诊处方”关系模式需补充属性:
处方单号,就诊号。
其中处方单号作为主键。
根据实体联系图和表3-2、表3-3的数据,由于一张门诊处方中包含多项药品信息,而一种药品也可以属于多张门诊处方,所以通过“处方明细”关系模式来表示这种多对多的联系。
并且由于每种药品的具体信息已经在“药品库存”关系模式中记录,所以,“处方明细’,关系模式主要记录的是门诊处方与药品的对应关系和处方所需药品的具体数量。
因此,“药品库存”关系模式为:
处方单号,药品编号,数量。
其中处方单号和药品编号一起作为主键。
“药品库存”关系模式主要记录药品的详细信息和库存信息,根据实体联系图和表3-2的数据,“药品库存”关系模式需补充属性:
类型,库存,货架编号,单位,规格,单价。
挂号单主键:
就诊号
收银员主键:
编号
医师主键:
编号
门诊处方主键:
处方单号
处方明细主键:
处方单号、药品编码
药品库存主键:
药品编码
[问题3][分析]
本题主要是考数据库的概念结构设计。
根据问题描述,新增加了一种实体“检查项目”,来表示:
抽血、化验、B超之类的检查项目。
这些检查项目可以像药品一样,包含于多张门诊处方中,一张门诊处方也可以包含多种检查项目。
因此,检查项目与门诊处方之间存在多对多联系,检查项目代表了门诊处方的一部分明细,因此可以画出检查项目与门诊处方之间存在(m:
n)的联系“明细1”。
试题四
阅读下列说明,回答问题1和问题2,将解答填入对应栏内。
【说明】
某学校为实现无纸化、网络化的教材管理,拟开发一套教材管理系统。
该系统主要负责统计全校的教学用书的需求信息,以便教材的统一购买。
【需求分析结果】
(1)教学计划
各学院的教学计划是教材需求的来源。
各学院的教学管理人员为本学院的各个专业方向制定教学计划。
教学计划主要是描述每个专业方向不同学期所开设的课程信息。
教学计划的示例如表4-1所示。
表4-1“教学计划”示例
院系名称
专业名称
学期
课程编号
课程名
教材编号
计算机系
软件工程
4
C0101
软件开发
B001
计算机系
软件工程
4
C0103
数据库技术
B003
计算机系
网络通信
5
C0103
数据库技术
B003
电子工程
网络通信
6
C0201
数据库技术
B005
(2)课程信息
课程信息包括课程编号、课程名、教材编号,由课程编号唯一标识。
表4-1中,《数据库技术》课程因其使用的教材不同而分别编号。
(3)专业方向、班级
学校根据学院和专业方向将学生划分班级。
一个学院可有多个专业方向,不同学院可以有相同名字的专业方向。
一个专业方向可有多个班级,班级包含入学年份和人数。
(4)教材信息
教材信息记录教材的基本信息,包括教材编号、教材名称、ISBN号、出版社名称、作者、版本号。
同一种教材版本不同编号也不同,一种教材可以有多个作者。
(5)教材需求
根据各学院的教学计划和对应的班级人数,统计全校各系各专业各班级的教材需求情况。
教材需求量是根据现有的教学计划和班级人数计算得到的。
【逻辑结结构设计】
根据需求阶段收集的信息,设计的关系模式如图4-1所示。
关系模式的主要属性、含义及约束如表4-2所示。
表4-2主要属性、含义及约束
属性
含义和约束条件
班级号
唯一标识每个班级编号
院系号
唯一标识每个院系的名称
专业名称
唯一标识某个院系中某个专业方向的名称
教材编号
唯一标志每个教材的编号
ISBN
教材图书的ISBN号,唯一标识一本图书
根据图4-1关系模式,给出班级、教材的函数依赖(不完整)如卜。
(1)班级关系函数依赖FD1
班级号→{入学年份,人数,院系名称,专业名称}
(2)教材关系函数依赖FD2
教材编号→{教材名称,ISBN,出版社,版本号}(不完整)
【问题1】
根据图4-1的关系模式,回答以下问题:
(1)分析“教材”关系,给出除FD2外其余的函数依赖和多值依赖;
(2)列出“教材”关系的所有候选键;
(3)分析“教材”关系所属范式,并说明原因;
(4)对“教材”关系进行分解,使其达到4NF。
分解后各关系模式分别命名为:
教材1,教材2,……。
【问题2】
分析以上各关系模式,请回答以下问题:
(1)“教学计划”关系是否存在冗余?
请简要说明。
(2)根据现有关系模式,能否获得学校每学期的各种教材的需求总量?
请简要说明。
(3)考虑到任选课只有部分学生选修,需要增加或修改哪些关系模式,请给出修改结果并简要说明。
答案
[问题1]
(1)ISBN→{教材名称,教材编号,出版社,版本号}
由于一本书可以有多个作者,所以作者存在多值依赖
教材编号→→作者
ISBN→→作者
(2)教材编号和ISBN
(3)BCNF
没有主属性对码的部分依赖和传递函数依赖:
非主属性完全依赖于码;没有任何属性完全函数依赖于非码的任何一组属性
(4)教材1(教材编号,ISBN,教材名称,出版社,版本号)
教材2(教材编号,作者)或者教材2(ISBN,作者)
[问题2]
(1)“教学计划”关系存在冗余。
课程关系中已经记录了每个不同课程的课程名和教材编号,没有必要再在教学计划中记录课程名和教材编号。
(2)可以。
根据教学计划中的学期,求出每学期各院系的不同专业即将要开设的课程有哪些,从课程关系中找出课程需要购买的教材种类;同时根据院系和专业信息从班级关系中,求出课程所涉及的班级的人数。
将每种教材乘以对应班级的人数,就得到了不同种类教材的需要数量。
(3)修改课程关系,增加“选修必修”属性,用来说明该门课程是必修课还是任选课,如下所示。
课程(课程编号,课程名,教材编号,选修必修)
增加关系模式:
选修情况关系(班级号,选修课程号,选修人数)。
统计教材需求信息时,需要对课程的“选修必修”属性值进行判断。
如果是任选课,则需要从新增的关系模式“选修情况”中获取选修人数,进而得出选修课教材的需求量;如果是必修课程,则仍从班级关系中获得班级人数,进而得出必修课教材的需求量。
最后加以统计。
[分析]
[问题1][分析]
本题主要是考数据库理论的规范化。
(1)对于“教材”关系模式,教材的信息除了完全函数依赖于教材编号,也完全函数依赖于ISBN号。
所以补充函数依赖:
ISBN→{教材名称,教材编号,出版社,版本号)。
此外,根据题目中对教材信息的描述,一种教材可以有多个作者,所以对于“教材”关系模式中的作者属性,存在多值依赖。
教材编号→→作者
ISBN→→作者
(2)如果属性组Y完全函数依赖于候选键。
根据FD2和问题1中补充的函数依赖可知,“教材”关系模式的候选键为:
教材编号和ISBN。
(3)由于对于“教材”关系模式来说,没有主属性对码的部分依赖和传递函数依赖;非主属性完全依赖于码;没有任何属性完全函数依赖于非码的任何一组属性,满足BCNF范式的要求。
所以,“教材”关系模式属于BCNF范式。
(4)由于“教材”关系模式存在多值依赖,所以,不满足4NF的要求。
可以针对“作者”属性进行分解,从“教材”关系模式中去掉作者属性得出关系模式“教材1”,并将作者属性及对应的教材主键放在新的关系模式“教材2”中,得出:
教材1(教材编号,ISBN,教材名称,出版社,版本号)
教材2(教材编号,作者)或者教材2(1SBN,作者)
[问题2][分析]
本题主要是考数据库的逻辑结构设计。
(1)教学计划主要是描述每个专业方向不同学期所开设的课程信息。
根据图4-1,“课程”关系模式中已经记录了课程的信息,在教学计划中记录每条教学计划与课程的关系即可。
因此,“教学计划”关系模式存在冗余。
课程关系中已经记录了每个不同课程的课程名和教材编号,没有必要再在教学计划中记录课程名和教材编号。
(2)根据题目中的描述,教材需求量是根据现有的教学计划和班级人数计算得到的。
“教学计划”关系模式中,存放着每学期不同专业班级所应开设的课程。
根据教学计划确定每学期需开设的课程总数,进而确定所需的教材种类;再根据不同学期每门课程对应多少个班级,确定每种教材对应的班级总数,再分别乘以班级人数,得到不同学期的每种教材的需求量。
(3)根据问题要求可知,课程分为必修和选修课程。
必修是教学计划中对应班级的每个同学都必须学习的,选修是教学计划中对应班级的一部分同学任选的。
所以修改
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中级 数据库 系统 工程师 上半年 下午 试题答案 详细 解析