列表

详情


阅读下列说明和图,回答问题1至问题3。
【说明】
某会议策划公司为了方便客户,便于开展和管理各项业务活动,需要构建一个基于网络的会议预定系统。
【需求分析】
1.会议策划公司设有受理部、策划部和其他部门。部门信息包括部门号、部门名称、部门主管、电话和邮箱号。每个部门有多名员工处理部门的日常事务,每名员工只能在一个部门工作。每个部门有一名主管负责管理本部门的事务和人员。
2.员工信息包括员工号、姓名、部门号、职位、联系方式和工资;其中,职位包括主管、业务员、策划员等。业务员负责受理会议申请。若申请符合公司规定,则置受理标志并填写业务员的员工号。策划部主管为已受理的会议申请制定策划任务,包括策划内容、参与人数、要求完成时间等。一个已受理的会议申请对应一个策划任务,一个策划任务只对应一个已受理的会议申请,但—个策划任务可由多名策划员参与执行,且一名策划员可以参与多项策划任务。
3.客户信息包括客户号、单位名称、通信地址、所属省份、联系人、联系电话、银行账号。其中,一个客户号唯一标识一个客户。一个客户可以提交多个会议申请,但一个会议申请对应唯一的一个客户号。
4.会议申请信息包括申请号、开会日期、会议地点、持续天数、会议人数、预算费用、会议类型、酒店要求、会议室要求、客房类型、客房数、联系人、联系方式、受理标志和业务员的员工号等。客房类型有豪华套房、普通套房、标准间、三人间等,且申请号和客房类型决定客房数。
【概念模型设计】
根据需求阶段收集的信息,设计的实体联系图和关系模式(不完整)如下:

【关系模式设计】
 部门(部门号,部门名称,主管,电话,邮箱号)
 员工(员工号,姓名, (a) ,联系方式,工资)
 客户(客户号,单位名称,通信地址,所属省份,联系人,联系电话,银行账号)
 会议申请( (b) ,开会日期,会议地点,持续天数,会议人数,预算费用,会议类型,酒店要求,会议室要求,客房数,联系人,联系方式,受理标志,员工号)
 策划任务( (c) ,策划内容,参与人数,要求完成时间)
 执行策划( (d) ,实际完成时间)
 

 【问题1】(5分)
   根据问题描述,补充五个联系、联系的类型,完善图2-1的实体联系图。
 【问题2】(7分)
   根据实体联系图,将关系模式中的空(a)~(d)补充完整(1个空缺处可能有多个数据项)。对会议申请、策划任务和执行策划关系模式,用下划线和#分别指出各关系模式的主键和外键。
 【问题3】(3分)
  请说明关系模式“会议申请”存在的问题及解决方案。

 

参考答案:


【问题2】
  (a)部门号,职位
  (b)申请号,客房类型,客户号
  (c)申请号,员工号
  (d)申请号,员工号
   关系模式为:
会议申请(申请号客房类型,客户号#,开会日期,会议地点,持续天数,会议人数,预算费用,会议类型,酒店要求,会议室要求,客房数,联系人,联系方式,受理标志,员工号#)
策划任务(申请号#,员工号#,策划内容,参与人数,要求完成时间)
执行策划(申请号#员工号#,实际完成时间)
  【问题3】
   会议申请存在数据冗余及数据修改的不一致性问题,应该将关系模式分解为如下两个模式:
   会议申请1(申请号,客户号,开会日期,会议地点,持续天数,会议人数,预算费用,会议类型,酒店要求,会议室要求,联系人,联系方式,受理标志,员工号)
   会议申请2(申请号,客房类型,客房数)。
 

详细解析:

本题考查数据库相关知识,涉及的知识点包括:ER模型、关系模式、主键、范式。
  【问题1】
    问题1考查考生对ER模型的理解。
本题主要考查根据题目描述补充完整ER图。
   在解答本问题时,需要注意将题目描述与已给出的图进行对照分析。在题目中有“业务员负责受理会议申请。”,这说明业务员与会议申请之间有联系,联系的名称可直接取题目中的“受理”一词。同时,由于题目中有“若申请符合公司规定,则置受理标志并填写业务员的员工号”,这说明一个申请只由一个员工受理,但一个员工却可以受理多项业务,也就是说业务员与会议申请之间是1:n的关系。与此同时,通过常识加题目描述,可以意识到一个问题:对于会议申请只表明了受理人员,而谁来提出申请,并未直接说明。纵观系统全局,可以看出会议是由客户申请的。所以客户也与会议申请有联系,这种联系类型也是1:n。
   从“一个已受理的会议申请对应一个策划任务,一个策划任务只对应一个已受理的会议申请,但—个策划任务可由多名策划员参与执行,且—名策划员可以参与多项策划任务。”可以得知,策划任务与策划员之间存在“执行”的联系,而且这种联系是n:m的。
   从“每个部门有多名员工处理部门的日常事务,每名员工只能在一个部门工作。”可以看出,部门与员工之间存在联系,联系类型是1:n。从“每个部门有一名主管负责管理本部门的事务和人员。”可以看出,主管这个角色与部门之间存在联系,由于每个部门只有1名主管,而1名主管也只能负责1个部门的工作,所以他们之间的联系是1:1的。
  【问题2】
    当完成问题1的分析之后,问题2就很好解决了。其解题步骤的第一个环节,应是看题目已经给出的信息。例如,第(a)空要求补充员工关系,而题目中已经说明“员工信息包括员工号、姓名、部门号、职位、联系方式和工资”,此时,只要把缺失的“部门号,职位”填入即可。但有时,这一招并不能完全解决问题,例如第(b)空,从题目的描述“会议申请信息包括申请号、开会日期、会议地点、持续天数、会议人数、预算费用、会议类型、酒店要求、会议室要求、客房类型、客房数、联系人、联系方式、受理标志和业务员的员工号等。”可以得知,关系模式缺了申请号与客房类型,但补充这些是否足矣?不行,还缺了属性,即客户号,因为问题1中,已经分析了系统业务逻辑,应是由客户提出申请,所以需要记录客户号。
    接下来分析会议申请的主键与外键。在会议申请这个关系模式中,由于存在“客房类型有豪华套房、普通套房、标准间、三人间等,且申请号和客房类型决定客房数。”的情况,所以有函数依赖:(申请号,客户类型)->客户数。同时其它所有属性都依赖于(申请号,客户类型)。所以(申请号,客户类型)是本关系模式的主键。而会议申请中的客户号是相对于客户关系的外键,员工号是相对于员工关系的外键。
   (c)与(d)的内容补充,也需要进行分析才能得出结论,正是由于从题目中有“个已受理的会议申请对应一个策划任务,一个策划任务只对应一个已受理的会议申请,但—个策划任务可由多名策划员参与执行,且—名策划员可以参与多项策划任务。”,这说明“策划任务”与“执行策划”都与会议申请有关,所以这两个关系中,也需要有申请号。
   在策划任务关系模式中申请号能确定员工号(因为策划部主管为已受理的会议申请制定策划任务,所以有确定的关系),也能确定策划内容,参与人数,要求完成时间。所以申请号是主键。同时,由于申请号与员工号在其它关系中充当主键,所以他们也是外键。
   在执行策划关系中,由于“—个策划任务可由多名策划员参与执行,且一名策划员可以参与多项策划任务”,所以必须要(申请号,员工号)这个组合属性才能充当主键。同时这两个属性也是外键。
   【问题3】
   问题3要求分析关系模式“会议申请”存在的问题及解决方案。分析关系模式的问题,往往需要从关系模式的规范程度入手,规范程度不高的模式,可能出现:插入异常、修改异常、删除异常、数据冗余等问题。
   在问题2的分析中,已经提到了会议申请关系的主键是:(申请号,客户类型)。但同时存在:申请号->开会日期、申请号->会议地点依赖关系,这就导致了部分依赖的产生。这使得数据冗余、修改异常等问题产生。解决的办法就是拆分。把:(申请号,客户类型,客户数)拆分为一个新表,而另一个表中去除客户类型与客户数,将申请号定义为主键

上一题