数据库课程设计(酒店客房管理系统)论文

更新时间:2024-06-19 06:17:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

信息工程学院

《数据库原理与应用》课程设计论文

题 目:酒店客房管理系统数据库设计

学 号: 专业班级: 姓 名: 指导老师: 完成日期:

09205039 信管052 郑芬 杨丽丽 二零零八年一月

摘 要

随着中国经济的不断发展和旅游业的飞速发展,酒店业随之快速发展,酒店越来越多,人们的要求越来越高,酒店客房管理业务越来越广泛,而传统的酒店客房管理单据繁琐,难以及时整理,利润无法及时统计,管理层无法实时查询营业情况和客房状态,工作效率底,给顾客带来不便。所以在激烈的竞争中,酒店只有不断完善自身的管理手段和方法,提高自身的服务水平,才能得到充足和健康的发展。因此,建立酒店客房管理系统成为当务之急。本文采用结构化分析和设计方法,运用业务流程图,数据流程图和E-R图等工具实现酒店客房管理系统的分析和设计。此系统很好的解决了传统客房客房管理的不足,它由客房预定退订模块、入住模块、换房模块、退房及财务汇总模块组成,能帮助酒店管理人员快速及时的掌握客房信息,提高工作效率,方便顾客。 关键字:酒店客房管理;数据库系统;查询

目 录

1引言 .................................................................................................................................................................... 1 2 需求分析阶段..................................................................................................................................................... 2 2.1需求分析阶段的目标................................................................................................................................... 2 2.2需求分析阶段的任务................................................................................................................................... 2 2.2.1 处理对象: .......................................................................................................................................... 2 2.2.2处理功能及要求: ............................................................................................................................... 2 2.3 需求分析阶段成果 ...................................................................................................................................... 3 2.3.1 体会与收获 .......................................................................................................................................... 3 2.3.2 酒店客房管理系统业务流程图和数据流图(见附录1) ................................................................ 3 2.3.3 酒店客房管理系统数据字典............................................................................................................... 3 3 概念设计阶段..................................................................................................................................................... 4 3.1 概念设计阶段的任务和目标 ...................................................................................................................... 4 3.2 阶段结果 ...................................................................................................................................................... 4 4 逻辑设计阶段..................................................................................................................................................... 6 4.1 逻辑设计的任务和目标 .............................................................................................................................. 6 4.2 数据组织 ...................................................................................................................................................... 6 4.2.1 将E-R图转换为关系模型 .................................................................................................................. 6 4.2.2 模型优化 .............................................................................................................................................. 7 4.2.3数据库模式定义 ................................................................................................................................... 7 4.2.4用户子模式定义 ................................................................................................................................... 7 5物理设计阶段 ..................................................................................................................................................... 8 5.1物理设计阶段的目标与任务 ....................................................................................................................... 8 5.2系统功能模块图 .......................................................................................................................................... 8 5.3程序流程图 .................................................................................................................................................. 8 6 实施阶段 .......................................................................................................................................................... 10 6.1 建立数据库、数据表、视图 .................................................................................................................... 10 6.1.1 建立数据库 ........................................................................................................................................ 10 6.1.2 建立数据表(具体SQL语句见附录4.1) ...................................................................................... 10 6.1.3建立视图(具体SQL语句见附录4.2)........................................................................................... 10 6.1.4建立存储过程(具体SQL语句见附录4.3) ................................................................................... 10 6.1.5建立触发器(具体SQL语句见附录4.4) ........................................................................................ 11 6.2数据入库 ..................................................................................................................................................... 11

I

7系统调试、测试................................................................................................................................................. 11 8心得体会 ............................................................................................................................................................ 11 9存在的问题及建议............................................................................................................................................ 12 致谢 ...................................................................................................................................................................... 13 参考文献 .............................................................................................................................................................. 13 附录1 酒店客房管理系统业务流程图和数据流图 .......................................................................................... 14 1.业务流程图 ................................................................................................................................................... 14 2.数据流图 ....................................................................................................................................................... 16 附录2 数据字典.................................................................................................................................................. 20 2.1 数据项 ........................................................................................................................................................ 20 2.2 数据结构 .................................................................................................................................................... 21 2.3 数据处理 .................................................................................................................................................... 21 附录3 数据库模式和用户子模式定义 .............................................................................................................. 24 3.1数据库模式定义 ........................................................................................................................................ 24 3.2用户子模式定义 ........................................................................................................................................ 25 附录4 SQL语句.................................................................................................................................................. 27 4.1 建立数据表SQL语句 .............................................................................................................................. 27 4.2建立视图SQL语句 ................................................................................................................................... 29 4.3建立存储过程SQL语句 ........................................................................................................................... 30 4.4建立触发器SQL语句 ................................................................................................................................ 33 附录5 数据查看和存储过程功能的验证 .......................................................................................................... 37 5.1基本表和视图视图查看验证 ..................................................................................................................... 37 5.2 存储过程验证 ............................................................................................................................................ 39 5.3 触发器验证 ................................................................................................................................................ 41

II

2005级信管专业2班数据库应用系统课程设计课程论文

1引言

随着全球一体化使酒店客房管理业客源根加丰富多样化,市场更加广阔多渠道的同时,酒店客房管理业更面临着日趋激烈的竞争环境和不断攀升的客户期望,迫使业内人士不断进一步寻求扩大酒店客房销售,改进服务质量,降低管理成本和提升客户满意度的新法宝来增强酒店客房管理业的核心竞争力。其中最有效的手段之一就是大规模应用先进的信息化技术,变革传统意义上的酒店客房竞争方式和经营管理模式以进而赢得新竞争优势。

本文以酒店客房管理系统为例,对客户的要求进行详细询问,调查酒店的组织机构,各部门的业务活动。并在上述活动后明确用户对系统的信息要求、处理要求、安全性及完整要求。明确系统边界后进行详尽的需求分析后,将系统划分为订房退订模块、入住模块、换房模块、退房模块、财务统计模块。按照数据库设计流程用业务流程图、数据流程图,数据字典详尽确切的表达客房管理的工作流程。进行概念模型设计,逻辑模型设计,物理设计,建立一个能满足客房管理要求的方便实用的数据库系统。

1

2005级信管专业2班数据库应用系统课程设计课程论文

2 需求分析阶段

需求分析简单地说就是分析用户的要求。需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后米娜各个阶段的设计,并影响到设计结果是否合理和使用。

2.1需求分析阶段的目标

1.了解酒店客房管理的基本内容;

2.综合的理解酒店客房管理各层管理人员的部同需求; 3.了解酒店客房管理的基本业务流程;

4.了解酒店客房人工管理模式与信息系统的工作概况,以及它们之间的区别;

5.通过调查和与酒店客房管理人员的交流,了解用户对酒店客房管理系统的业务要求,安全性和完整性要求;

2.2需求分析阶段的任务 2.2.1 处理对象:

系统的处理对象是顾客的预订和退订信息管理、顾客的入住信息管理、顾客的换房信息管理、顾客的退房信息管理和财务统计信息管理。

系统的处理对象涉及以下几个方面的信息:

顾客基本信息(Guest):顾客编号,顾客姓名,顾客性别,顾客身份证号,顾客电话,顾客地址,顾客预交款,顾客积分,顾客的折扣度,顾客余额。

客房基本信息(RoomInfo):客房编号,客房类型,客房价格,客房楼层,客房朝向。 消费项目基本信息(Atariff):消费项目编号,消费项目名称,消费项目价格。

客房物品基本信息(RoGoInfo):客房物品编号,客房物品名称,客房物品原价,客房物品赔偿倍数。

客房状态信息(RoomState):客房编号,顾客编号,入住时间,退房时间,预订入住时间,预订退房时间,入住价格,客房状态修改时间,标志位。

消费信息(Consumelist):顾客编号,消费项目编号,消费项目数量,消费时间。

物品损坏信息(GoAmInfo):顾客编号,客房物品编号,客房编号,损坏物品个数,损坏时间。

2.2.2处理功能及要求:

1.能够存储一定数量的顾客信息,并方便有效的进行相应的顾客数据操作和管理,这主要包括: 1)顾客信息的录入,删除和修改。 2)顾客信息的关键字检索查询。

2.能够对顾客的预订退订信息,入住信息,换房信息,退房信息,消费信息和损坏物品信息进

2

2005级信管专业2班数据库应用系统课程设计课程论文

行相应的操作,这主要包括:

1)顾客预订退订,入住,换房,退房的登记,删除及修改(即对房态信息的登记,删除和修改)。

2)顾客消费信息的登记,删除及修改。 3)顾客损坏物品的登记,删除及修改。 4)顾客消费信息的汇总。

3.能够提供一定的安全机制,提供数据信息授权访问,修改和删除,防止随意查询,修改及删除。

4.对查询,统计的结果能够列表显示。

2.3 需求分析阶段成果 2.3.1 体会与收获

系统需求分析主要是通过对周边的酒店客房管理人员咨询,请教,了解酒店客房管理的规则和运行机制,并通过上网搜索相关酒店客房管理系统的知识,了解酒店客房管理的现状,以及在管理过程中存在的一些问题。由于以前没有接触过酒店管理业务,开始总是不知道哪些业务应该是我们了解的重点。在绘制业务流程图和数据流程图时,遇到很多问题,发现很多烤炉不周到的地方,反反复复的重新考虑,重新分析和完善,才逐步把业务弄清楚,最终顺利的完成了需求分析阶段的任务。

2.3.2 酒店客房管理系统业务流程图和数据流图(见附录1)

本文从酒店客房管理系统的业务为着手点,分别画了预订退订业务流程图、入住业务流程图、换房业务流程图、退房业务流程图。根据业务流程图,画了个业务流程图相对应的数据流图。

2.3.3 酒店客房管理系统数据字典

数据字典是体统中各类数据描述的集合,是进行详细的数据手机和数九分析所获得的主要成果。数据字典在数据库设计中占有很重要的地位。数据字典通常包括数据项、数据结构、数据流、数据存储、处理过程和外部实体6个部分。

数据项是不可再分的数据单位。 数据结构反映了数据之间的组合关系。 数据流是数据结构在系统内传输的路径。

数据存储是数据结构停留或保存的地方也是数据流的来源和去向之一。

处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典是需要描述处理过程的说明性信息。

本文中包括37个数据项(见附录2),11个数据结构(见附录2),13个处理过程(见附录3).

3

2005级信管专业2班数据库应用系统课程设计课程论文

3 概念设计阶段

将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。它是整个数据库设计的关键。

3.1 概念设计阶段的任务和目标

(1)选择底层数据流为切入点,通常选择实际系统中的子系统;

(2)设计分E-R图,即各子模块的E-R图;

(3)生成初步E-R图,通过合并方法,做到各子系统实体、属性、联系统一; (4)生成全局E-R图,通过消除冲突等方面。

在本酒店客房管理系统中,从第二层数据流程图下手,分析个第二层数据流程图和数据字典,知道整个系统的功能围绕“顾客”、“客房”和“消费”的处理。根据尸体与属性间的两条准则:○1作为“属性”,不能再具有需要描述的性质。○2“属性”不能与其他实体具有联系。数据流程图2.8、图2.9、图2.10、图2.11可综合成预订退订、入住、换房和退房的分E-R图3.1,数据流程图2.12可抽象为分E-R图3.2.然后采用逐步集成的方法将各分E-R图合并,消除不必要的冗余和冲突后生成了基本E-R图3.3.

3.2 阶段结果

(1)根据不同的对象,从第二层数据流程图入手,分别画出各分E-R图: (a)从数据流图图2.8、图2.9、图2.10和图2.11抽象出的E-R图:

图3.1 分E-R图1 4

2005级信管专业2班数据库应用系统课程设计课程论文

(c)从分E-R图图3.1和图3.2经消除冲突和冗余合成的总E-R图:

(b)从数据流图图2.12抽象出的E-R图:

图3.2 分E-R图2 图3.3 全局E-R图 注:因为排版原因将图3.2和图3.3换位子; (2)各E-R图各实体的属性如下所示:

顾客:Guest(Gno,Gname,Gsex,Gid,Gtel,Gaddress,Account,Ggrade ,discount,balance)

客房基本信息:RoomInfo(Rno,Rtype,Rprice,Rfloor,Toward) 消费项目:Atariff(Atno,Atname,Atprice)

客房物品信息:RoGoInfo(Goodsno,Goodsname,Oprice,Dmultiple) 各E-R图各联系的属性如下所示: 预订:Reserve(Stime1,Rtime, Rltime) 退订:Back(Stime2)

入住:Into(Stime3,Atime,Ltime) 换房:Change(Stime4) 退房:Return(Stime5)

消费:Consumelist(Amount,Wtime) 物品赔偿单 GoAmInfo(Dnum,Amendstime)

5

2005级信管专业2班数据库应用系统课程设计课程论文

4 逻辑设计阶段

4.1 逻辑设计的任务和目标

以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。

4.2 数据组织

4.2.1 将E-R图转换为关系模型

实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:

一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。

一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合 具有相同码的关系模式可合并。

由于顾客与客房的联系方式为1:n(一对多),可以将其之间的联系与n端实体客房合并,也可以独立作为一种关系模式,我们选择将其作为独立的关系模式。由于顾客与客房物品,消费项目的联系方式为n:n(多对多),可以将其之间的联系转化为独立的关系模式,具体的基本E-R图向关系模型的转化如下:

顾客:Guest(Gno,Gname,Gsex,Gid,Gtel,Gaddress,Account,Ggrade ,discount,balance) 客房基本信息:RoomInfo(Rno,Rtype,Rprice,Rfloor,Toward) 消费项目:Atariff(Atno,Atname,Atprice)

客房物品信息:RoGoInfo(Goodsno,Rno,Goodsname,Oprice,Dmultiple) 预订:Reserve(Gno,Rno,Stime1,Rtime, Rltime) 退订:Back(Gno,Rno,Stime2) 入住:Into(Gno,Rno,Stime3,Atime,Ltime) 换房:Change(Gno,Rno,Stime4) 退房:Return(Gno,Rno,Stime5) 消费:Consumelist(Atno,Gno,Amount,Wtime)

6

关系的属性,而关系的码为各实体码的组合。

2005级信管专业2班数据库应用系统课程设计课程论文

物品赔偿单 GoAmInfo(Goodsno,Gno,Rno, Amendstime ,Dnum) (注:画双线的为主码)

4.2.2 模型优化

关系模式Guest,RoomInfo,Atariff,RoGoInfo,Reserve,Back,Into,Change,Return,Consumelist,GoAmInfo不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,已经达到了3NF,但是关系模式Reserve,Back,Into,Change,Return的主码都相同,如果用5个关系模式表示这几个关系,有很大的冗余,所以将5个关系模式优化为关系模式:

房态基本表:RoomState(Gno,Rno,Atime, Ltime,Rtime, Rltime,IntoPrice,Days,Stime,flag),其中flag为标志位,表示客房的状态为预订,入住,空。

4.2.3数据库模式定义

数据库的模式定义包括三个方面: 1. 数据的逻辑结构; 2. 数据之间的联系;

3. 数据有关的完整性约束、安全性要求。

表4-1 数据库模式汇总

编号 T-1 T-2 T-3 T-4 T-5 T-6 T-7

数据库模式

说明

顾客基本信息(详见附录3) 客房基本信息(详见附录3) 消费项目基本信息(详见附录3) 客房物品基本信息(详见附录3) 房态基本信息(详见附录3) 消费基本信息(详见附录3) 物品赔偿信息(详见附录3)

Guest RoomInfo Atariff RoGoInfo RoomState Consumelist GoAmInfo

4.2.4用户子模式定义

将概念模型转换为全局逻辑模型后,还应该根据局部应用的需要,结合具体DBMS的特点,设计用户的外模式。用户模式注重考虑用户的习惯与方便。包括:

(1) 使用更符合用户习惯的别名。

(2) 可以对不同级别的用户定义不同的View,以保证系统的安全性。 (3) 简化用户对系统的使用。

表4-2 用户子模式定义

编号 V-1 V-2 V-3

用户子模式(View)作用(共性:提供数据保密和安全保护机制 BookView IntoView EmRoView

便于查询预定信息(详见附录3) 便于查询入住信息(详见附录3) 便于查询空房信息(详见附录3)

7

2005级信管专业2班数据库应用系统课程设计课程论文

5物理设计阶段

5.1物理设计阶段的目标与任务

数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:

(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构; (2)对物理结构进行评价,评价的重点是时间和空间效率。

5.2系统功能模块图

本系统的功能主要包括如图几个方面:

5.3程序流程图

管理信息系统处理方式的合理选择,是一个处理过程的设计问题。选择处理方式实际上就是根据系统的任务、目标和环境条件,合理选择信息活动的形式及其具体方法。 (1) 顾客基本信息的查询和更新:

描述顾客信息的查询和更新(插入、删除和更新)的过程。

图5.1 酒店管理系统功能模块图 8

2005级信管专业2班数据库应用系统课程设计课程论文

图5.3 客房物品、娱乐信息查询和更新程序流程图 图5.2 顾客信息查询和更新程序流程图 (2)客房物品、娱乐信息查询和更新(插入,删除和更新)程序流程图:

9

2005级信管专业2班数据库应用系统课程设计课程论文

6 实施阶段

6.1 建立数据库、数据表、视图 6.1.1 建立数据库

数据库的建立

Create database Hotelmanagement

6.1.2 建立数据表(具体SQL语句见附录4.1) 6.1.3建立视图(具体SQL语句见附录4.2) 6.1.4建立存储过程(具体SQL语句见附录4.3)

本系统建立了13个存储过程:

表6-1 存储过程汇总表

编号 P-1 P-2 P-3 P-4 P-5 P-6 P-7 P-8 P-9 P-10 P-11 P-12 P-13

存储过程名称 lsqSearchDate lsqSearchEmpty lsqWatchGuest lsqSearchGuest lsqConsumeList lsqAddRoomGoods lsqAddAmusement lsqAddGuest lsqMoney lsqBook lsqInto lsqInsertAmends lsqDeleteRoom

定义

详见(附录4.3) 详见(附录4.3) 详见(附录4.3) 详见(附录4.3) 详见(附录4.3) 详见(附录4.3) 详见(附录4.3) 详见(附录4.3) 详见(附录4.3) 详见(附录4.3) 详见(附录4.3) 详见(附录4.3) 详见(附录4.3)

作用

查看某一天各种娱乐项目及其总量 查看某一层楼的空房间 查看顾客信息

查看某一位顾客的消费及余额情况 详见(附录4.3) 插入新的客房物品信息 插入新的娱乐项目 插入新顾客信息 顾客付费 顾客订房 顾客入住

插入新的物品赔偿信息 退房

10

2005级信管专业2班数据库应用系统课程设计课程论文

6.1.5建立触发器(具体SQL语句见附录4.4)

表6-2 触发器汇总

编号

触发器名称 定义

作用

插入房态信息),触发guest表,根据顾客

Tr-1

tri_discount tri_grade_balance tri_delete tri_grade1 tri_AmendsMoney

详见(附录4.4) 积分计算顾客新的折扣度

当修改房态信息(即插入入住信息)时,触发guest表,计算新积分及余额

删除客房信息(即退房)时,触发guest表,把顾客的预付款和余额设为0

当插入新的娱乐消费信息时,触发guest表,从新计算顾客积分和余额

当插入新的物品赔偿信息时,触发guest表,从新计算顾客积分和余额

Tr-2 详见(附录4.4)

Tr-3 详见(附录4.4)

Tr-4 详见(附录4.4)

Tr-5 详见(附录4.4)

6.2数据入库

系统包括顾客预订信息管理、客房入住信息管理、顾客换房信息管理、顾客退房信息管理、财务管理等五大功能模块,共有7张基本表,采用事先在Excel中录入数据,然后使用SQL Server 2000数据导入/导出向导功能,直接将数据导入到相应的基本表中。

7系统调试、测试

对该酒店客房管理系统进行测试,验证每个功能是否符合要求,具体的测试如下: 1 基本表和视图视图查看(见附录5.1) 2 检验各个存储过程(见附录5.2) 3 检验各个触发器(见附录5.3)

8心得体会

1. 加深了对数据库设计有关知识的理解。之前对于数据库设计各阶段的理解不透彻,很多概念都很模糊。通过本次课程设计,我进一步了解了书本上的知识,并且亲身体验了数据库设计的各个环节。了解了数据库设计的流程。感触最深的是需求分析阶段和概念模型设计阶段。需求分析阶段是整个数据库设计的基础,这个阶段直接影响到后面各个阶段的设计。由于对业务不是十分精通,在这个阶段返工了好几次,起先以部门为基础画业务流程图,可是发现错了,然后以业务为基础画业务流程图。反反复复的修改。如果这个阶段做的不好,后面就无法继续进行

11

2005级信管专业2班数据库应用系统课程设计课程论文

下去。概念模型设计阶段,最重要的是从数据流图中抽象出实体,并且要考虑冲突的发生。 2. 更深入的了解并掌握了SQL SERVER 2000的功能。由于在有关存储过程和触发器的知识掌握的不是太好,实习的时候也只是按实习指导书上的代码进行编写,并不了解触发器的真正原理,但是在此次课程设计中,大量的用到触发器和存储过程,了解了它们的功能和原理。 3. 更加了解了SQL语句,在酒店客房管理系统的实施阶段,因为有大量的功能要通过触发器、存储过程来实现,所以锻炼了自己的编程能力。

4. 这次课程设计采取两人一组的方式,锻炼了我们相互的合作精神,让我们亲身体验到合作的重要性。在做系统时,每个人的不同的想法组合起来,可以减少系统的漏洞。同时,学习同伴在编程序中的好的习惯。

9存在的问题及建议

这次课程设计,在正式开始前我们就着手进行了,但是因为对业务的不了解性,虽然利用元旦三天假期做需求分析,可是在真正的开始课程设计的时候,发现需求分析做的很不好,存在很多的问题。所以重新修改需求分析,延误了进度。希望老师在实习前对我们进行辅导,让我们了解应该从哪一方面着手做需求分析,哪里是切入点。

12

2005级信管专业2班数据库应用系统课程设计课程论文

致谢

本次数据库课程设计的整个过程中,指导教师杨晓辉老师、蔚继承老师对我们细心的指导和关怀帮助我们克服了很多困难,同时陈勇老师、也给予了我很大的帮助。在此表示忠心的感谢!我这次能顺利完成课程设计任务,离不开老师们的关怀和指导。他们丰富的经验和知识不仅帮助我完成了课程设计,还教会了我很多处理问题的方法和做事的道理。

同时也感谢我的搭档丁亮同学和其他帮助过我的同学,是他们在我遇到问题的时候,停下自己的工作,帮我分析问题的原因,帮我找到解决的办法。是他们在我想不明某些过程的时候,给我提示。是他们在交流的时候,指出我的系统的不足之处,让我对系统不断的完善。

参考文献

[1] 萨师煊 王珊,数据库系统概论(第三版),北京:高教出版社,2000 [2] 萨师煊 王珊,数据库系统概论(第四版),北京:高教出版社,2006 [3] 李书琴 杨丽丽,数据库原理与应用实习指导书,信息工程学院,2007

[4] 姚巍,Visual Basic数据库开发及工程实例,北京:人民邮电出版社,2003 [5]高春艳 李俊民 刘彬彬,Visual Basic数据库系统开发案例精选,北京:人民邮电出版社,2006

13

2005级信管专业2班数据库应用系统课程设计课程论文

附录1 酒店客房管理系统业务流程图和数据流图

1.业务流程图

(1)预订退订业务流程图

(2)入住业务流程图

(3)退房业务流程图

图1.3 退房业务流程图 图1.2 入住业务流程图 图1.1 预订退订业务流程图 14

2005级信管专业2班数据库应用系统课程设计课程论文

(4)换房业务流程图

2.3.3 酒店客房管理系统数据流程图

(5)财务统计业务流程图

图1.5 财务统计业务流程图 图1.4 换房业务流程图 15

2005级信管专业2班数据库应用系统课程设计课程论文

2.数据流图

(1)顶层数据流图

(2)第一层数据流图

图1.6 顶层数据流图

16

图1.7 第一层数据流图

2005级信管专业2班数据库应用系统课程设计课程论文

(3)预订退订数据流

(4)换房数据流图

图1.8 预订退订数据流图

图1.9 换房数据流图 17

2005级信管专业2班数据库应用系统课程设计课程论文

(5)入住数据流图

图1.10 入住数据流图

(6)财务统计数据流图

图1.11 财务统计数据流图 18

2005级信管专业2班数据库应用系统课程设计课程论文

(7)退房数据流图

19

图1.12 退房数据流图 2005级信管专业2班数据库应用系统课程设计课程论文

附录2 数据字典

2.1 数据项

表2-1 数据项表

数据相编号 数据项名称 数据项别名 数据项类型 长度 取之范围

备注

Dl-1 Gno Dl-2 Gname Dl-3 Gsex Dl-4 Gid Dl-5 Gtel Dl-6 Gaddress Dl-7 Ggrade Dl-8 Account Dl-9 grade Dl-10 discount Dl-11 Goodsno Dl-12 Goodsname Dl-13 Oprice Dl-14 Dmultiple Dl-15 Atno Dl-16 Atname Dl-17 Atprice Dl-18 Rno Dl-19 Rtype Dl-20 Rprice Dl-21 Floor Dl-22 Toward Dl-24 Atime Dl-25 Rtime Dl-26 Ltime Dl-27 Tntoprice Dl-28 Stime1 Dl-29

Amoney

顾客编号 顾客姓名 顾客性别 顾客身份证号 顾客电话 顾客地址 顾客积分 预交款 积分范围 折扣 客房物品编号 客房物品名称 客房物品原价 赔偿倍数 消费项目编号 消费项目名称 消费项目单价 客房编号 客房类型 客房单价 客房楼层 客房朝向 入住时间 预订时间 退房时间 入住价格 预订房态修改时间 消费项目花费

Char Char Char Char Char Char int float int float Char Char float float Char Char float Char Char float Int Char datetime datetime datetime float datetime float

20

20 20

2 “女”,“男”

18 11 20 大于等于1 0.80,0.85,0.90,0.95

20 20 20 20 20 20 10

打折额度

2005级信管专业2班数据库应用系统课程设计课程论文

数据相编号 数据项名称 Dl-30 Dl-31 Dl-32 Dl-33 Dl-34 Dl-35 Dl-36 Dl-37

Dmoney balance Amount Dnum Stime2 Stime3 Stime4 Stime5

数据项别名 物品损坏费 余额 消费项目个数 损坏物品个数 退订修改房态时间 入住修改房态时间 换房修改房态时间 退房修改房态时间

数据项类型 float float Int Int datetime datetime datetime datetime

长度

取之范围

备注

2.2 数据结构

表2.2 数据结构

数据结构编号

数据结构名

数据结构含义 数据结构组成

DS-1 guest 顾客信息 Gno,Gname,Gsex,Gid,Gtel,Gaddress,Account,balance,grade,discount

DS-2 DS-3 DS-4 DS-5 DS-6 DS-7 DS-8 DS-9 DS-10 DS-11

Into reserve return goods Amuse RoomType RoomState consum Amuse GoodsD

入住信息 预订信息 退订信息

DS-1+DS-8 DS-1+DS-8 DS-1+DS-8

客房物品信息 Goodsno,Goodsname,Oprice,Dmultiple 娱乐价目表 客房信息 房态信息 消费清单 顾客消费单 物品损坏单

Atno,Atname,Atprice

Rno,Rtype,Rprice,Floor,Toward

Rno,Atime,Rtime,RLtime,Ltime,Gno,Intoprice,Stime Cono,Gno,account,balance,Amoney,Dmoney,Cotime DS-6+DS-1 DS-5+DS-1

2.3 数据处理

21

2005级信管专业2班数据库应用系统课程设计课程论文

表2.3 处理过程

处理逻辑编号 处理逻辑名称 简述 前台核对是否有满足顾客要求的

输入的数据流 顾客预订数据,房态信息,客房类型

处理

根据客房类型和房态信息,核对是否有满足顾客要求的客房并反馈给顾客

输出的数据流 满足要求的顾客信息和顾客信息.

P1.1 核对客户要求

客房

将顾客分配到满

P1.2

预订登记

足要求的客房,在前台记录

P1.3

退订登记

对顾客退订处理

满足要求的顾客信息和客房信息

根据满足要求的信息,办理登记,并修改客房状态

预订单,将预订单存档并反馈给客户

顾客的退订数据 根据顾客的退订信息,客房状态

房态信息,根据房态信息更新房态信息 更改后的房态信息,新的入住记录 满足/不满足信息,查询余额要求

P2.1 入住登记

前台对已定房顾客进行登记 查看酒店的空客

顾客给出的预定信息

顾客换房要求

办理入住手续,修改房态信息

根据客户的要求,查看是否有满足客户要求的空客房

P3.1 核对客户要求 房是否满足客户要求

查询余额请求

根据换房顾客的消费清单,查询余额是否能满足所换房价格

余额足/不足信息

P3.2 查询余额

对顾客的消费余额进行查询

对换房者进行换

P3.3

登记换房

房登记 对换房顾客填写需款通知 前台对顾客的退

P4.1

退房登记

房进行确认 根据财务部的顾

P4.2

打印消费清单

客消费汇总,打印顾客消费情况 根据顾客的消费项目和客房部拥

P5.1

统计消费项目

有的消费项目核对顾客的消费情况

汇总顾客消费项

对顾客的各种花费进行汇总

余额足够信息 对换房者进行登记,房态信息 并修改房态信息

P3.4 开续款通知

足额不足信息 填写续款通知 续款通知单

顾客退房数据 根据顾客的退房信息,更新房态信息

房态信息,将新的房态信息存档 消费清单,反馈给顾客其消费情况

消费数据,来源财务部

根据财务部的顾客消费汇总,打印消费清单,反馈给顾客

顾客的消费项目,客房部拥有的消费项目

根据客房部拥有的消费项目统计顾客的消费项目

消费项目记录,传递给财务部

顾客的消费,损坏物品的赔偿,顾客信息及会员信息

对顾客的所有经费进行汇总如是会员进行优惠

一位顾客的所有花费

P5.2

22

2005级信管专业2班数据库应用系统课程设计课程论文

处理逻辑编号 处理逻辑名称 简述 统计客房物品的

输入的数据流 客房物品信息

处理

根据物品清单检查是否有损坏,如有则对损坏者进行索赔

输出的数据流 损坏物品赔偿信息

P5.3 统计损坏物品

损坏情况

汇总酒店的营业

P5.4

酒店营业额汇总 额

顾客消费信息 根据顾客的消费情况,对酒店的营业额进行汇总

酒店营业额

23

2005级信管专业2班数据库应用系统课程设计课程论文

附录3 数据库模式和用户子模式定义

3.1数据库模式定义

表3-1 顾客基本信息

列名 Gno Gname Gsex Gid Gtel Gaddress Account Grade discount balance

数据类型 char(20) char(20) char(2) char(18) char(11) char(20) float int float float

可否为空 not null not null not null not null

not null

说明 顾客编号 顾客姓名 顾客性别 顾客身份证 顾客电话 顾客地址 顾客预付金额 顾客积分 顾客的折扣率 顾客余额

表3-2 房间基本信息

列名 Rno Rtype Rprice Rfloor Toward

数据类型 char(10) char(20) float smallint char(10)

可否为空 not null not null not null not null not null

说明 房间编号 房间类型 房间价格 房间楼层 房间朝向

表3-3 房间物品信息

列名 Goodsno Goodsname Oprice Dmultiple

数据类型 char(20) char(20) float float

可否为空 not null not null not null not null

说明 物品编号 物品名字 物品价格 物品索赔倍数

24

2005级信管专业2班数据库应用系统课程设计课程论文

表3-4 房态信息

列名 Rno Gno Atime Ltime Rtime Rltime IntoPrice Days Stime flag

表3-5娱乐项目信息

列名 Atno Atname Atprice

数据类型 char(20) char(20) float

可否为空 not null not null not null

说明 娱乐项目编号 娱乐项目名称

娱乐项目单价(时间计费或个数计费)

数据类型 char(10) char(20) datetime datetime datetime datetime float int datetime char(1)

可否为空 not null not null

说明 房间号 顾客号 实际入住时间 实际退房时间 预订入住时间 预订退房时间 入住价格 入住天数 修改记录时间 预订入住标志位

表3-6娱乐消费信息

列名 Gno Atno Amount Wtime

数据类型 char(20) char(20) float datetime

可否为空 not null not null

not null

说明 顾客号 商品号 消费数量 消费开始时间

表3-7物品赔偿信息

列名 Gno Rno Goodsno Dnum Amendstime

数据类型 char(20) char(10) char(20) int datetime

可否为空 not null not null not null

Datetime

说明 顾客号 房间号 物品号 损坏个数 损坏时间

3.2用户子模式定义

25

2005级信管专业2班数据库应用系统课程设计课程论文

表3-8 订房视图

列名 Gno Rno Rtype Rfloor Toward IntoPrice Rtime Rltime Days Wtime

数据类型 char(20) char(10) char(20) smallint char(10) float datetime datetime int datetime

可否为空 not null not null not null not null not null not null not null not null not null not null

说明 顾客号 房间号 房间类型 房间楼层 房间朝向 入住价格 入住时间 打算退房时间 居住天数 查看时时间

表3-9 入住视图

列名 Gno Gname Rno Rtype Rfloor Toward IntoPrice Atime Ltime Days Account Wtime

数据类型 char(20) char(20) char(10) char(20) smallint char(10) float datetime datetime int float datetime

可否为空 not null not null not null not null not null not null not null not null not null not null not null not null

说明 顾客号 顾客姓名 房间号 房间类型 房间楼层 房间朝向 入住价格 入住时间 退房时间 入住天数 预付金额 查看时时间

表3-10 空房视图

列名 Rno Rtype Rprice Rfloor Toward

数据类型 char(10) char(20) float int char(10)

可否为空 not null not null not null not null not null

说明 房间号 房间类型 入住价格 房间楼层 房间朝向

26

2005级信管专业2班数据库应用系统课程设计课程论文

附录4 SQL语句

4.1 建立数据表SQL语句

(1)顾客基本信息表的建立: create table guest

( Gno char(20) not null, Gname char(20)not null, Gsex char(20) not null, Gid char(18) unique not null, Gtel char(11), Gaddress char(20), Account float, Grade int,

discount float not null, balance float, primary key (Gno),

check (Account >= 0.0 and Grade>0)

)

(2)客房基本信息表的建立: create table Roominfo

( Rno char(10), Rtype char(20)not null, Rprice float not null, Rfloor smallint not null,

Toward char(10)not null, primary key (Rno),

check (Rfloor between 1 and 100),

check (Toward in('正北','正南','正西','正东','东北','西南','西北','东南')), check (Rtype in('标准1','标准2','豪华1','豪华2','高级1','高级2')), )

(3)房态表的建立: create table RoomState

(Rno char(10), Gno char(20), Atime datetime , Ltime datetime,

27

2005级信管专业2班数据库应用系统课程设计课程论文

Rtime datetime, Rltime datetime, IntoPrice float , Days int , Stime datetime, flag char(1) ,

primary key (Rno,Gno),

foreign key (Rno)references Roominfo(Rno), foreign key (Gno)references guest(Gno), check (flag in('1','2','3')),

)

(4)娱乐项目基本信息表的建立: create table Atariff

( Atno char(20), Atname char(20)not null, Atprice float not null, primary key (Atno), check (Atprice >0.0) )

(5)顾客娱乐消费信息表的建立: create table Consumelist

( Gno char(20), Atno char(20), Amount float,

Wtime datetime not null, primary key(Gno,Atno),

foreign key (Gno)references guest(Gno), foreign key (Atno)references Atariff(Atno) )

(6)客房物品基本信息表的建立: create table RoGoInfo

( Goodsno char(20),

Goodsname char(20)not null, Oprice float not null, Dmultiple float not null, primary key (Goodsno) )

(7)顾客赔偿物品信息表的建立: create table GoAmInfo

(Gno char(20),

28

2005级信管专业2班数据库应用系统课程设计课程论文

Rno char(10), Goodsno char(20), Dnum int ,

Amendstime datetime not null, primary key(Gno,Rno,Goodsno), foreign key (Gno)references guest(Gno), foreign key(Rno)references Roominfo(Rno), foreign key(Goodsno)references RoGoInfo(Goodsno) )

4.2建立视图SQL语句

(1)用于查询预订房信息的视图定义如下:

create view

BookView(Gno,Gname,Rno,Rtype,Rfloor,Toward,IntoPrice,Rtime,Rltime,Days,Stime) as select

RoomState.Gno,Gname,RoomState.Rno,Rtype,Rfloor,Toward,IntoPrice,Rtime,Rltime,Days,Stime from Roominfo,RoomState,guest

where flag='1' and Roominfo.Rno=RoomState.Rno and RoomState.Gno=guest.Gno

(2)用于查询已入住房的试图如下:

create view

IntoView(Gno,Gname,Rno,Rtype,Rfloor,Toward,IntoPrice,Atime,Ltime,Days,Account) as select

RoomState.Gno,Gname,RoomState.Rno,Rtype,Rfloor,Toward,IntoPrice,Atime,Ltime,Days,Account from Roominfo,RoomState,guest

where flag='2' and Roominfo.Rno=RoomState.Rno and RoomState.Gno=guest.Gno

(3)用于查询空房的视图定义如下:

create view

EmRoView(Rno,Rtype,Rprice,Rfloor,Toward) as

select Rno,Rtype,Rprice,Rfloor,Toward from Roominfo

where Rno not in (select Rno From RoomState)

29

2005级信管专业2班数据库应用系统课程设计课程论文

4.3建立存储过程SQL语句

1.lsqSearchDate的定义

create procedure lsqSearchDate @date datetime as

select Atno,sum(Amount) from Consumelist where Wtime=@date group by Atno

2.lsqSearchEmpty的定义

create procedure lsqSearchEmpty @floor int as

select Rno,Rtype,Rprice,Rfloor,Toward from EmRoView where Rfloor=@floor lsqSearchEmpty 2

3.lsqWatchGuest的定义 create procedure lsqWatchGuest as

select Gno,Gname,Gsex,Gid from guest

4.lsqSearchGuest的定义

create procedure lsqSearchGuest @Gno char(20) as begin

select Gno,Gname,Account,balance from guest where Gno=@Gno

select RoomState.Rno,Rtype,IntoPrice from RoomState,Roominfo

where RoomState.Gno=@Gno and RoomState.Rno=Roominfo.Rno select c.Atno,Atname,Amount, Amount*Atprice AmuMoney,Wtime from Consumelist c,Atariff a

where c.Gno=@Gno and c.Atno=a.Atno

30

2005级信管专业2班数据库应用系统课程设计课程论文

selectg.Rno,r.Goodsname,g.Dnum,r.Oprice,r.Dmultiple,Oprice*g.Dnum*r.Dmultiple AmendMoney,g.Amendstime from GoAmInfo g,RoGoInfo r

where g.Gno=@Gno and g.Goodsno=r.Goodsno end

5.lsqConsumeList的定义

CREATE PROCEDURE lsqConsumeList @Consumelist_Gno char(20), @Consumelist_Atno char(20), @Consumelist_Amount float, @Consumelist_wtime datetime as insert

into Consumelist

values(@Consumelist_Gno,@Consumelist_Atno , @Consumelist_Amount ,@Consumelist_wtime ) lsqConsumeList 'G00004','A-KTV-M',2,'2007-1-5' 6.lsqAddRoomGoods的定义 create procedure lsqAddRoomGoods @GDnumber char(20), @GDname char(20), @GDprice float, @GDmultiple float as insert

into RoGoInfo(Goodsno,Goodsname,Oprice,Dmultiple) values(@GDnumber,@GDname,@GDprice,@GDmultiple) 7.lsqAddAmusement的定义 create procedure lsqAddAmusement

@Atno char(20), @Atname char(20), @Atprice float as insert into Atariff

values(@Atno,@Atname,@Atprice)

8.lsqAddGuest的定义

create procedure lsqAddGuest @Gno char(20), @Gname char(20), @Gsex char(20),

31

2005级信管专业2班数据库应用系统课程设计课程论文

@Gid char(20), @discount float as insert

into guest(Gno,Gname,Gsex,Gid,discount) values(@Gno,@Gname,@Gsex,@Gid,@discount)

9.lsqMoney的定义

create procedure lsqMoney @Gno char(20), @Account float as

update guest

set Account=@Account where Gno=@Gno

10.lsqBook的定义

create procedure lsqBook @Rno char(10), @Gno char(20), @Rtime datetime, @Rltime datetime, @Days int, @Stime datetime, @discount float output, @Rprice float output as begin

select @discount=discount from guest where Gno=@Gno select @Rprice=Rprice from Roominfo where Rno=@Rno insert

into RoomState(Rno,Gno,Rtime,Rltime,IntoPrice,Days,Stime,flag)

values(@Rno,@Gno,@Rtime,@Rltime,@discount*@Rprice,@Days,@Stime,'1') end

11.lsqInto的定义

create procedure lsqInto @Rno char(10), @Gno char(20), @Atime datetime, @Ltime datetime, @Days int, @Stime datetime,

32

2005级信管专业2班数据库应用系统课程设计课程论文

@money float as begin update guest set Account=@money where Gno=@Gno update RoomState

set Atime=@Atime,Ltime=@Ltime,Days=@Days,Stime=@Stime,flag='2' where Rno=@Rno and Gno=@Gno end

12.lsqInsertAmends的定义

create procedure lsqInsertAmends @Gno char(20), @Rno char(10), @Goodsno char(20), @Dnum int,

@Amendstime datetime as insert

into GoAmInfo(Gno,Rno,Goodsno,Dnum,Amendstime) values(@Gno,@Rno,@Goodsno,@Dnum,@Amendstime) 13.lsqDeleteRoom的定义

create procedure lsqDeleteRoom @Rno char(10), @Gno char(20) as delete from RoomState

where Rno=@Rno and Gno=@Gno

4.4建立触发器SQl语句

1.当插入订房信息(即插入房态信息),触发guest表,根据顾客积分计算顾客新的折扣度 CREATE TRIGGER tri_discount ON RoomState

FOR insert AS declare @Grade int, @Gno char(20)

33

2005级信管专业2班数据库应用系统课程设计课程论文

select @Gno=Gno from inserted

select @Grade=Grade from guest where Gno=@Gno if (@Grade >= 0 and @Grade<300) begin update guest set discount=1.00 where Gno=@Gno end

else if(@Grade<500 ) begin update guest set discount=0.95 where Gno=@Gno end

else if(@Grade<700) begin update guest set discount=0.90 where Gno=@Gno end

else if (@Grade<1000) begin update guest set discount=0.85 where Gno=@Gno end else begin update guest set discount=0.80

where Gno in(select Gno from inserted) end

2.当修改房态信息(即插入入住信息)时,触发guest表,计算新积分及余额 CREATE TRIGGER tri_grade_balance on RoomState for update as begin declare

@IntoPrice float, @Days int

34

2005级信管专业2班数据库应用系统课程设计课程论文

select @IntoPrice=IntoPrice from RoomState where Rno in(select Rno from inserted ) and Gno in(select Gno from inserted) select @Days=Days from RoomState where Rno in(select Rno from inserted ) and

Gno in(select Gno from inserted) update guest

set balance=Account-@IntoPrice*@Days,grade=grade+@IntoPrice*@Days where Gno in(select Gno from inserted) end

3.删除客房信息(即退房)时,触发guest表,把顾客的预付款和余额设为0 CREATE TRIGGER tri_delete on RoomState for delete as begin update guest

set Account=0,balance=0

where Gno in(select Gno from deleted) end

4.当插入新的娱乐消费信息时,触发guest表,从新计算顾客积分和余额 CREATE TRIGGER tri_grade1 ON Consumelist FOR insert As begin declare @Gno char(20), @Atno char(20), @Amount int, @Atprice float

select @Gno=Gno,@Atno=Atno,@Amount=Amount from inserted select @Atprice=Atprice from Atariff where Atno=@Atno update guest

SET grade=grade+@Atprice*@Amount/10,balance=balance-@Atprice*@Amount where Gno=@Gno END

5.当插入新的物品赔偿信息时,触发孤儿guest表,从新计算顾客积分和余额 CREATE TRIGGER tri_AmendsMoney ON GoAmInfo for insert as begin declare @Gno char(20),

35

2005级信管专业2班数据库应用系统课程设计课程论文

@Goodsno char(20), @Dnum int, @Oprice float, @Dmultiple float

select @Gno=Gno,@Goodsno=Goodsno,@Dnum=Dnum from inserted select @Oprice=Oprice,@Dmultiple=Dmultiple from RoGoInfo

where Goodsno=@Goodsno update guest

set balance=balance-@Oprice*@Dnum*@Dmultiple where @Gno=Gno end

36

本文来源:https://www.bwwdw.com/article/yee3.html

Top