文档介绍:客房预订系统
设计要求:概念设计逻辑设计
要求:关系模式满足第三范式
一、需求分析(流程图)
文字描述:
顾客可以用电话或上网注册的方式预定。其方式不同,但提交的内容是相同的:需要的房间类型,房间数,客人人数,预定时间,退房时间等。
服务台查询客房管理部,看看是否有满足客人要求的客房。如果有,则记录下客人的需要,同时客房管理部通知财务部准备收预约金,同时反馈给客人确认信息。
如果客人要求的客房无法提供,则通知顾客无法满足
二、概念设计
实体:顾客,服务台,客房,客房管理部,财务部
局部视图:
1、顾客-预定-服务台
事务规则:一个服务台可以为多个顾客服务
一个顾客在一个服务台进行预订活动
2、服务台-查询-客房管理部
事务规则: 一个客房管理部可以为多个服务台服务
每个服务台最终只和一个客房管理部联系
3、客房管理部-管理-客房
事务规则:1个客房管理部管理多个客房
一个客房由一个客房管理部管理
4、客房管理部-财务收入-财务部
事务规则:一个酒店或旅馆只会有一个客房管理部和财务部(1:1)
视图集成
局部视图集成会发生冲突,主要是同名异义、同义异名的问题
同名异义:如“服务台—联系电话;顾客—联系电话”
同义异名:如“顾客—身份证号;财务部—顾客身份证号”
视图集成
预集成
集成
局部视图集成
实体类集成
联系类集成
新老视图集成
揭示同名异义、同义异名问题
定义数据对象的值域
说明等价对象类之间的映射
三、逻辑设计
将E-R图转化为关系模式(不是最终的)
顾客(姓名,性别,身份证号,联系电话,家庭住址,客房种类,房间数,订房日期,退房日期,服务台台号,当值服务员工号) 3NF
服务台(服务台台号,服务台联系电话,订房编号) 3NF
客房(客房编号,客房种类,客房位置,客房单价,客房设备,今日状态) 2NF
客房管理部(订房编号,客房编号) 3NF
财务部(订房编号,预约金,身份证号) 3NF
其中,“客房”是2NF,因为:客房编号—>客房种类,客房位置,今日状态;客房种类—>客房单价,客房设备。因而存在传递依赖,需要分解。
将客房分解为客房和客房信息设定两个实体:
R1:客房(客房编号,客房种类,客房位置)
R2:客房信息设定(客房种类,客房单价,客房设备)
1、检验无损性
R1∩R2={客房种类}
R2-R1={客房单价,客房设备}
因为: R1∩R2 R2-R1
所以此分解是无损分解。
2、检验是否保持依赖
F={客房编号—>客房种类, 客房编号—>客房位置,客房编号—>今日状态,客房种类—>客房单价,客房种类—>客房设备}
ρ={{客房编号,客房种类,客房位置,今日状态},{客房种类,客房单价,客房设备}}
设客房编号,客房种类,客房位置,客房单价,客房设备,今日状态分别用A,B,C,D,E,F来表示,则F={A —> B,A —> C,A —> F,B —> D,B —> E},ρ={ABCF,BDE},R1=A