2016 上半年数据库系统工程师考试真题及答案-下午卷
试题一
阅读下列说明和图,回答问题 1 至问题 4,将解答填入答题纸的对应栏内。
【说明】
某会议中心提供举办会议的场地设施和各种设备,供公司与各类组织机构租用。场地包
括一个大型报告厅、一个小型报告厅以及诸多会议室。这些报告厅和会议室可提供的设备有
投影仪、白板、视频播放/回放设备、计算机等。为了加强管理,该中心欲开发一会议预订
系统,系统的主要功能如下。
(1)检查可用性。客户提交预订请求后,检查预订表,判定所申请的场地是否在申请
日期内可用;如果不可用,返回不可用信息。
(2)临时预订。会议中心管理员收到客户预定请求的通知之后,提交确认。系统生成
新临时预订存入预订表,并对新客户创建一条客户信息记录加以保存。根据客户记录给客户
发送临时预订确认信息和支付定金要求。
(3)分配设施与设备。根据临时预订或变更预定的设备和设施需求,分配所需设备(均
能满足用户要求)和设施,更新相应的表和预订表。
(4)确认预订。管理员收到客户支付定金的通知后,检查确认,更新预订表,根据客
户记录给客户发送预订确认信息。
(5)变更预订。客户还可以在支付余款前提交变更预订请求,对变更的预订请求检查
可用性,如果可用,分配设施和设各;如果不可用,返回不可用信息。管理员确认变更后,
根据客户记录给客户发送确认信息。
(6)要求付款。管理员从预订表中查询距预订的会议时间两周内的预定,根据客户记
录给满足条件的客户发送支付余款要求。
(7)支付余款。管理员收到客户余款支付的通知后,检查确认,更新预订表中的已支
付余款信息。
现采用结构化方法对会议预定系统进行分析与设计,获得如图 1-1 所示的上下文数据流
图和图 1-2 所示的 0 层数据流图(不完整)。
【问题 1】
使用说明中的词语,给出图 1-1 中的实体 E1~E2 的名称。
E1:客户
E2:管理员
本题考查采用结构化方法进行系统分析与设计,主要考查数据流图(DFD)的应用,是比较
传统的题目,考点与往年类似,要求考生细心分析题目中所描述的内容。
面向数据流建模是目前仍然被广泛使用的结构化分析与设计的方法之一,而 DFD 是面向数据
流建模的重要工具,是一种便于用户理解、分析系统数据流程的图形化建模工具,是系统逻
辑模型的重要组成部分。DFD 将系统建模成“输入——加工(处理)——输出”的模型,即
流入软件的数据对象、经由加工的转换、最后以结果数据对象的形式流出软件,并采用分层
的方式加以表示。
上下文 DFD(顶层 DFD)通常用来确定系统边界,将待开发系统看作一个大的加工(处理),
然后根据系统从哪些外部实体接收数据流,以及系统将数据流发送到哪些外部实体,建模出
的上下文图中只有唯一的一个加工和一些外部实体,以及这两者之间的输入输出数据流。0
层 DFD 在上下文确定的系统外部实体以及与外部实体的输入输出数据流的基础上,将上下文
DFD 中的加工分解成多个加工,识别这些加工的输入输出数据流,使得所有上下文 DFD 中的
输入数据流,经过这些加工之后变换成上下文 DFD 的输出数据流。根据 0 层 DFD 中加工的复
杂程度进一步建模加工的内容。
在建分层 DFD 时,根据需求情况可以将数据存储建模在不同层次的 DFD 注意要在绘制下层数
据流图时要保持父图与子图平衡。父图中某加工的输入输出数琚流必须与它的子图的输入输
出数据流在数量和名字上相同,或者父图中的一个输入(或输出)数据流对应于子图中几个
输入(或输出)数据流,而子图中组成这些数据流的数据项全体正好是父图中的这一条数据
流。
本题考查上下文 DFD,要求确定外部实体。在上下文 DFD 中,系统名称作为唯一加工的名称,
外部实体和该唯一加工之间有输入输出数据流。通过考查系统的主要功能,不难发现,系统
中涉及到客户和会议中心管理员,没有提到其他与系统交互的外部实体。根据描述(1)“客
户提交预订请求后”,(2)“会议中心管理员收到客户预定请求的通知之后,提交确认”、“根
据客户记录给客户发送临时预订确认信息和支付定金要求”等信息,对照图 1-1,从而即可
确定 E1 为“客户”实体,E2 为“管理员”实体。
【问题 2】
使用说明中的词语,给出图 1-2 中的数据存储 D1~D4 的名称。
D1:预定表;
D2:客户表;
D3:场地表 (设施表或场地设施表);
D4:设备表。
注:D3 和 D4 可互换。
本题要求确定图 1-2 所示的 0 层数据流图中的数据存储。重点分析说明中与数据存储有关的
描述。根据(1)“客户提交预订请求后,检查预订表”,(2)“系统中成新临时预订存入预订
表,并对新客户创建一条客户信息记录加以保存”,可知 D1 为预订表、D2 为客户表;根据
“会议中心提供举办会议的场地设施和各种设备”,(3)“根据临时预订或变更预定的设备和
设施需求,分配所需设备(均能满足用户要求)和设施,更新相应的表和预订表”,“分配设
施和设备”可知 D3 为和 D4 分别为场地(设施)表和设备表。
【问题 3】
根据说明和图中术语,补充图 1-2 之中缺失的数据流及其起点和终点。
注:上述 6 条数据流无顺序要求。
本问题要求补充缺失的数据流及其起点和终点。
对照图 1-1 和图 1-2 的输入、输出数据流,数量不同,考查图 1-1 中从加工“会议预订系统”
输出至 E1 的数据流,有“临时预订/预订/变更确认信息”,而图 1-2 中从加工输出至 E1 的
数据流“临时预订确认信息”和“变更预订确认信息”,但缺少了其中一条数据流“预订确
认信息”。
另外,图 1-1 中有“付款凭据”,图 1-2 中没有“付款凭据”,而只有“已支付定金凭据”,
没有针对说明(7)中“管理员收到客户余款支付的通知后”中的“支付余款凭据”。上述两
条数据流的遗失,使父图和子图数据流没有达到平衡。所以需要确定这两条条数据流或者其
分解的数据流的起点或终点。
考查说明中的功能,先考查“确认预定”,功能(4)中“给客户发送预订确认信息”,对照
图 1-2,加工 4 没有到实体 E1 客户的“预订确认信息”数据流;功能(7)中“管理员收到
客户余款支付的通知后”,对照图 1-2,加工 7 没有从实体 E1 客户输入的数据流“余款支付
凭据”。图中“余款支付凭据”数据流是上下文数据流图中数据流“支付凭据”的分解,与
另一条分解出的数据流“已支付定金凭据”对照,改名为“己支付余款凭据”。
下面再仔细核对说明和图 1-2 之间是否还有遗失的数据流。
不难发现,功能(4)中“根据客户记录给客户发送预订确认信息”,而图 1-2 中加工 4 从
D1 预订表中读取预订信息,并没有读取客户信息,所以,此处遗失了数据流“客户记录”,
起点是 D2 客户表,终点是加工 4 确认预订;功能(5)中“管理员确认变更后,根据客户记
录给客户发送确认信息”,而图 1-2 中加工 5 并没有所根据的“客户记录”输入数据流,所
以,此处遗失了数据流“客户记录”,起点是 D2 客户表,终点是加工 5 变更预订;功能(6)
中“根据客户记录给满足条件的客户发送支付余款要求”,而图 1-2 中加工 6 并没有所根据
的“客户记录”输入数据流,所以,此处遗失了数据流“客户记录”,起点是 D2 客户表,终
点是加工 6 要求预订。
继续核对说明和图 1-2,不难发现,功能(6)中“管理员从预订表中查询距预订的会议时
间两周内的预定”,而图 1-2 中没有从 D1 预订表到加工 6 的输入流,所以,此处遗失了数据
流“距预订会议时间两周内的预订”,其起点是 D1 预订表,终点是加工 6 要求付款。
【问题 4】
如果发送给客户的确认信息是通过 Email 系统向客户信息中的电子邮件地址进行发送
的,那么需要对图 1-1 和 1-2 进行哪些修改?用 150 字以内文字加以说明。
将 Email 系统作为外部实体,并将发送给客户(E1)的确认信息数据流的终点全部改为 Email
系统(或具体说明确认信息数据流:临时预订确认信息、预订确认信息、变更确认信息,终
点均改为 Email 系统)。
DFD 中,外部实体可以是用户,也可以是与本系统交互的其他系统。如果某功能交互的是外
部系统(在本题中是 Email 系统),则本系统需要将发送给客户的确认息发送给 Email 系统。
然后由第三方 Email 系统向客户发送邮件,此时第三方 Email 系统即为外部实体,而非本系
统内部加工,因此需要对图 1-1 和图 1-2 进行修改,添加外部实体“Email 系统”,并将数
据流确认信息的终点全部改为 Email 系统。即将数据流“临时预订确认信息”、“预订确认信
息”、“变更确认信息”数据流的终点改为新的外部实体“Email 系统”。
试题二
阅读下列说明,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。
【说明】
某单位公用车辆后勤服务部门数据库的部分关系模式如下:
驾驶员:EMP(Eno,Ename,Age,Sex,telephone),各属性分别表示驾驶员工号、姓名、
年龄、性别和电话号码;
车辆:CAR(Cno,Brand,Capacity),各属性分别表示汽车车牌号、品牌名和排量;
调度:SCHEDULE(Sno,Eno,Cno,StartTime,Endtime),各属性分别表示调度号、驾驶员工号、
汽车车牌号、发车时间和收车时间;
奖金:BONUS(Eno,Year,Month,Amount),各属性分别表示驾驶员工号、年、月和当月
的奖金数量。
有关车辆调度的相关说明如下:
公车的行驶时间只能在工作时间内,因此规定调度表中每天安排发车的时间在上午 07:
00:00 至下午 18:00:00 范围内。
【问题 1】
请将下面创建调度关系的 SQL 语句的空缺部分补充完整,要求指定关系的主码、外码,
以及调度表中每天安排发车的时间在上午 07:00:00 至下午 18:00:00 范围内的约束(由函数
Time Get_time(DATETIME StartTime)返回出车的时间)。
(a)REFERENCES EMP(Eno)
(b)REFERENCES CAR(Cno)
(c)CHECK(Get_time(StartTime)BETWEEN'07:00:00',AND'18:00:00')
(d)Sno
本题考查 SQL 语句的基本语法与结构知识。
此类题目要求考生掌握 SQL 语句的基本语法和结构,认真阅读题目给出的关系模式,针对题
目的要求具体分析并解答。本试题已经给出了 4 个关系模式,需要分析每个实体的属性特征
及实体之间的联系,补充完整 SQL 语句。
由题目说明可知 Sno 属性是 SCHEDULE 关系表的主键,所以在 PRIMARYKEY 后填的应该是 Sno;
Eno 和 Cno 分别作为外键引用到 EMP 和 CAR 关系表的主键,因此需要用 REFERENCES 对这两
个属性进行外键约束;由“每天安排发车的时间在上午 07:00:00 至下午 18:00:00 范围
内”的约束,可知需要限制 StartTime 属性值的取值范围,通过 CHECK 约束来实现。从上分
析可见,完整的 SQL 语句如下:
【问题 2】
(1)创建所有'奥迪'品牌汽车的调度信息的视图 AudiSCHEDULE,属性有 Eno、Ename、
Cno、Brand、StartTime 和 EndTime,请将下面 SQL 语句的空缺部分补充完整。
(2)驾驶员的奖金在收车时间写入时,由出车时间段自动计算,并用触发器来实现奖
金的自动维护,函数 float Bonus_value(DATETIME StartTime, DATETIME EndTime)依据发
车时间和收车时间来计算本次出车的奖金。系统在每月初自动增加一条该员工的当月奖金记
录,初始金额为零。请将下面 SQL 语句的空缺部分补充完整。
(1)(e)View AduiSCHEDULE(Eno,Ename,Cno,Brand,StartTime,EndTime)