(数据库课程设计)客房管理系统毕业设计论文(2)
来源:56doc.com 资料编号:5D4016 资料等级:★★★★★ %E8%B5%84%E6%96%99%E7%BC%96%E5%8F%B7%EF%BC%9A5D4016
资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用. 密 保 惠 帮助
资料介绍
表 2-5 处理过程
处理过程编号 处理过程名称 简述 输入的数据流 处理 输出地数据流
P1 更新住房信息 有顾客后,要及时更新住房信息 入住登记表 对住房信息数据进行更新操作 新的住房信息
P2 选择房间 顾客更具需要选择房间类型 房间信息表 选择需要的房间类型 房卡、发票
P3 对该顾客进行相应服务 顾客选择服务,对顾客进行服务 服务菜单 按照顾客所选服务提供服务 服务清单
P4 退房 顾客离开时办理退房结算手续 入住登记表 办理退房结算手续 退房信息
2.2 概念设计
将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。它是整个数据库设计的关键。
2.2.1 分E-R图
面对每一个局部应用主义设计分E-R图:
2.2.2 总E-R图
各子系统的E-R图设计好以后,下一步就是要将所有的分E-R图综合成一个系统的总E-R图。多个分E-R图一次集成总E-R图,如下图所示:
在消除各种冲突和不必要的冗余之后,基本E-R图就生成了,下一步就是根据概念结构设计结果来进行逻辑结构设计了。
2.3 逻辑设计
概念结构是独立于任何一种数据模型的信息结构。逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与所选用的DBMS产品所支持的数据模型想符合的逻辑结构。
2.3.1 E-R 图向关系模型转换
把总E-R图转换成为关系模式,关系的码用下划线标出。
顾客(顾客编号,顾客姓名,顾客身份证号,顾客性别,顾客年龄)
此为顾客实体所对应的关系模式。
房间(房间编号,房间类型,房价状态,房间单价)
此为房间实体所对应的关系模式。
入住登记表(顾客姓名,房间号码,顾客身份证号,入住日期,订房天数,)
此为入住登记表所对应的关系模式,该关系模式已包含了联系“登记”所对应的关系模式。
服务菜单(服务名称,服务次数,服务单价)
此为服务菜单实体对应的关系模式。
服务清单(房间编号,服务名称,服务次数,服务单价)
此为服务清单所对应的关系模式,该关系模式已包含了联系“选择”所对应的关系模式。
2.3.2 数据模型的优化
数据逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,还应该分局应用系统的需要适当的修改,调整数据模型的结构,这就是数据模型的优化。关系数据库模型的优化通常以规范化理论为指导,方法为:
1. 确定数据依赖。
2. 对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
3. 按照数据依赖的理论对关系模式逐一进行分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖等,确定个关系模式分别属于第几范式。
4. 按照需求分析阶段得到的处理要求,分析对于这样的应用环境这些模式是否合适,确定是否要求对某些模式进行合并或分解。
5. 对关系模式进行必要的分解,提高数据操作的效率和存储空间利用率。常用的两种分解发事水平分解法和垂直分解法。
规范化理论为数据库设计人员判断关系模式优劣提供了理论标准,可以来预测模式可能出现的问题,使数据库设计工作有了严格的理论基础。
2.3.3 设计用户子模式—视图
将概念模型转换为全局逻辑模型之后,还应该根据局部应用需求,结合具体DBMS的特点,设计用户的外模式。
目前关系数据库管理系统一般都提供了视图(view)概念,可利用这一功能设计更符合局部用户需要的用户外模式。
对于本系统,综合顾客和管理者的角度,设计了如下视图:
对于顾客,只需要建立状态为空的房间信息的视图:
1. 建立空房间的视图,方便顾客查询和选择房间。
空房间(房间编号,房间类型,房间单价)
对于管理者,则要建立如下几个视图:
1.建立满房间视图,方便管理者了解入住客人的信息
满房间(房间编号,房间类型,房间单价)
2.建立所有顾客应缴纳房间费用的视图,方便管理者预算房间收入
房间费用(顾客姓名,房间费用)
3.建立所有顾客应缴纳服务费用的视图,方便预算服务收入,且可以根据统计数据来分析那种服务受欢迎,从而增加和推广相应服务
服务费用(房间编号,服务综费用)
4.建立所有顾客应缴纳的总费用的视图,方便结算
总费用(房间编号,总费用)
2.4 物理设计
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。
2.4.1 建立触发器
这个系统为数据表的更新建立了两个触发器,一个是在有新的客人入住时,插入客人入住信息,触发触发器,使房间信息得到更新。另外就是在有客人退房结账之后,使触发器触发,更新房间信息表。
表 2-6 定义触发器
触发器名 触发器的作用
View_delete 在顾客退房之后,触发器触发,删除住房登记表中的入住记录
in_status 用来在插入了一条顾客订房纪录之后触发,使该房间状态由‘空’更新为‘满’
Out_status 用来在插入了一条顾客退房记录之后触发,使该房间状态由‘满’更新为‘空’
2.4.2 建立存储过程
存储过程是存储在服务器端由一组编译的Transact—SQL语句构成的SQL Sever数据库应用程序,它能够检索系统信息、管理数据库或执行其他操作。
为了方便操作,为本系统建立了如下存储过程:
表2-7 存储过程
存储过程编号 存储过程名称 存储过程作用
P1 roominf 查询某个房间的信息
P2 Priceinf 查询某个房间的价格
P3 Statusinf 查询某个房间的状态
P4 menuinf 查询有哪些服务
P5 updateinf 更新房间信息 |