某宾馆拟开发一个宾馆客房预订子系统,主要是针对客房的预订和入住等情况进行管理。 【需求分析结果】 (1)员工信息主要包括员工号、姓名、出生年月、性别、部门、岗位、住址、联系电话和密码等信息。岗位有管理和服务两种。岗位为“管理”的员工可以更改(添加、删除和修改员工表中的本部门员工的岗位和密码,要求将每一次更改前的信息保留;岗位为“服务”的员工只能修改员工表中本人的密码,且负责多个客房的清理等工作。 (2)部门信息主要包括部门号、部门名称、部门负责人、电话等信息;一个员工只能属于一个部门,一个部门只有一位负责人。 (3)客房信息包括客房号、类型、价格、状态等信息。其中类型是指单人间、三人间、普通标准间、豪华标准间等;状态是指空闲、入住和维修。 (4)客户信息包括身份证号、姓名、性别、单位和联系电话。 (5)客房预订情况包括客房号、预订日期、预订入住日期、预订入住天数、身份证号等信息。一条预订信息必须且仅对应一位客户,但一位客户可以有多条预订信息。 【概念模型设计】 根据需求阶段收集的信息,设计的实体联系图(不完整)如图13-3所示。
问答题 根据问题描述,填写图13-3中的(1)~(3)处联系的类型。联系类型分为一对一、一对多、多对多。
【正确答案】正确答案:(1)n或m或*。 (2)n或m或*。 (3)n或m或*。
【答案解析】解析:(1)按常规来说,一个员工只能属于一个部门,一个部门只有一个负责人,所以部门与员工之间的关系是一对多的关系,所以(1)应该填写n。 (2)由于一条预订信息必须仅对应一个客户,但一个客户可以有多条预订信息,所以客户与预订信息之间是一对多的关系。需要注意:题目要求的是客户与客房之间的预订信息,一位客户可以预订多个客房,而一个客房在不同的时间也可以被多个客户预订,所以客户与客房的预订关系是多对多的。故(2)和(3)都应填写n。
问答题 补充图13-3中的联系并指明其联系类型。
【正确答案】正确答案:员工到权限的联系,联系类型m:1。
【答案解析】解析:由图可知需要增加的是员工与权限的关系,因为“管理员”和“服务员”都属于“员工”。一类员工(如服务员A,服务员B,…,服务员N)使用同一权限,所以员工与权限之间是多对一的关系。
问答题 根据需求分析结果和图13-3所示,将逻辑结构设计阶段生成的关系模式中的空(4)~(8)补充完整(注:一个空可能需要填多个属性)。
【正确答案】正确答案:(4)员工号,部门号。 (5)客房号。 (6)身份证号。 (7)岗位。 (8)客房号,身份证号。
【答案解析】解析:(1)由需求分析结果第(1)条可知,员工信息主要包括员工号、姓名、出生年月、性别、部门、岗位、住址、联系电话和密码等信息。即员工信息包括员工本身的信息和他所在的部门信息,员工本身最具代表性的信息就是员工号,而部门在该系统中是一个关系,所以在此处要记录部门的相关信息,只需记录部门号即可,其余的相关信息可以通过部门号查询来获得。 (2)由需求分析结果第(3)条可知,客房信息包括客房号、类型、价格、状态等信息。显然(5)空应填写“客房号”。 (3)由需求分析结果第(4)条可知,客户信息包括身份证号、姓名、性别、单位和联系电话。显然(6)空应填写“身份证号”。 (4)岗位有管理和服务两种,岗位为“管理”的员工可以更改(添加、删除和修改)员工表中的本部门员工的岗位和密码,要求将每一次更改前的信息保留。所以“更改权限”这个关系模式是指岗位为“管理”的员工可以更改员工表中本部门员工的岗位和密码。“更改前的信息”包括该员工所涉及的全部信息。该关系中已经记录了“员工号”,从员工号可查询获得该员工的所有个人信息和部门信息,同时记录了员工的密码及本次修改的时间、操作和管理员。仔细观察不难发现,该关系中唯一缺少的是岗位的信息,而本系统的设计是由岗位确定该员工的权限的,因此第(7)空应填写:岗位。 (5)由需求分析结果第(5)条可知,客房预订情况包括客房号、预订日期、预订入住日期、预订入住天数、身份证号等信息。显然第(8)空应填写“客房号、身份证号”。
问答题 若去掉权限表,并将权限表中的操作权限属性放在员工表中(仍保持管理和服务岗位的操作权限规定),则与原有设计相比有什么优缺点(请从数据库设计的角度进行说明)?
【正确答案】正确答案:优点:如果合为一个表,可以只查一次表就能得出岗位和操作权限信息,加快了查找速度。 缺点:如果合为一个表,则岗位、操作权限将多次重复出现,会产生冗余数据和增加数据库存储量。
【答案解析】解析:本题考查数据库设计。涉及的考点有概念模型设计(E-R图的补充)和逻辑模型设计。下面具体分析试题。 本题考查考生对数据库规范化的理解。 去掉权限表后的缺点:去掉权限表后,权限字段就得添加到员工表中,员工表中有很多员工记录,而同一类员工的权限都相同,权限数据却要多次重复存储,显然有大量的数据冗余。同时,此时若要对权限字段进行更新,很有可能产生更新异常,若某一岗位的员工全部离职,将导致权限数据的丢失(删除异常)。 去掉权限表的优点:获取某一员工权限数据时,不必再将员工表与权限表进行连接查询,可以提高存储速度。