数据库酒店客房管理系统.docx
- 文档编号:11397149
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:24
- 大小:50.48KB
数据库酒店客房管理系统.docx
《数据库酒店客房管理系统.docx》由会员分享,可在线阅读,更多相关《数据库酒店客房管理系统.docx(24页珍藏版)》请在冰豆网上搜索。
数据库酒店客房管理系统
河南城建学院
《数据库原理及应用课程设计》
专业班级:
0834131
课程设计题目:
酒店客房管理系统
指导教师:
吴孝丽苏靖枫
学生学号:
学生姓名:
本小组合作者:
计算机科学与工程学院
2015年6月
1需求分析阶段
1.1概述
进行数据库系统设计,首先要对系统的现状进行分析,明确自己酒店客房管理系统课程设计所要实现的目标、需求和功能,制定和选择一个较好的系统方案,有计划,有头绪,有思路,不能盲目的就着手去做,从而达到一个合理的优化系统。
需求分析在于弄清这次课程设计的酒店管理系统的确切要求,因此,数据库课程设计的第一步就是明确数据库的目的和如何使用该系统。
明确目的之后,才可以确定自己需要保存那些表信息,以及每个表中需要保存哪些字段。
对于酒店客房管理系统,需要了解以下内容:
1.了解酒店客房管理的基本内容;
2.综合的理解酒店客房管理各身份层次的不同需求;
3.了解酒店客房管理的基本业务流程;
4.了解酒店客房人工管理模式与信息系统的工作概况,以及它们之间的区别;
5.通过网上查阅资料以及翻阅相关书籍,了解用户对酒店客房管理系统的业务要求,安全性和完整性要求;
1.2需求阶段的目标及任务
(1)处理对象
房客基本信息(Customer):
房客编号,房客身份证号,房客姓名,房客性别,房客电话;
房间基本信息(Room):
房间编号,房间类型号,房间位置(楼层),房间描述(朝向);
房间类型信息(RoomType):
房间类型号,房间类型名,房间面积,房间价格;
客房业务历史记录信息(History):
房客编号,房客身份证号,房客姓名,房客电话,房间编号,消费金额,入住时间,退房时间;
客房业务信息(RoomOperation):
房客编号,房客身份证号,房间编号,入住时间;
房间状态信息(RoomStatus):
房间编号,房间状态(有人/未住)。
(2)处理功能及要求
系统对酒店客房管理系统的功能及要求如下:
①能够存储一定数量的房客信息,并方便有效的进行相应的房客数据操作和管理,这主要包括:
·房客信息的录入,删除和修改;
·房客信息的关键字检索查询。
②能够对房客的入住信息,换房信息,退房信息,进行相应的操作,这主要包括:
·房客入住,换房,退房的登记,删除及修改;
·房客住房历史信息的删除、修改;
·房客住房金额的统计与查询。
③能够提供一定的安全机制,提供数据信息授权访问,修改和删除,防止随意查询,修改及删除。
④对查询、统计的结果能够列表显示。
1.3安全性和完整性要求
(1)安全性要求
系统安全性要求体现在数据库安全性、信息安全性和系统分平台的安全性等方面。
安全性之基础的是通过视图机制,不同用户只能访问系统授权的视图,这样可以提供系统数据一定程度上的安全性。
系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。
(2)完整性要求
系统完整性要求系统中数据的正确性以及相容性。
可通过建立主、外键,使用unique约束,或者使用触发器更新。
1.4建立数据业务流程及数据字典
(1)酒店客房管理系统业务流程图(如图1)
图1酒店客房管理系统业务流程图
(2)酒店客房管理系统数据字典
①数据项:
系统涉及的数据项有16项,如表1所示
表1数据项列表
数据项编号
数据项名
数据项含义
存储结构
别名
DI-01
CuName
房客姓名
NVARCHAR(10)
姓名
DI-02
CuNo
房客编号
NCHAR(6)
房客号
DI-03
CuSex
房客性别
NCHAR
(2)
性别
DI-04
RoomNo
房间号
NCHAR(6)
房间号
DI-05
CuPhone
房客电话
NVARCHAR(20)
电话
DI-06
CuCard
房客身份证
NVARCHAR(20)
身份证
DI-07
TypeNo
房间类型号
NCHAR(6)
类型号
DI-08
RoomFloor
房间楼层
NVARCHAR(10)
位置
DI-09
RoomStatus
房间状态
NVARCHAR(10)
状态
DI-10
TypeName
房间类型名称
NVARCHAR(10)
类型名
DI-11
TypeArea
房间面积
NVARCHAR(10)
面积
DI-12
TypePrice
房间价钱
INT
价钱
DI-13
Descripiption
房间描述
NVARCHAR(20)
描述
DI-14
Price
房客消费
INT
消费
DI-15
IntoTime
入住时间
DATETIME
入住时间
DI-16
OutTime
退房时间
DATETIME
退房时间
数据结构,如表2所示。
表2数据结构列表
数据结构编号
数据结构名
数据结构含义
组成
DS-1
Customer
房客信息
CuNo,CuName,CuPhone,CuSex,CuCard
DS-2
Room
房间信息
RoomNo,TypeNo,
RoomFloor,
Descripiption
DS-3
RoomType
房间类型
TypeNo,TypeName,
TypeArea,TypePrice
DS-4
History
业务记录信息
CuNo,CuName,CuPhone,
CuCard,Price,OutTime,RoomNo
DS-5
RoomStatus
房间状态
RoomNo,RoomStatus
DS-6
RoomOperation
客房业务信息
RoomNo,CuNo,CuCard,
IntoTime
2概念分析阶段
图2酒店客房管理系统全局E-R图
上述E-R图各实体的属性如下所示:
房客基本信息:
Customer(CuNo,CuCard,CuName,CuSex,CuPhone)
房间基本信息:
Room(RoomNo,TypeNo,RoomFloor,Description)
房间类型信息:
RoomType(TypeNo,TypeName,TypeArea,TypePrice)
客房业务历史记录信息:
History(CuNo,CuCard,CuName,CuPhone,RoomNo,Price,IntoTime,OutTime)
客房业务信息:
RoomOperation(CuNo,CuCard,RoomNo,IntoTime)
房间状态信息:
RoomStatus(RoomNo,Status)
数据库关系图:
3逻辑设计阶段
以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的数据库管理系统(DBMS)产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。
具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。
3.1数据组织
(1)将E-R图转换为关系模型
实体型转换为关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
对于实体间的联系则有以下不同的情况:
一个m:
n联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
一个1:
n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
一个1:
1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合具有相同码的关系模式可合并。
例如房间信息与房间类型信息之间是1:
n的关联。
可以将其之间的联系转化为独立的关系模式,具体的基本E-R图向关系模型的转化如下:
房客基本信息:
Customer(CuNo,CuCard,CuName,CuSex,CuPhone)
房间基本信息:
Room(RoomNo,TypeNo,RoomFloor,Description)
房间类型信息:
RoomType(TypeNo,TypeName,TypeArea,TypePrice)
客房业务历史记录信息:
History(CuNo,CuCard,CuName,CuPhone,RoomNo,Price,IntoTime,OutTime)
客房业务信息:
RoomOperation(CuNo,CuCard,RoomNo,IntoTime)
房间状态信息:
(RoomNo,Status)
(注:
标有直线下划线的为主属性,标有波浪线下划线的是外键属性)
(2)模型优化
第一范式要求每一列的项不可分割,酒店管理系统的六个表都满足了1NF;简单理解,第二范式要求每个表所描述的是一件事,例如在Room表中如果加上房间状态Status,则Room表就不满足2NF了,它包括了房间信息和房间是否有房客入住的信息两个事件,所以就有了RoomStatus表;第三范式要求,每一项都不传递依赖,如果Room表中再加上房间类型名,则TypeName通过Room中的TypeNo传递依赖于RoomNo,所以有了RoomType表。
现在六张表都达到了3NF。
(3)数据库模式定义
根据分析,本数据库共创建了6个表,如表3~表8所示
表3房客信息表
列名
数据类型
可否为空
说明
CuNo
NCHAR
NOTNULL
房客编号
CuName
NVARCHAR
NOTNULL
房客姓名
CuSex
NCHAR
房客性别
CuPhone
NVARCHAR
电话
CuCard
NVARCHAR
NOTNULL
身份证
表4房间信息表
列名
数据类型
可否为空
说明
RoomNo
NCHAR
NOTNULL
房间号
TypeNo
NCHAR
NOTNULL
类型号
RoomFloor
NVARCHAR
位置
Description
NVARCHAR
描述
表5房间类型信息表
列名
数据类型
可否为空
说明
TypeNo
NCHAR
NOTNULL
类型号
TypeName
NVARCHAR
NOTNULL
类型名
TypeArea
NVARCHAR
NOTNULL
面积
TypePrice
INT
价钱
表6客房业务表
列名
数据类型
可否为空
说明
CuNo
NCHAR
NOTNULL
房客编号
RoomNo
NCHAR
房间号
IntoTime
DATETIME
入住时间
CuCard
NVARCHAR
NOTNULL
身份证
表7业务记录表
列名
数据类型
可否为空
说明
CuNo
NCHAR
房客编号
CuCard
NVARCHAR
身份证
CuPhone
NVARCHAR
电话
CuName
NVARCHAR
姓名
RoomNo
NCHAR
NOTNULL
房间号
Price
INT
消费金额
IntoTime
DATETIME
入住时间
OutTime
DATETIME
退房时间
表8房间状态表
列名
数据类型
可否为空
说明
RoomNo
NCHAR
NOTNULL
房间号
Status
NVARCHAR
状态
(4)用户子模式定义,如表9~12。
表9房间基本信息视图
列名
数据类型
可否为空
说明
RoomNo
NCHAR
NOTNULL
房间号
TypeName
NCHAR
NOTNULL
类型号
RoomFloor
NVARCHAR
位置
TypePrice
INT
价钱
表10退房房客基本信息视图
列名
数据类型
可否为空
说明
CuName
NVARCHAR
姓名
CuSex
NCHAR
房客性别
CuCard
NVARCHAR
NOTNULL
身份证
CuPhone
NVARCHAR
电话
OutTime
DATETIME
退房时间
表11空房间基本信息视图
列名
数据类型
可否为空
说明
RoomNo
NCHAR
NOTNULL
房间号
TypeName
NCHAR
NOTNULL
类型号
RoomFloor
NVARCHAR
位置
TypePrice
INT
价钱
表12房客基本信息视图
列名
数据类型
可否为空
说明
CuName
NVARCHAR
姓名
CuSex
NCHAR
房客性别
CuCard
NVARCHAR
NOTNULL
身份证
CuPhone
NVARCHAR
电话
3.2数据处理
图3系统功能模块图
4物理设计阶段
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
4.1数据存储方面
为数据库中各基本表建立的索引如下:
由于基本表History、Customer的CuName、CuCard在现实生活中经常在查询条件中出现,在两个属性上建立索引。
4.2系统功能模块
实现对房间信息,房客信息的查询、添加、删除操作,功能模块见图3。
5数据实施阶段
5.1建立数据库、数据表、视图、索引
(1)建立数据库
Createdatabase酒店客房管理系统
(2)建立数据表
1房客基本信息表的建立:
CREATETABLECustomer(
CuNoNCHAR(6)PRIMARYKEY,--房客编号
CuCardNVARCHAR(20)UNIQUENOTNULL,--身份证
CuNameNVARCHAR(10)NOTNULL,--房客姓名
CuSexNCHAR
(2),--房客性别
CuPhoneNVARCHAR(20),--电话
②房间基本信息表的建立:
CREATETABLERoom(
RoomNoNCHAR(6)PRIMARYKEY,--房间号
TypeNoNCHAR(6)NOTNULL,--房间类型号
RoomFloorNVARCHAR(10),--房间位置
DescriptionNVARCHAR(20)--房间描述
)
③房间类型基本信息表的建立:
CREATETABLERoomType(
TypeNoNCHAR(6)PRIMARYKEY,--房间类型号
TypeNameNVARCHAR(10)NOTNULL,--类型名称
TypeAreaNVARCHAR(10),--房间面积
TypePriceINTNOTNULL--房间价钱
)
④业务记录基本信息表的建立:
CREATETABLEHistory(
CuNoNCHAR(6),--房客编号
CuCardNVARCHAR(20)UNIQUENOTNULL,--身份证
CuNameNVARCHAR(10),--姓名
CuPhoneNVARCHAR(20),--电话
RoomNoNCHAR(6),--房间号
Priceint,--消费金额
IntoTimeDATETIME,--入住时间
OutTimeDATETIME,--退房时间
PRIMARYKEY(IntoTime,RoomNo)
)
客房业务基本信息表的建立
CREATETABLERoomOperation(
CuNoNCHAR(6)PRIMARYKEY,--房客编号
RoomNoNCHAR(6),--房间号
IntoTimeDATETIME,--入住时间
CuCardNVARCHAR(20)UNIQUENOTNULL--身份证
)
房间状态基本信息表的建立
CREATETABLERoomStatus(
RoomNoNCHAR(6)PRIMARYKEY,--房间号
StatusNVARCHAR(6)--状态
)
(3)建立视图
用于查询房间基本信息的视图
createviewRoomview(房间号,房间类型,位置,价钱)
as
selectRoomNo,TypeName,RoomFloor,TypePrice
fromRoom,RoomType
whereRoom.TypeNo=RoomType.TypeNo
用于查询退房房客基本信息的视图
createviewCustomerview(姓名,性别,身份证,电话,退房时间)
as
selectCustomer.CuName,CuSex,Customer.CuCard,Customer.CuPhone,History.OutTime
fromHistory,Customer
whereCustomer.CuNo=History.CuNo
用于查询未住人的客房信息
createviewRoomnopeople(房间号,类型,位置,价钱)
as
selectRoom.RoomNo,TypeName,RoomFloor,TypePrice
fromRoom,RoomStatus,RoomType
whereStatus='未住'andRoom.RoomNo=RoomStatus.RoomNoandRoom.TypeNo=RoomType.TypeNo
用于查询房客基本信息的视图
createviewShowCustomerview(姓名,性别,身份证,电话)
as
selectCuName,CuSex,CuCard,CuPhone
fromCustomer
(4)建立索引
建立业务记录信息上的房客姓名索引
createindexi_HistoryonHistory(CuName)
建立房客信息上的身份证索引
createindexi_CustomeronCustomer(CuCard)
(5)建立存储过程
添加新的房间存储过程的建立:
createprocp_InsertRoom
@RoomNonchar(6),@TypeNonchar(6),@RoomFloornvarchar(10),@Descriptionnvarchar(20),@Statusnvarchar(6)='未住'
as
insertintoRoomvalues(@RoomNo,@TypeNo,@RoomFloor,@Description)
insertintoRoomStatusvalues(@RoomNo,@Status)
根据房间类型获取未住房间信息的存储过程的建立:
createprocp_ShowRoom
@TypeNonchar(6),@Statusnvarchar(6)='未住'
as
selectRoom.RoomNo,Room.RoomFloor,Room.Description,RoomType.TypeArea,RoomType.TypeName,RoomType.TypePrice
fromRoom,RoomType,RoomStatus
whereRoom.TypeNo=@TypeNoandStatus=@StatusandRoom.TypeNo=RoomType.TypeNoandRoom.RoomNo=RoomStatus.RoomNo
-根据房间号查询房间信息的存储过程的建立
createprocp_GetRoom
@RoomNonchar(6)
as
selectRoom.RoomNo,RoomFloor,Description,TypeName,TypeArea,TypePrice
fromRoom,RoomType
whereRoom.TypeNo=RoomType.TypeNoandRoom.RoomNo=@RoomNo
新的房客入住时的存储过程的建立
createprocp_AddCustomer
@CuNonchar(6),@RoomNOnchar(6),@CuNamenvarchar(10),@CuSexnchar
(2),@CuCardnvarchar(20),@CoPhonenvarchar(20),@IntoTimedatetime
as
updateRoomStatussetStatus='有人'
whereRoomNo=@RoomNo
if(selectCOUNT(*)fromCustomerwhereCuNo=@CuNo)=0
begin
insertintoCustomervalues(@CuNo,@CuCard,@CuName,@CuSex,@CoPhone)
end
else
begin
updateCustomersetCuCard=@CuCard,CuName=@CuName,CuSex=@CuSex,CuPhone=@CoPhone
whereCuNo=@CuNo
end
insertintoRoomOperation
values(@CuNo,@RoomNO,@IntoTime,@CuCard)
根据姓名信息查询房客具体信息的存储过程的建立
createprocp_Customer-
@CuNamenvarchar(10)='%'
as
select*fromCustomer
whereCuNamelike@CuName+'%'
根据房间号查询房间入住信息的存储过程的建立
createprocp_GetCustomer
@RoomNonchar(6)
as
selectCustomer.CuName,Customer.CuCard,Customer.CuPhone,Customer.Cu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 酒店客房 管理 系统