酒店管理信息系统数据库设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据库原理及应用》
课程设计报告
设计题目:酒店管理信息系统数据库设计
目录
目录 (1)
1数据库需求分析 (2)
1.1调查对象基本情况说明 (2)
1.2数据库系统设计目标及具体功能 (2)
2数据库概念结构设计 (2)
2.1实体及属性说明 (2)
2.2 E-R图设计 (3)
3数据库逻辑结构设计 (4)
3.1数据库逻辑结构设计 (4)
3.2主要表的作用说明及内容图示 (5)
4主要视图设计 (6)
5安全体系设计 (9)
6典型需求的处理过程及命令 (10)
7总结 (11)
7.1 设计中遇到的主要问题及解决方法 (11)
7.2 设计方案的主要优点及不足 (12)
7.3 收获及建议 (12)
参考文献 (12)
酒店管理信息系统数据库设计
1数据库需求分析
1.1调查对象基本情况说明
酒店有总经理、会计和前台工作人员。

总经理总管各类事务,会计负责对酒店收入统计管理,前台负责客人的入住、退房以及一般的查询等事务办理。

酒店有各种标准的房间。

房间数据包括房间号、房间级别、房间床位数目、房间价位以及房间的状态(是否已经有客人)。

房间编号唯一表示一个房间,房间级别决定房间价格,房间有四种级别分别表示:四人标准间、二人标准间,单人标准间,豪华间。

房间状态表示此房间是否入住或者转房。

酒店要求了解顾客的一般信息,能够为顾客提供入住、换房、退房、随时交费服务,并能够满足顾客对自身消费以及酒店房间状况等各类信息的查询要求。

酒店在正常运营中需要对客房资源、顾客信息、顾客住宿情况、收费信息进行管理。

一套功能强大而又使用简便实用的酒店管理系统有利于提高管理效率。

1.2数据库系统设计目标及具体功能
1、系统设计的总体目标:实现酒店各种信息的系统化、规范化和自动化,提供客户、客房信息录
入和查询修改,客户住宿情况的变动管理以及酒店与客户的费用统计查询。

进一步的提高酒店的管理效率。

2、主要功能:不同等级客房信息的录入与记录,客人的信息登记,客人的入住、换房、退房、交
费信息记录,有关客人交费情况、酒店住宿收入情况、客房状态、客人各类信息等各种强大的统计报表,另外还提供各类统计查询。

2数据库概念结构设计
2.1实体及属性说明
需建立七个表,如下(下划线为主码)。

其中客房、客人、收费记录属于实体;收费标准包含于客房实体之中;入住、换房、退房属于实体之间的联系。

客房(客房编号,等级,是否使用);
收费标准(等级,价格);
客人(客人编号,身份证号,姓名,联系电话);
入住(客房号,客人号,日期,是否换房);
换房(客人号,原房号,现房号,日期);
退房(客人号,房号,日期);
收费记录(客人号,日期,交费金额);
2.2 E-R图设计
3数据库逻辑结构设计3.1数据库逻辑结构设计
3.2主要表的作用说明及内容图示
1、客房表:记录客房信息,包括编号、等级、状况,方便客房管理和空房查询。

2、客人表:记录客人的基本情况,用于酒店管理与联系客户。

3、入住表:记录客人的入住情况,包括入住客房与时间。

4、换房表:记录换房客人的情况,包括换房前后客房号与时期,用于计算费用。

5、退房表:记录客人的退房情况,用于计算费用和改变客房状态
6、收费标准表:记录客房等级对应的价位,方便收费与交费的统计计算。

7、收费记录表:记录客人的交费记录与酒店退款(超额)记录,用于计算收入与费用。

4主要视图设计
(1)客人信息视图
●创建必要性:创建客人信息视图,方便酒店服务员对客户服务,方便酒店与客户进行联系与沟通。

该视图用于前台服务人员。

●命令:
CREATE VIEW 客人信息(客人编号,姓名,身份证号,联系电话,入住房间,入住日期,是否离开) AS SELECT 客人.客人编号, 客人.姓名, 身份证号, 联系电话, 入住.客房号, 入住.日期, 入住.是否退房FROM 客人, 入住
WHERE 客人.客人编号 = 入住.客人号
●数据图示:
(2)现住客人费用情况视图
●创建必要性:创建现住客人费用情况视图用于前台服务员对退房客户进行收费与退费,客户查询
自己需交费用与以交费用以及余额。

●命令:由于此视图较为复杂,在创建该视图时必须先建立另外几个视图,所有视图命令如下:
一、CREATE VIEW 客人交费情况(客人编号,缴费总额)
AS SELECT 客人.客人编号, SUM(收费记录.交费金额)
FROM 客人, 收费记录
WHERE 客人.客人编号 = 收费记录.客人号
GROUP BY 客人编号
二、CREATE VIEW 现住客人费用情况一(客人编号, 应交费用)
AS SELECT 客人.客人编号, datediff(d, 入住.日期, 换房.日期) * D1.价格 + datediff(d, 换房.日期, getdate()) * D2.价格
FROM 客人, 入住, 客房 S1, 收费标准 D1, 客房 S2, 收费标准 D2, 换房
WHERE 客人.客人编号 = 入住.客人号 AND 入住.客房号 = S1.客房编号 AND 入住.客房号 = 换房.原房号AND S1.等级 = D1.等级 AND S2.等级 = D2.等级 AND 换房.现房号 = S2.客房编号 and 入住. 是否退房
is null
三、CREATE VIEW 现住客人费用情况二(客人编号, 应交费用)
AS SELECT 客人.客人编号, datediff(d, 入住.日期, getdate()) * 收费标准.价格
FROM 客人, 入住, 收费标准, 客房
WHERE 客人.客人编号 = 入住.客人号 AND 入住.客房号 = 客房.客房编号 AND 客房.等级 = 收费标准.
等级 AND 入住.是否退房 IS NULL AND 入住.是否换房 IS NULL
四、CREATE VIEW 现住客人费用情况(客人编号,姓名,应交费用,已交费用,余额)
AS SELECT 客人.客人编号, 姓名, 现住客人费用情况一.应交费用, 客人交费情况.缴费总额, 客人交费情况.缴费总额 - 现住客人费用情况一.应交费用
FROM 现住客人费用情况一, 客人交费情况, 客人
WHERE 现住客人费用情况一.客人编号 = 客人交费情况.客人编号 AND 客人.客人编号 = 客人交费情况.客人编号
UNION SELECT 客人.客人编号, 姓名, 现住客人费用情况二.应交费用, 客人交费情况.缴费总额, 客人交费情况.缴费总额 - 现住客人费用情况二.应交费用
FROM 现住客人费用情况二, 客人交费情况, 客人
WHERE 现住客人费用情况二.客人编号 = 客人交费情况.客人编号 AND 客人.客人编号 = 客人交费情况.客
人编号
●数据视图:
(3)以退客人费用情况视图
●创建必要性:现住客人所交费用不是其实际应交费用,创建已退房客人费用情况视图用于会计
统计酒店收入情况,经理了解酒店的盈利等。

●命令:此视图较为复杂,在创建该视图时必须先建立另外几个视图,顺序与视图(2)相似,
所有视图命令如下:
一、CREATE VIEW 客人交费情况(客人编号,缴费总额)
AS SELECT 客人.客人编号, SUM(收费记录.交费金额)
FROM 客人, 收费记录
WHERE 客人.客人编号 = 收费记录.客人号
GROUP BY 客人编号
二、CREATE VIEW 退房客人费用情况一(客人编号, 应交费用)
AS SELECT 客人.客人编号, datediff(d, 入住.日期, 换房.日期) * D1.价格 + datediff(d, 换房.日期, 退房.日期) * D2.价格
FROM 客人, 入住, 客房 S1, 收费标准 D1, 客房 S2, 收费标准 D2, 换房, 退房
WHERE 客人.客人编号 = 入住.客人号 AND 入住.客房号 = S1.客房编号 AND 入住.客房=换房.原房号AND 换房.现房号 = 退房.房号 AND S1.等级 = D1.等级 AND S2.等级 = D2.等级 AND 换房.现房号 = S2.
客房编号
CREATE VIEW 退房客人费用情况二(客人编号, 应交费用)
AS SELECT 客人.客人编号, datediff(d, 入住.日期, 退房.日期) * 收费标准.价格
FROM 客人, 入住, 客房, 收费标准, 退房
WHERE 客人.客人编号 = 入住.客人号 AND 入住.客房号 = 客房.客房编号 AND 入住.客房号 = 退房.房号 AND 客房.等级 = 收费标准.等级 AND 入住.是否换房 IS NULL
CREATE VIEW 以退客人费用情况(客人编号, 姓名, 应交费用, 已交费用, 余额)
AS SELECT 客人.客人编号, 姓名, 退房客人费用情况一.应交费用, 客人交费情况.缴费总额, 客人交费情况.缴费总额 - 退房客人费用情况一.应交费用
FROM 退房客人费用情况一, 客人交费情况, 客人
WHERE 退房客人费用情况一.客人编号 = 客人交费情况.客人编号 AND 客人.客人编号 = 客人交费情况.
客人编号
UNION SELECT 客人.客人编号, 姓名, 退房客人费用情况二.应交费用, 客人交费情况.缴费总额, 客人
交费情况.缴费总额 - 退房客人费用情况二.应交费用
FROM 退房客人费用情况二, 客人交费情况, 客人
WHERE 退房客人费用情况二.客人编号 = 客人交费情况.客人编号 AND 客人.客人编号 = 客人交费情况.
客人编号
●数据视图:
5安全体系设计
1、用户游客:所有人,拥有查询房间状态及收费权限,利于了解酒店。

2、用户前台:拥有对各个基本表(视图)所有客人、客房的查询及部分修改、删除、插入权限,便
于管理与登记入住客人的信息与换房、退房活动以及收费。

3、用户客人:客人拥有对自己各类信息的全部查询功能。

便于了解自己的交费与住宿情况并核对,及
时交费。

4、用户会计:拥有一切与费用相关表(视图)的查询功能,以核对实际情况的正确性。

5、总经理用户:拥有所有表的一切功能,以掌握酒店经营状况。

6、dbo:记数据库拥有者,拥有一切功能。

6典型功能处理过程设计
(1)空房查询功能处理过程
●使用背景:客户入住前查询可入住空闲房间及价格标准。

●具体要求:能够查询酒店空余房间及其等级价格
●操作命令及结果:
AS SELECT 客房.客房编号, 客房.等级, 收费标准.价格
FROM 客房, 收费标准
WHERE 客房.等级 = 收费标准.等级 AND 客房.是否使用 IS NULL
(2)客人消费以及交费情况查询功能处理过程
●使用背景:入住客人查询自己的费用情况。

●具体要求:能够使客人清楚的查询自己的交费、消费、欠费情况。

●操作命令及结果:此功能由以建视图实现,例如:20101231002查询自己费用信息
SELECT 入住.客人号, 现住客人费用情况.姓名, DATEDIFF(d, 入住.日期, GETDATE())
AS 入住天数, 现住客人费用情况.应交费用, 现住客人费用情况.已交费用, 现住客人费用情况.余额
FROM 现住客人费用情况 ,入住
Where 现住客人费用情况.客人编号 = 入住.客人号 AND 入住.客人号=20101231002
(3)统计酒店的进账数目功能处理过程
●使用背景:酒店会计与经理查询账目。

●具体要求:统计酒店每天的进账数目。

●操作命令及结果:
SELECT 日期, SUM(交费金额) AS 收入
FROM 收费记录
GROUP BY 日期
7总结
7.1 设计中遇到的主要问题及解决方法
这次数据库课程设计中遇到很多问题,主要表现在以下几个方面。

主要问题一:由于在设计要求中有换房这一项,而换房时房间变换可能使房间等级改变,而进一步
改变房间的价格,因此在计算换房客人费用时要将两个不同的收费标准分别计算。

在计算所有客人应收费用时就有两个不同情况:换房客人与未换房客人。

两种情况计算方法不同,无法在一个视图中实现,而为了查询方便又必须在同一视图中显示。

同时现住客人与已退房客人之间也存在着一个问题,即退房客人住宿天数已确定而现住客人不确定。

经过不断考虑,想到以下解决方法,为了建立最终的费用视图先根据各种不同情况(是否换房、是否退房)建立几个过渡视图,然后将过渡视图综合,在综合时遇到的两视图合并显示通过查询资料用UNION命令解决。

主要问题二:计算费用时需用“住宿天数*价格”实现,而住宿天数的计算让我思考了很久,时间跨年与跨月的差值计算通过已学各种知识感觉无法实现,后来通过查找资料找到解决方法:使用datediff函数计算。

7.2 设计方案的主要优点及不足
方案优点:正确有效的的实现了既定目标与功能,能够执行各类输入、修改、查询与统计等功能,由于设计多个视图而使系统的使用简单方便。

客人的费用等信息可以由视图直接查询得出,而不必要用复杂繁琐的命令。

方案不足:由于时间仓促,该系统缺少了现实中某些必要的部分,例如酒店服务员的有关信息管理、酒店的日常消费支出、工资管理等方面的内容。

而且视图建立时自己感觉部分算法太过于复杂,但没有更好的办法改进。

7.3 收获及建议
这次课程设计感触颇深,首先是深刻感受到程序的实际应用性,这学期的课程设计的题目都是贴近实际生活的问题,我们就能够很清楚的明白自己写的程序要解决什么样的实际问题,应该解决什么样的实际问题,觉得自己的程序如何更有实用价值。

这次设计中不断的出现问题,我则自己努力,不断的改正错误,改进自己的程序,有些自己实在是无法解决的问题,则会与其他同学讨论,或上网查询、搜寻资料……在不断的改进过程中,深刻的认识到自己程序的漏洞和不健全性。

通过这次设计,不但让我进一步加深了对知识的巩固,而且很好的锻炼了我的独立思考能力,以及分析问题解决问题的能力。

今后凡事都不要着急,要冷静的分析思考,越是急越是无法解决,只有沉着冷静深入思考才能真正的解决问题。

只要自己努力凡事都能解决。

而且深刻感受到了知识的重要性。

我对课设的建议:由于课设时间较短,仓促中无法更好的改进某些方面的设计,所以我觉得应该适当的增加时间,另外我觉得我们应该学习部分编程语言与SQL相结合来更好的设计一个较为实用的管理系统。

参考文献
王珊,萨师宣.数据库系统概论(第四版).北京:高等教育出版社,2006.。

相关文档
最新文档