酒店管理系统报告.docx
《酒店管理系统报告.docx》由会员分享,可在线阅读,更多相关《酒店管理系统报告.docx(12页珍藏版)》请在冰点文库上搜索。
酒店管理系统报告
电信0902--10号--杨欣羽
电信0902--11号--王治元
电信0902--16--谢宏龙
电信0902—18—蔺广海
电信0901—13—姬苗飞
酒店管理系统数据库的分析与设计
随着市场经济的高速发展,酒店管理越来越重要,如何降低成本,提高服务水平是酒店管理者需要解决的一个实际问题,本系统从实际出发,在分析目前酒店管理中存在的问题基础上,结合管理信息系统开发的概念,结构及系统开发的基本原理和方法开发的。
系统支持多形式客户的数据共享、提高作业效率、监控整个酒店运营、客户管理、客房管理、财务管理、人事管理以及环节业务的监控等功能。
1系统功能设计
1.1系统功能目标
酒店管理系统主要提供以下几个功能:
客房管理系统,
客人管理系统,
住宿管理系统。
1.2系统功能分析
通过对系统的调查和可行性分析系统功能流程分析,确定该系统由一种用户使用。
客户
客户可实现的操作有;
客户客房编号查询
客户预订日期查询
客户预订数量查询
1.3数据库的需求分析
根据医院的系统功能,可以设计成以下数据结构
客房基本信息表:
存放客房编号信息,客房类型信息,客房价格信息以及客房床位数信息,使用状态等信息。
住宿基本信息表:
存放客房编号,客户编号,预定日期,预订数量等信息。
客户基本信息表:
存放客户编号,名称,身份证号,联系地址,联系电话等信息。
根据以上分析,按照E-R图的规定,画出E-R关系模型,如下所示:
图7—1酒店管理系统E-R图
2.1数据表的实现
根据上面数据表的逻辑设计,可执行下面的步骤来创建数据表.也可用相应的SQL语句执行来实现。
1、用企业管理器来实现
(1)在服务器上安装MSSQLServer2000。
2)打开企业管理器,在本地服务器上创建新的数据库(hotel)。
(3)展开hotel数据库,单击“表”按照设计分别创建所需数据表。
2、用SQL语句来实现
在查询分析器中分别输入以下代码来执行。
createdatabase酒店管理系统
use酒店管理系统
(1)创建酒店管理系统数据库
CREATEDATABASE酒店管理系统
(2)创建客房信息表
CREATETABLE客房
(客房编号CHAR(8)PRIMARYKEY,
客房类型CHAR(8)NOTNULL,
价格SMALLMONEYNOTNULL,
床位数INTNOTNULL,
使用状态CHAR(8)NOTNULL)
---------------------------------------------------
INSERTINTO客房VALUES('101','一',100,1,'在使用')
INSERTINTO客房VALUES('102','二',200,2,'在使用')
INSERTINTO客房VALUES('103','二',200,1,'在使用')
INSERTINTO客房VALUES('104','三',300,2,'在使用')
INSERTINTO客房VALUES('105','三',300,1,'未使用')
-------------------------------------------------------------------
(3)创建客户信息表
CREATETABLE客户
(客户编号CHAR(8)PRIMARYKEY,
客户名称CHAR(10)NOTNULL,
身份证号CHAR(18)NOTNULL,
联系地址CHAR(25),
联系电话CHAR(10))
---------------------------------------------------------------------------
INSERTINTO客户VALUES('1001','王一',12234,'江西','')
INSERTINTO客户VALUES('1002','张三',34234,'江西','')
INSERTINTO客户VALUES('1003','李四',56465,'江西','')
INSERTINTO客户VALUES('1004','王钱',65435,'江西','')
INSERTINTO客户VALUES('1005','孙志',11464,'江西','')
-----------------------------------------------------------------------------
(4)创建入住登记表
CREATETABLE入住登记
(客房编号CHAR(8)FOREIGNKEYREFERENCES客房(客房编号),
客户编号CHAR(8)FOREIGNKEYREFERENCES客户(客户编号),
预定日期DATETIME,
预定数量INT,
PRIMARYKEY(客房编号,客户编号))
------------------------------------------------------------------
INSERTINTO入住登记VALUES('101','1001',2010-10-10,1)
INSERTINTO入住登记VALUES('102','1002',2010-12-10,1)
INSERTINTO入住登记VALUES('103','1003',2010-12-26,1)
INSERTINTO入住登记VALUES('104','1004',2010-12-9,1)
---------------------------------------创建查询视图----------------------------------------
--1.2系统功能相应的查询视图:
--
(1)客户信息查询视图
--
(2)客房信息查询
CREATEVIEW客房信息查询
AS
SELECT*
FROM客房
--(3)入住信息查询
CREATEVIEW入住登记信息查询
AS
SELECT*
FROM入住登记
--(4)入住信息查询
CREATEVIEW入住信息查询
AS
SELECT入住登记.客房编号,客户名称,入住登记.客户编号,客房.客房类型,价格,使用状态
FROM客房,客户,入住登记
WHERE客房.客房编号=入住登记.客房编号AND入住登记.客户编号=客户.客户编号
select*FROM客房信息查询
select*FROM入住登记信息查询
select*FROM入住信息查询
----------------------------------------------建立索引------------------------------------------------------
--1.3建立索引及数据入库
--1.建立客房编号,价格,客户编号,客户名称的索引
--创建客房表索引:
CREATEUNIQUEINDEXUKFON客房(客房编号,价格)
--创建客户表索引:
CREATEUNIQUEINDEXUKHON客户(客户编号,客户名称)
--创建入住表索引:
CREATEUNIQUEINDEXURZON入住登记(客户编号,客房编号)
--2.数据入库
--方法一酒店管理系统包括客房信息表,客户信息表,入住登记信息表。
采用Excel中录入数据,然后使用SQLServer2000数据导入、导出功能直接将数据导入到相应的基本表。
--方法二在查询分析器中插入相关数据,用SQL语句插入。
-----------------------------------------创建存储过程-----------------------------------------------------
--1.4.1客户信息存储过程
--插入客户信息
CREATEPROCEDURE插入客户信息
(@KHBCHAR(8),
@KFMCHAR(10),
@SFZCHAR(18),
@LXDZCHAR(25),
@LXDHCHAR(10)
)
AS
INSERTINTO客户VALUES(@KHB,@KFM,@SFZ,@LXDZ,@LXDH)
--修改客户信息
CREATEPROCEDURE修改客户信息
(@KHBCHAR(8),
@KFMCHAR(10),
@SFZCHAR(18),
@LXDZCHAR(25),
@LXDHCHAR(10)
)
AS
UPDATE客户
SET客户名称=@KFM,身份证号=@SFZ,联系地址=@LXDZ,联系电话=@LXDH
WHERE客户编号=@KHB
--删除客户信息
CREATEPROCEDURE删除客户信息
(@KHBCHAR(8))
AS
DELETE
FROM客户
WHERE客户编号=@KHB
EXEC删除客户信息@KHB='10009'
--3.4.2创建入住信息存储过程
--插入入住信息
CREATEPROCEDURE插入入住信息
(@KFBCHAR(8),
@KHBCHAR(8),
@YDRQDATETIME,
@YDSLINT
)
AS
INSERTINTO入住登记VALUES(@KFB,@KHB,@YDRQ,@YDSL)
--修改入住信息
CREATEPROCEDURE修改入住信息
(@KFBCHAR(8),
@KHBCHAR(8),
@YDRQDATETIME,
@YDSLINT
)
AS
UPDATE入住登记
SET客房编号=@KFB,预定日期=@YDRQ,预定数量=@YDSL
WHERE客户编号=@KHB
--删除入住信息
CREATEPROCEDURE删除入住信息
(
@KHBCHAR(8)
)
AS
DELETE
FROM入住登记
WHERE客户编号=@KHB
----------------------------------------------------------------------------------------------------
--1.5查询存储过程的创建
--客房编号查询
CREATEPROCEDURE客房编号查询
(@KFBCHAR(8),
@KFLCHAR(8)OUTPUT,
@JGSMALLMONEYOUTPUT,
@CWSINTOUTPUT,
@SYZTCHAR(8)OUTPUT
)
AS
SELECT@KFL=客房类型,@JG=价格,@CWS=床位数,@SYZT=使用状态
FROM客房
WHERE客房编号=@KFB
--户编号查询
CREATEPROCEDURE客户编号查询
(@KHBCHAR(8),
@KFMCHAR(10)OUTPUT,
@SFZCHAR(18)OUTPUT,
@LXDZCHAR(25)OUTPUT,
@LXDHCHAR(10)OUTPUT
)
AS
SELECT@KFM=客户名称,@SFZ=身份证号,@LXDZ=联系地址,@LXDH=联系电话
FROM客户
WHERE客户编号=@KHB
--入住客户编号查询
CREATEPROCEDURE入住客户编号查询
(@KFBCHAR(8)OUTPUT,
@KHBCHAR(8),
@YDRQDATETIMEOUTPUT,
@YDSLINTOUTPUT
)
AS
SELECT@KFB=客房编号,@YDRQ=预定日期,@YDSL=预定数量
FROM入住登记
WHERE客户编号=@KHB
---------------------------------------建立触发器---------------------------------------------
1.6、建立触发器保证数据的一致性
--客房使用状态的控制
CREATETRIGGER控制触发器
ON入住登记
FORINSERT
AS
UPDATE客房
SET使用状态='使用中'
WHERE客房编号=ANY(SELECT客房编号FROMINSERTED)
--客户信息删除的控制
CREATETRIGGER客户删除触发器
ON客户
FORDELETE
AS
BEGIN
DELETE
FROM入住
WHERE客户编号=ANY(SELECT客户编号FROMDELETED)
UPDATE客房
SET使用状态='未使用'
WHERE客房编号=ANY(SELECT客房编号FROMDELETED)
END
--客房删除触发器
CREATETRIGGER客房删除触发器
ON客房
FORDELETE
AS
DELETE
FROM入住
WHERE客户编号=ANY(SELECT客户编号FROMDELETED)
2.2数据录入信息的查询
3本章小结
本章介绍了一个酒店管理系统的数据库设计部分。
从数据库应用程序角度介绍了如何分析用户需求、如何设计数据库。
系统功能设计为整个系统构建了框架,数据库设计理顺了系统的思路,各个功能模块实现了各个细节部分。
该数据库实例采用了视图、触发器,事务或自定义函数来实现对数据库快速、高效、简洁的访问,这样优化了程序代码,增强了程序的可读性和可维护性。