问答题 [说明]
某宾馆拟开发一个宾馆客房预订子系统,主要是针对客房的预订和入住等情况进行管理。
[需求分析]
(1) 员工信息主要包括:员工号、姓名、出生年月、性别、部门、岗位、住址、联系电话和密码等信息。岗位有管理和服务两种。岗位为“管理”的员工可以更改(添加、删除和修改)员工表中本部门员工的岗位和密码,要求将每一次更改前的信息保留;岗位为“服务”的员工只能修改员工表中本人的密码,且负责多个客房的清理等工作。
(2) 部门信息主要包括:部门号、部门名称、部门负责人和电话等信息。一个员工只能属于一个部门,一个部门只有一位负责人。
(3) 客房信息包括:客房号、类型、价格和状态等信息。其中类型是指单人间、三人间、普通标准间和豪华标准间等,状态是指空闲、入住和维修。
(4) 客户信息包括:身份证号、姓名、性别、单位和联系电话。
(5) 客房预定情况包括:客房号、预定日期、预定入住日期、预定入住天数和身份证号等信息。一条预定信息必须且仅对应一位客户,但一位客户可以有多条预定信息。
[概念模型设计]
根据需求阶段收集的信息,设计的实体联系图(不完整)如图8-3所示。
【正确答案】(1)n,或m,或*
(2) n,或m,或*
(3) n,或m,或*
【答案解析】[解析]
由题干中的关键信息“一个员工只能属于一个部门”,结合图8-3中已标识的信息及常识“一个部门通常包含多名员工”可知,实体部门和员工之间存在一个“一对多”的联系(名称为“所属”),即图8-3中(1)空缺处所填补的内容是n(或*)。
由题干中的关键信息“……一条预定信息必须且仅对应一位客户,但一位客户可以有多条预定信息”可知,一位客户可以预定多间客房,即此时实体客户和客房之间存在一个“一对多”的联系(名称为“预定”)。又由题干中的关键信息“客房类型是指单人间、三人间、普通标准间和豪华标准间等”可知,对于类型为“三人间”的客房可以入住3名客人,类型为“普通标准间”的客房可以入住两名客人,此时实体客户和客房之间存在一个“多对一”的联系。综合以上分析可知,图8-3中实体客户和客房之间存在“多对多”的联系,即图8-3中的(2)和(3)空缺处所填补的内容分别是m(或*)和,n(或*)。
【正确答案】需要增加员工到权限之间的n:1(或m:1,或*:1)联系
或者
【答案解析】[解析]
由题干中的关键信息“岗位为‘管理’的员工可以更改(添加、删除和修改)员工表中的本部门员工的岗位和密码……岗位为‘服务’的员工只能修改员工表中本人的密码……”,逻辑结构设计阶段的关系模式“权限(岗位,操作权限)”,以及图8-3中已标识的实体“权限”信息可知,实体员工和权限之间存在一个联系,而对“权限”的操作有添加、删除和修改等多种类型。又由题干中的关键信息“一个部门只有一位负责人”及常识可知,部门负责人通常就是岗位为“管理”的员工。由于同一种权限(如“修改”)可以赋予不同岗位类型的员工(即管理员和服务员),而同一岗位类型的员工只能拥有相同的操作权限(如服务员只能拥有修改本人密码的权限),因此实体员工和权限之间存在的是“多对一(或n:1,或m:1,或*:1)”的联系(名称为“更改权限”,可由逻辑结构设计阶段的关系模式“更改权限(员工号, (7) ,密码,更改日期,更改时间,管理员号)”得知)。
【正确答案】(4)员工号,部门号
(5) 客房号
(6) 身份证号
(7) 岗位
(8) 客房号,身份证号
【答案解析】[解析]
主键也称为主码,是关系中的一个或一组属性,其值能唯一标识一个元组。
对于逻辑结构设计阶段已给出关系模式:部门(部门号,部门名称,部门负责人,电话),由常识可知,该模式的主键应该为“部门号”。由题干中的关键信息“员工信息主要包括:员工号、姓名、出生年月、性别、部门、岗位、住址、联系电话和密码等信息”及常识可知,关系模式“员工”的主键为“员工号”。结合[问题1]的分析结果,实体部门和员工之间存在一个“一对多”的联系。对于类型为“一对多”的联系向关系模式转换时,通常将其与多端的实体对应的关系模式合并,即将一端实体的主键和联系上的属性合并到多端实体的关系模式中。因此应在关系模式“员工”中添加“部门号”这一外键,即(4)空缺处所需填补的内容是“员工号,部门号”。
由题干中的关键信息“客房信息包括:客房号、类型、价格和状态等信息”和“客户信息包括:身份证号、姓名、性别、单位和联系电话”可知,逻辑结构设计阶段的关系模式为“客房”、“客户”和“预定情况”,结合[问题1]的分析结果——实体客户和客房之间存在“多对多”的联系,且由于多对多联系向关系模式转换时只能转换成一个独立的关系模式,关系模式的名称取联系的名称,关系模式的属性取该联系所关联的两个多方实体的主键及联系的属性,关系的主键是多方实体的主键构成的属性组。因此(5)空缺处只需填补标识关系模式“客房”主键的“客房号”,(6)空缺处只需填补标识关系模式“客户”主键的“身份证号”,(8)空缺处需要填补标识关系模式“预定情况”主键的“客房号”和“身份证号”。
结合[问题2]的分析结果——实体员工和权限之间存在的是“多对一”的联系,根据E-R模型中一对多联系向关系模式转换规则可知,一个一对多的联系可以转换为一个独立的关系模式,也可以与多端的关系模式合并,本试题中是将实体员工和权限之间的联系转换为一个独立的关系模式“更改权限”。由题干中的关键信息“岗位为‘管理’的员工可以更改(添加、删除和修改)员工表中的本部门员工的岗位和密码,要求将每一次更改前的信息保留”可知,(7)空缺处所需填补的内容是“岗位”。
综上所述,逻辑结构设计阶段设计的关系模式如下。
[*]
其中,键名底部以双下画线标识的是主键,键名底部以波浪线标识的是外键。
【正确答案】若将权限表中的操作权限属性放在员工表中,则相同岗位的操作权限在员工表中重复存储
存在数据冗余
【答案解析】[解析]
若去掉权限表,并将权限表中的操作权限属性放在员工表中,且保持管理和服务岗位的操作权限规定,则相同岗位的操作权限在员工表中重复存储,产生冗余数据,增加数据库存储量,以及增加今后对其进行各种关系运算的处理时间。