数据库酒店客房管理系统Word格式.docx
- 文档编号:17028639
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:27
- 大小:407.03KB
数据库酒店客房管理系统Word格式.docx
《数据库酒店客房管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《数据库酒店客房管理系统Word格式.docx(27页珍藏版)》请在冰豆网上搜索。
客房业务信息(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
房间号
DI-05
CuPhone
房客电话
NVARCHAR(20)
电话
DI-06
CuCard
房客身份证
身份证
DI-07
TypeNo
房间类型号
类型号
DI-08
RoomFloor
房间楼层
位置
DI-09
RoomStatus
房间状态
状态
DI-10
TypeName
房间类型名称
类型名
DI-11
TypeArea
房间面积
面积
DI-12
TypePrice
房间价钱
INT
价钱
DI-13
Descripiption
房间描述
描述
DI-14
Price
房客消费
消费
DI-15
IntoTime
入住时间
DATETIME
DI-16
OutTime
退房时间
数据结构,如表2所示。
表2数据结构列表
数据结构编号
数据结构名
数据结构含义
组成
DS-1
Customer
房客信息
CuNo,CuName,CuPhone,CuSex,CuCard
DS-2
Room
房间信息
RoomNo,TypeNo,
RoomFloor,
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,
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图向关系模型的转化如下:
(RoomNo,Status)
(注:
标有直线下划线的为主属性,标有波浪线下划线的是外键属性)
(2)模型优化
第一范式要求每一列的项不可分割,酒店管理系统的六个表都满足了1NF;
简单理解,第二范式要求每个表所描述的是一件事,例如在Room表中如果加上房间状态Status,则Room表就不满足2NF了,它包括了房间信息和房间是否有房客入住的信息两个事件,所以就有了RoomStatus表;
第三范式要求,每一项都不传递依赖,如果Room表中再加上房间类型名,则TypeName通过Room中的TypeNo传递依赖于RoomNo,所以有了RoomType表。
现在六张表都达到了3NF。
(3)数据库模式定义
根据分析,本数据库共创建了6个表,如表3~表8所示
表3房客信息表
列名
数据类型
可否为空
说明
NCHAR
NOTNULL
房客编号
NVARCHAR
房客姓名
房客性别
电话
身份证
表4房间信息表
房间号
类型号
位置
Description
描述
表5房间类型信息表
NVARCHAR
类型名
面积
INT
价钱
表6客房业务表
NCHAR
DATETIME
入住时间
CuCard
表7业务记录表
CuNo
姓名
INT
消费金额
IntoTime
DATETIME
OutTime
退房时间
表8房间状态表
RoomNo
Status
状态
(4)用户子模式定义,如表9~12。
表9房间基本信息视图
类型号
表10退房房客基本信息视图
表11空房间基本信息视图
表12房客基本信息视图
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),--姓名
RoomNoNCHAR(6),--房间号
Priceint,--消费金额
IntoTimeDATETIME,--入住时间
OutTimeDATETIME,--退房时间
PRIMARYKEY(IntoTime,RoomNo)
客房业务基本信息表的建立
CREATETABLERoomOperation(
CuCardNVARCHAR(20)UNIQUENOTNULL--身份证
房间状态基本信息表的建立
CREATETABLERoomStatus(
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(房间号,类型,位置,价钱)
selectRoom.RoomNo,TypeName,RoomFloor,TypePrice
fromRoom,RoomStatus,RoomType
whereStatus='
未住'
andRoom.RoomNo=RoomStatus.RoomNoandRoom.TypeNo=RoomType.TypeNo
用于查询房客基本信息的视图
createviewShowCustomerview(姓名,性别,身份证,电话)
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)='
insertintoRoomvalues(@RoomNo,@TypeNo,@RoomFloor,@Description)
insertintoRoomStatusvalues(@RoomNo,@Status)
根据房间类型获取未住房间信息的存储过程的建立:
createprocp_ShowRoom
@TypeNonchar(6),@Statusnvarchar(6)='
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)
selectRoom.RoomNo,RoomFloor,Description,TypeName,TypeArea,TypePrice
whereRoom.TypeNo=RoomType.TypeNoandRoom.RoomNo=@RoomNo
新的房客入住时的存储过程的建立
createprocp_AddCustomer
@CuNonchar(6),@RoomNOnchar(6),@CuNamenvarchar(10),@CuSexnchar
(2),@CuCardnvarchar(20),@CoPhonenvarchar(20),@IntoTimedatetime
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)='
%'
select*fromCu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 酒店客房 管理 系统