数据库课程设计客房管理系统.docx

上传人:b****6 文档编号:7312847 上传时间:2023-01-22 格式:DOCX 页数:23 大小:548.61KB
下载 相关 举报
数据库课程设计客房管理系统.docx_第1页
第1页 / 共23页
数据库课程设计客房管理系统.docx_第2页
第2页 / 共23页
数据库课程设计客房管理系统.docx_第3页
第3页 / 共23页
数据库课程设计客房管理系统.docx_第4页
第4页 / 共23页
数据库课程设计客房管理系统.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

数据库课程设计客房管理系统.docx

《数据库课程设计客房管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计客房管理系统.docx(23页珍藏版)》请在冰豆网上搜索。

数据库课程设计客房管理系统.docx

数据库课程设计客房管理系统

信息工程学院

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

题目:

客房管理系统数据库设计

 

学号:

09108067

专业班级:

计算机083

姓名:

曹俊

指导老师:

陈勇

完成日期:

2010年1月22日

 

摘要

 

关键字:

客房管理;管理系统;服务。

随着我国经济的迅速发展和假日经济的出现,宾馆酒店业的竞争愈来愈激烈。

要想在竞争中取得优势,必须在经营管理、产品服务等方面提高服务管理意识。

而对对酒店的经营状况去决定行作用的是酒店的管理。

如何利用先进的管理手段,提高酒店的管理水平,是每一家酒店的管理者所面临的重要课题。

简单的服务标准已经不是制胜的锦囊,只有做到最细微之处才有机会让顾客体会到酒店服务的优点,而精准、快捷、周全往往就是最基本的成功要素。

因此,采用全新的计算机网络和管理系统,将成为提高酒店的管理效率,改善服务水准的重要手段之一。

信息与科技在酒店管理与现代化建设中显现出越来越重要的地位。

在某种意义上,酒店客房状态管理方面的信息化与科学化,已成为现代化酒店的重要标志。

1引言

本次数据库实习不要求界面和外部应用程序的设计,只设计数据库部分。

客房管理系统采用SQLserver2000作为数据库后台。

客房管理系统可以实现对客房的科学化、规范化、查询顾客情况、订房信息、以及结算信息等。

有助于提高管理的效率,客房管理系统是根据某宾馆对客房的实际情况进行集中的查询与管理工作,以及提高整个客房管理的工作效率。

2数据库设计

2.1需求设计

2.1.1总体分析

建立客房管理信息系统的必要性已被广大的管理人员所接受和认可,建立客房管理信息系统是为宾馆的管理服务的,其根本米的是要创造客房的经济效益。

然而客房知道接的经济效益的提高应该包括直接的经济效益和间接地经济效益两方面。

客房的直接经济效益是指由于系统的建立是客房的生产经营或客房的管理取得的直接利润收益。

根据一般宾馆的工作流程及环境,以及顾客的要求设计了这个客房管理系统。

这个数据库主要完成房间信息查询,住房信息统计,和账务结算。

其中信息查询用来给顾客查询各种房间类型,房间价格等,住房信息统计用来给客房管理人员查询是否有空房间,有多少空房,哪个顾客需要结账了,等等信息管理,还可以根据数据库储存的资料统计什么样的人订房多,什么时段生意好,哪些服务是大多数顾客所喜爱的等等。

基于这个数据库,可以根据不同的需要对数据库进不同的查询。

2.12业务流程图

根据了解到的情况,了解到了顾客住房的基本流程,根据客房管理的基本流程,从业务流程图基本的功能模块分别用下面图形表示:

根据宾馆实际管理过程和各种操作,由了解到的业务画出业务流程图,本系统的业务流程图如下所示:

2.1.3数据流图

2.1.4数据字典

数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。

数据字典在数据库设计中占有很重要的地位。

数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。

其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。

2.1.4.1数据项定义

数据项是不可在分的数据单位。

下面定义了客房管理系统需要的数据项:

表2.1数据项定义

数据项编号

数据项名称

简述

类型及宽度

I1

Rtype

描述房间的不同类型

char(10)

I2

Rno

表示房间的号码

char(20)

I3

Rstatus

房间的状态(是否有人住)

char(4)

I4

Rprice

描述房间的价格

int

I5

Cno

顾客编号

char(10)

I6

Cname

顾客姓名

char(10)

I7

Cage

顾客年龄

int

I8

Csex

顾客性别

char

(2)

I19

IDno

顾客身份证号码

char(18)

I110

Date

入住时间

datetime

I11

Time

顾客订房天数

int

I12

Sname

服务名称

char(10)

I13

Samount

服务次数(个数)

int

I14

Sprice

每次(个)服务单价

float

2.1.4.2数据结构

数据结构反映了数据之间的组合关系,。

一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。

对数据结构的描述通常包括数据结构名、含义等。

表2-2数据结构

数据结构定义

数据结构名

数据结构含义

组成

DS-1

customer

入住客人信息

Cno,Cname,Csex,Cage,IDno

DS-2

room

房间信息

Rtype,Rno,Rprice,Rstatus

DS-3

information

入住登记表

Cname,Rno,Date,Time,Rtype,IDno

DS-4

Servies

服务清单

Rno,Sname,Samount,Sprice

DS-5

Menu

服务菜单

Sname,Samount,Sprice

2.1.4.3数据流

数据流是数据结构在系统内传输的路径。

对数据流的描述通常包括以下内容:

数据流名、说明、数据流来源、数据流去向、组成等。

表2-3数据流

数据流编号

数据流名称

简述

数据流来源

数据流去向

数据流组成

F1

房间信息表

供用户查询房间信息,选择房间类型

前台服务部

顾客

Rtype,Rno,Rfloor,Rprice,Rstatus

F2

发票

收费凭证

前台服务部

顾客

房间类型,房间价格,发票编号,日期

F3

入住登记表

登记订房客人的信息及房间信息

前台服务部

顾客,后勤服务部

Cname,Cage,Csex,Cno,

Rno,Date,Time

IDno,Rtype

F4

房卡

作为订房、退房凭证,开房门

前台

顾客

Rno,Rfloor

F5

服务菜单

供用户选择相应服务

后勤服务部

顾客

Sname,Samount,Sprice

F6

服务清单

客人选择的服务的信息

顾客

后勤服务部

Rno,Sname,Samount,Sprice

F7

退房信息

某顾客退房登记的信息

前台服务部

存盘

Cname,Rno,Date,Time

2.1.4.4数据存储

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

他可以是手工文档或手工凭单,也可以是计算机文档。

表2-4数据存储

数据存储编号

数据存储名称

简述

数据存储组成

相关处理

S1

入住信息数据

记录住宿信息,包括房间信息和客人信息

Cname,Rno,Date,Time

P1,P2,

P3,P4

S2

登记记录

记录顾客订房的信息

Cname,Rno,Date,Time

IDno,Rtype

P1

2.1.4.5处理过程

处理过程的具体处理逻辑一般是用判定表或判定树来描述。

数据字典中只需要描述处理过程的说明信息,通常包括处理过程编号、名称、说明、输入数据流、输出数据流、处理等。

表2-5处理过程

处理过程编号

处理过程名称

简述

输入的数据流

处理

输出地数据流

P1

更新住房信息

有顾客后,要及时更新住房信息

入住登记表

对住房信息数据进行更新操作

新的住房信息

P2

选择房间

顾客更具需要选择房间类型

房间信息表

选择需要的房间类型

房卡、发票

P3

对该顾客进行相应服务

顾客选择服务,对顾客进行服务

服务菜单

按照顾客所选服务提供服务

服务清单

P4

退房

顾客离开时办理退房结算手续

入住登记表

办理退房结算手续

退房信息

2.2概念设计

将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。

它是整个数据库设计的关键。

2.2.1分E-R图

面对每一个局部应用主义设计分E-R图:

2.2.2总E-R图

各子系统的E-R图设计好以后,下一步就是要将所有的分E-R图综合成一个系统的总E-R图。

多个分E-R图一次集成总E-R图,如下图所示:

在消除各种冲突和不必要的冗余之后,基本E-R图就生成了,下一步就是根据概念结构设计结果来进行逻辑结构设计了。

2.3逻辑设计

概念结构是独立于任何一种数据模型的信息结构。

逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与所选用的DBMS产品所支持的数据模型想符合的逻辑结构。

2.3.1E-R图向关系模型转换

把总E-R图转换成为关系模式,关系的码用下划线标出。

顾客(顾客编号,顾客姓名,顾客身份证号,顾客性别,顾客年龄)

此为顾客实体所对应的关系模式。

房间(房间编号,房间类型,房价状态,房间单价)

此为房间实体所对应的关系模式。

入住登记表(顾客姓名,房间号码,顾客身份证号,入住日期,订房天数,)

此为入住登记表所对应的关系模式,该关系模式已包含了联系“登记”所对应的关系模式。

服务菜单(服务名称,服务次数,服务单价)

此为服务菜单实体对应的关系模式。

服务清单(房间编号,服务名称,服务次数,服务单价)

此为服务清单所对应的关系模式,该关系模式已包含了联系“选择”所对应的关系模式。

2.3.2数据模型的优化

数据逻辑设计的结果不是唯一的。

为了进一步提高数据库应用系统的性能,还应该分局应用系统的需要适当的修改,调整数据模型的结构,这就是数据模型的优化。

关系数据库模型的优化通常以规范化理论为指导,方法为:

1.确定数据依赖。

2.对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。

3.按照数据依赖的理论对关系模式逐一进行分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖等,确定个关系模式分别属于第几范式。

4.按照需求分析阶段得到的处理要求,分析对于这样的应用环境这些模式是否合适,确定是否要求对某些模式进行合并或分解。

5.对关系模式进行必要的分解,提高数据操作的效率和存储空间利用率。

常用的两种分解发事水平分解法和垂直分解法。

规范化理论为数据库设计人员判断关系模式优劣提供了理论标准,可以来预测模式可能出现的问题,使数据库设计工作有了严格的理论基础。

2.3.3设计用户子模式—视图

将概念模型转换为全局逻辑模型之后,还应该根据局部应用需求,结合具体DBMS的特点,设计用户的外模式。

目前关系数据库管理系统一般都提供了视图(view)概念,可利用这一功能设计更符合局部用户需要的用户外模式。

对于本系统,综合顾客和管理者的角度,设计了如下视图:

对于顾客,只需要建立状态为空的房间信息的视图:

1.建立空房间的视图,方便顾客查询和选择房间。

空房间(房间编号,房间类型,房间单价)

对于管理者,则要建立如下几个视图:

1.建立满房间视图,方便管理者了解入住客人的信息

满房间(房间编号,房间类型,房间单价)

2.建立所有顾客应缴纳房间费用的视图,方便管理者预算房间收入

房间费用(顾客姓名,房间费用)

3.建立所有顾客应缴纳服务费用的视图,方便预算服务收入,且可以根据统计数据来分析那种服务受欢迎,从而增加和推广相应服务

服务费用(房间编号,服务综费用)

4.建立所有顾客应缴纳的总费用的视图,方便结算

总费用(房间编号,总费用)

2.4物理设计

数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。

为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。

2.4.1建立触发器

这个系统为数据表的更新建立了两个触发器,一个是在有新的客人入住时,插入客人入住信息,触发触发器,使房间信息得到更新。

另外就是在有客人退房结账之后,使触发器触发,更新房间信息表。

表2-6定义触发器

触发器名

触发器的作用

View_delete

在顾客退房之后,触发器触发,删除住房登记表中的入住记录

in_status

用来在插入了一条顾客订房纪录之后触发,使该房间状态由‘空’更新为‘满’

Out_status

用来在插入了一条顾客退房记录之后触发,使该房间状态由‘满’更新为‘空’

2.4.2建立存储过程

存储过程是存储在服务器端由一组编译的Transact—SQL语句构成的SQLSever数据库应用程序,它能够检索系统信息、管理数据库或执行其他操作。

为了方便操作,为本系统建立了如下存储过程:

表2-7存储过程

存储过程编号

存储过程名称

存储过程作用

P1

roominf

查询某个房间的信息

P2

Priceinf

查询某个房间的价格

P3

Statusinf

查询某个房间的状态

P4

menuinf

查询有哪些服务

P5

updateinf

更新房间信息

2.5数据库实施阶段

2.5.1建立数据库

用SQL语句建立数据库,具体定义如下:

createdatabasehotel

2.5.2建立数据表

用SQL语句建立数据表,具体定义如下:

createtablecustomer

(Cnochar(10),

Cnamechar(10),

Cageint,

Csexchar

(2),

IDnochar(18),

primarykey(Cno)

createtableroom

(Rnochar(10),

Rtypechar(10),

Rstatuschar(4),

Rpriceint,

primarykey(Rno)

createtableinformation

(Cnamechar(10),

Rnochar(10),

IDnochar(18),

Thedatedatetime,

daysint

primarykey(Cname,Rno)

createtablecheckout

(Cnochar(10),

Rnochar(10),

primarykey(Cno)

createtablemenu

(Snamechar(10),

Spriceint,

primarykey(Sname)

createtableservice

(Rnochar(10),

Snamechar(10),

Samountint,

primarykey(Rno,Sname)

2.5.3数据库入库

本次数据采用Excel表导入的方法导入数据。

数据导入后基本表如下所示:

1.基本表—customer

2.基本表room。

3.

基本表menu。

4.

基本表information。

5.

基本表service

6.

基本表checkout

2.6调试与测试

2.6.1触发器定义

定义房间信息在有人入住之后更新的触发器

createtriggerin_status

oninformation

afterinsert,update

as

declare@Rnochar(10)

select@Rno=Rno

frominserted

updateroom

setRstatus='满'

whereroom.Rno=@Rno

定义房间信息在有人退房之后更新的触发器

createtriggerout_status

oncheckout

afterinsert,update

as

declare@Rnochar(10)

select@Rno=Rno

frominserted

updateroom

setRstatus='空'

whereroom.Rno=@Rno

2.6.2视图的定义

建立空房间信息视图

createviewview_eroom

as

select*

fromroom

whereRstatus='空'

建立满房间视图

createviewview_froom

as

select*

fromroom

whereRstatus='满'

建立客房所有顾客应缴纳的房间费用视图

createviewview_roomcost(Cname,rcost)

as

selectinformation.Cname,Rprice*Days

fromroom,information

whereroom.Rnoin

(selectRno

frominformation

)andinformation.Rno=room.Rno

建立所有顾客应缴纳服务费用的视图

createviewview_servicecost(Rno,cost)

as

selectservice.Rno,sum(Samount*Sprice)

frommenu,service

wheremenu.Sname=service.Sname

groupbyservice.Rno

建立顾客应缴纳的总费用的视图

createviewview_allcost(Rno,allcost)

as

selectview_servicecost.Rno,cost+Rprice*Days

fromview_servicecost,room,information

whereview_servicecost.Rno=room.Rnoandroom.Rno=information.Rno

2.6.3存储过程定义

建立查询某个房间信息的存储过程

createprocedureroominf

@Rnochar(10)

as

select*

fromroom

whereRno=@Rno

roominf'101'

建立查询某个房间价格的信息的存储过程

createprocedurepriceinf

@pRnochar(10)

as

selectRprice

fromroom

whereRno=@pRno

priceinf'101'

建立某个房间状态的存储过程

createprocedurestatusinf

@sRnochar(10)

as

selectRstatus

fromroom

whereRno=@sRno

某个客人入住,建立存储过程更新房间信息

createprocedureupdateinf

@P_Cnamechar(10),

@P_Rnochar(10),

@P_IDnochar(18),

@P_Thedatedatetime,

@P_Daysint

as

insertintoinformation

values(@P_Cname,@P_Rno,@P_IDno,@P_Thedate,@P_Days)

2.6.4数据操纵验证

数据操纵验证见附录

3收获与体会

经历了两周的数据库课程设计,我从开始只知道写几句SQL语句到对数据库设计有了一个全新的认识,从理论上升到了实践的高度,收获颇丰。

在实习的过程当中,我遇到了很多问题,特别是在开始需求分析阶段,觉得什么也不会做,什么也不知道去做。

后来在网上了解到了好多关于客房管理的知识,对数据库设计也有了一定的了解,在自己的努力下和老师悉心教导了下,我学到了课堂上学不到的很多东西,虽然也被老师批评过,但是批评之后,我对知识的记忆将更加深刻。

从中我知道了,只要我们不畏艰辛,坚持不懈,我们能做到很多不敢想不敢做的事情,经历风雨,就是彩虹!

4存在的问题与建议

4.1存在问题

1.对书本知识不熟悉,课程设计过程当中需要不断的查阅课本,这样造成了时间的浪费。

2.对SQLServer2000操作不熟悉,导致导入数据是经常出错,造成了一些不必要的麻烦,应该提高操作熟练程度。

3.对于触发器和存储过程定义不是很熟悉,有的稍微难点的语句写不出来,对于数据库定义语句应该要熟练掌握。

4.对数据库设计总体把握不是很准确,导致中间多次反复的改动前面的业务流程图、数据流图和E-R图。

4.2建议

在实习中,老师对我们细心辅导让我很感动,同学也热情的解答了我问的问题,唯一觉得不太适应的就是数据库实习的时间太短暂,没有充分的时间去全面考虑整个数据库的设计,这使得数据库的设计有很多方面不是很全面,这也是这次实习中的唯一一个遗憾吧。

但总体来说,这次数据库课程设计给我提供了一个锻炼自我,提高自我的机会,让我觉得计算机专业课其实很有意思,改变了我对计算机专业课难、没意思的看法,相信我以后会喜欢上这个专业的。

5.附录

存储过程功能的验证

图5-4存储过程updateinf验证

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1