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

上传人:laozhun 文档编号:2395668 上传时间:2023-02-17 格式:DOC 页数:21 大小:359.50KB
返回 下载 相关 举报
数据库课程设计客房管理系统设计.doc_第1页
第1页 / 共21页
数据库课程设计客房管理系统设计.doc_第2页
第2页 / 共21页
数据库课程设计客房管理系统设计.doc_第3页
第3页 / 共21页
数据库课程设计客房管理系统设计.doc_第4页
第4页 / 共21页
数据库课程设计客房管理系统设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《数据库课程设计客房管理系统设计.doc》由会员分享,可在线阅读,更多相关《数据库课程设计客房管理系统设计.doc(21页珍藏版)》请在三一办公上搜索。

1、目 录1 引言12 数据库设计12.1 需求设计12.1.1 总体分析12.12 业务流程图22.1.3 数据流图32.1.4 数据字典42.2 概念设计72.2.1 分E-R图72.2.2 总E-R图82.3 逻辑设计82.3.1 E-R 图向关系模型转换82.3.2 数据模型的优化92.3.3 设计用户子模式视图92.4 物理设计102.4.1 建立触发器102.4.2 建立存储过程102.5 数据库实施阶段112.5.1 建立数据库112.5.2 建立数据表112.5.3 数据库入库122.6 调试与测试142.6.1 触发器定义142.6.2 视图的定义152.6.3 存储过程定义17

2、2.6.4 数据操纵验证183 收获与体会184 存在的问题与建议184.1 存在问题184.2 建议195.附录191 引言本次数据库实习不要求界面和外部应用程序的设计,只设计数据库部分。客房管理系统采用SQL server 2000作为数据库后台。客房管理系统可以实现对客房的科学化、规范化、查询顾客情况、订房信息、以及结算信息等。有助于提高管理的效率,客房管理系统是根据某宾馆对客房的实际情况进行集中的查询与管理工作,以及提高整个客房管理的工作效率。 2 数据库设计2.1 需求设计2.1.1 总体分析建立客房管理信息系统的必要性已被广大的管理人员所接受和认可,建立客房管理信息系统是为宾馆的管

3、理服务的,其根本米的是要创造客房的经济效益。然而客房知道接的经济效益的提高应该包括直接的经济效益和间接地经济效益两方面。客房的直接经济效益是指由于系统的建立是客房的生产经营或客房的管理取得的直接利润收益。根据一般宾馆的工作流程及环境,以及顾客的要求设计了这个客房管理系统。这个数据库主要完成房间信息查询,住房信息统计,和账务结算。其中信息查询用来给顾客查询各种房间类型,房间价格等,住房信息统计用来给客房管理人员查询是否有空房间,有多少空房,哪个顾客需要结账了,等等信息管理,还可以根据数据库储存的资料统计什么样的人订房多,什么时段生意好,哪些服务是大多数顾客所喜爱的等等。基于这个数据库,可以根据不

4、同的需要对数据库进不同的查询。2.12 业务流程图数据文件存档文档业务处理功能根据了解到的情况,了解到了顾客住房的基本流程,根据客房管理的基本流程,从业务流程图基本的功能模块分别用下面图形表示:图2-1 业务流程图业务处理单位/个人根据宾馆实际管理过程和各种操作,由了解到的业务画出业务流程图,本系统的业务流程图如下所示:图 2-2 第一层数据流图2.1.3 数据流图2.1.4 数据字典数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典在数据库设计中占有很重要的地位。数据字典通常包括数据项、数据结构、数据流、数据存储和处

5、理过程5个部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。2.1.4.1 数据项定义数据项是不可在分的数据单位。下面定义了客房管理系统需要的数据项:表2.1 数据项定义数据项编号数据项名称简述类型及宽度I1Rtype描述房间的不同类型char(10)I2Rno表示房间的号码char(20)I3Rstatus房间的状态(是否有人住)char(4)I4Rprice描述房间的价格intI5Cno顾客编号char(10)I6Cname顾客姓名char(10)I7Cage顾客年龄intI8Csex顾客性别cha

6、r(2)I19IDno顾客身份证号码char(18)I110Date入住时间datetimeI11Time顾客订房天数intI12Sname服务名称char(10)I13Samount服务次数(个数)intI14Sprice每次(个)服务单价float2.1.4.2 数据结构数据结构反映了数据之间的组合关系,。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。对数据结构的描述通常包括数据结构名、含义等。表2-2 数据结构数据结构定义数据结构名数据结构含义组成DS-1customer入住客人信息Cno,Cname,Csex,Cage,IDnoDS

7、-2room房间信息Rtype,Rno,Rprice,RstatusDS-3information入住登记表Cname,Rno,Date,Time,Rtype,IDnoDS-4Servies服务清单Rno,Sname,Samount,SpriceDS-5Menu服务菜单Sname,Samount,Sprice2.1.4.3 数据流数据流是数据结构在系统内传输的路径。对数据流的描述通常包括以下内容:数据流名、说明、数据流来源、数据流去向、组成等。表2-3 数据流数据流编号数据流名称简述数据流来源数据流去向数据流组成F1房间信息表供用户查询房间信息,选择房间类型前台服务部顾客Rtype,Rno,R

8、floor,Rprice,RstatusF2发票 收费凭证前台服务部顾客房间类型,房间价格,发票编号,日期F3入住登记表登记订房客人的信息及房间信息前台服务部顾客,后勤服务部Cname,Cage,Csex,Cno,Rno,Date,TimeIDno,RtypeF4房卡作为订房、退房凭证,开房门前台顾客Rno,RfloorF5 服务菜单供用户选择相应服务后勤服务部顾客Sname,Samount,SpriceF6服务清单客人选择的服务的信息顾客后勤服务部Rno,Sname,Samount,SpriceF7退房信息某顾客退房登记的信息前台服务部存盘Cname,Rno,Date,Time2.1.4.4

9、 数据存储数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。他可以是手工文档或手工凭单,也可以是计算机文档。表 2-4 数据存储数据存储编号数据存储名称简述数据存储组成相关处理S1入住信息数据记录住宿信息,包括房间信息和客人信息Cname,Rno,Date,TimeP1,P2,P3,P4S2登记记录记录顾客订房的信息Cname,Rno,Date,TimeIDno,RtypeP12.1.4.5 处理过程处理过程的具体处理逻辑一般是用判定表或判定树来描述。数据字典中只需要描述处理过程的说明信息,通常包括处理过程编号、名称、说明、输入数据流、输出数据流、处理等。表 2-5 处理过程处理

10、过程编号处理过程名称简述输入的数据流处理输出地数据流P1更新住房信息有顾客后,要及时更新住房信息入住登记表对住房信息数据进行更新操作新的住房信息P2选择房间顾客更具需要选择房间类型房间信息表选择需要的房间类型房卡、发票P3对该顾客进行相应服务顾客选择服务,对顾客进行服务服务菜单按照顾客所选服务提供服务服务清单P4退房顾客离开时办理退房结算手续入住登记表办理退房结算手续退房信息2.2 概念设计将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。它是整个数据库设计的关键。2.2.1 分E-R图图 2-3 各部分分E-R图面对每一个局部应用主义设计分E-R图:2.2.2 总E-R

11、图各子系统的E-R图设计好以后,下一步就是要将所有的分E-R图综合成一个系统的总E-R图。多个分E-R图一次集成总E-R图,如下图所示:图 24 总E-R 图在消除各种冲突和不必要的冗余之后,基本E-R图就生成了,下一步就是根据概念结构设计结果来进行逻辑结构设计了。2.3 逻辑设计概念结构是独立于任何一种数据模型的信息结构。逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与所选用的DBMS产品所支持的数据模型想符合的逻辑结构。2.3.1 E-R 图向关系模型转换把总E-R图转换成为关系模式,关系的码用下划线标出。顾客(顾客编号,顾客姓名,顾客身份证号,顾客性别,顾客年龄)此为

12、顾客实体所对应的关系模式。房间(房间编号,房间类型,房价状态,房间单价)此为房间实体所对应的关系模式。入住登记表(顾客姓名,房间号码,顾客身份证号,入住日期,订房天数,)此为入住登记表所对应的关系模式,该关系模式已包含了联系“登记”所对应的关系模式。服务菜单(服务名称,服务次数,服务单价)此为服务菜单实体对应的关系模式。服务清单(房间编号,服务名称,服务次数,服务单价)此为服务清单所对应的关系模式,该关系模式已包含了联系“选择”所对应的关系模式。2.3.2 数据模型的优化数据逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,还应该分局应用系统的需要适当的修改,调整数据模型的结构,这

13、就是数据模型的优化。关系数据库模型的优化通常以规范化理论为指导,方法为:1. 确定数据依赖。2. 对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。3. 按照数据依赖的理论对关系模式逐一进行分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖等,确定个关系模式分别属于第几范式。4. 按照需求分析阶段得到的处理要求,分析对于这样的应用环境这些模式是否合适,确定是否要求对某些模式进行合并或分解。5. 对关系模式进行必要的分解,提高数据操作的效率和存储空间利用率。常用的两种分解发事水平分解法和垂直分解法。规范化理论为数据库设计人员判断关系模式优劣提供了理论标准,可以来预测模式可能出现的

14、问题,使数据库设计工作有了严格的理论基础。2.3.3 设计用户子模式视图将概念模型转换为全局逻辑模型之后,还应该根据局部应用需求,结合具体DBMS的特点,设计用户的外模式。目前关系数据库管理系统一般都提供了视图(view)概念,可利用这一功能设计更符合局部用户需要的用户外模式。对于本系统,综合顾客和管理者的角度,设计了如下视图:对于顾客,只需要建立状态为空的房间信息的视图:1. 建立空房间的视图,方便顾客查询和选择房间。空房间(房间编号,房间类型,房间单价)对于管理者,则要建立如下几个视图:1.建立满房间视图,方便管理者了解入住客人的信息满房间(房间编号,房间类型,房间单价)2.建立所有顾客应

15、缴纳房间费用的视图,方便管理者预算房间收入房间费用(顾客姓名,房间费用)3.建立所有顾客应缴纳服务费用的视图,方便预算服务收入,且可以根据统计数据来分析那种服务受欢迎,从而增加和推广相应服务服务费用(房间编号,服务综费用)4.建立所有顾客应缴纳的总费用的视图,方便结算总费用(房间编号,总费用)2.4 物理设计数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计。2.4.1 建立触发器这个系统为数据表的更新建立了两个触发器,一个是在有新的客人入住时,插入客人入住信息,触发触发

16、器,使房间信息得到更新。另外就是在有客人退房结账之后,使触发器触发,更新房间信息表。表 2-6 定义触发器触发器名触发器的作用View_delete在顾客退房之后,触发器触发,删除住房登记表中的入住记录in_status用来在插入了一条顾客订房纪录之后触发,使该房间状态由空更新为满Out_status用来在插入了一条顾客退房记录之后触发,使该房间状态由满更新为空2.4.2 建立存储过程存储过程是存储在服务器端由一组编译的TransactSQL语句构成的SQL Sever数据库应用程序,它能够检索系统信息、管理数据库或执行其他操作。为了方便操作,为本系统建立了如下存储过程:表2-7 存储过程存储

17、过程编号存储过程名称存储过程作用P1roominf查询某个房间的信息P2Priceinf查询某个房间的价格P3Statusinf查询某个房间的状态P4menuinf查询有哪些服务P5updateinf更新房间信息2.5 数据库实施阶段2.5.1 建立数据库用SQL语句建立数据库,具体定义如下:create database hotel2.5.2 建立数据表用SQL语句建立数据表,具体定义如下:create table customer(Cno char(10), Cname char(10), Cage int, Csex char(2), IDno char(18),primary key(

18、Cno) )create table room(Rno char(10), Rtype char(10), Rstatus char(4), Rprice int, primary key(Rno) )create table information(Cname char(10), Rno char(10), IDno char(18), Thedate datetime, days int primary key(Cname,Rno)create table checkout(Cno char(10), Rno char(10),primary key(Cno)create table me

19、nu(Sname char(10), Sprice int,primary key(Sname)create table service(Rno char(10), Sname char(10), Samount int, primary key(Rno,Sname) )2.5.3 数据库入库本次数据采用Excel表导入的方法导入数据。数据导入后基本表如下所示:1. 基本表customer图 2-5 表customer2. 基本表 room。图2-7 基本表 menu图 2-6 基本表 room3. 基本表 menu。表2-8 基本表information4. 基本表 information。

20、图2-9 基本表service5. 基本表 service图2-10 基本表6. 基本表checkout2.6 调试与测试2.6.1 触发器定义定义房间信息在有人入住之后更新的触发器create trigger in_statuson informationafter insert,updateasdeclare Rno char(10)select Rno = Rno from insertedupdate roomset Rstatus = 满where room.Rno = Rno定义房间信息在有人退房之后更新的触发器create trigger out_statuson checkou

21、tafter insert,updateasdeclare Rno char(10)select Rno = Rnofrom insertedupdate roomset Rstatus = 空where room.Rno = Rno图2-11 空房间信息视图2.6.2 视图的定义建立空房间信息视图create view view_eroomas select *from roomwhere Rstatus = 空建立满房间视图图2-12 满房间视图create view view_froomas select *from roomwhere Rstatus = 满建立客房所有顾客应缴纳的房间

22、费用视图create view view_roomcost(Cname,rcost)as图2-13 房间费用视图select information.Cname,Rprice*Daysfrom room,informationwhere room.Rno in(select Rnofrom information) and information.Rno=room.Rno建立所有顾客应缴纳服务费用的视图2-14 服务费用视图create view view_servicecost(Rno,cost)asselect service.Rno,sum(Samount*Sprice) from me

23、nu,servicewhere menu.Sname=service.Snamegroup by service.Rno建立顾客应缴纳的总费用的视图create view view_allcost(Rno,allcost)asselect view_servicecost.Rno,cost+Rprice*Daysfrom view_servicecost,room,information图2-15 总费用视图where view_servicecost.Rno=room.Rno and room.Rno = information.Rno2.6.3 存储过程定义建立查询某个房间信息的存储过程c

24、reate procedure roominfRno char(10)asselect * from roomwhere Rno = Rnoroominf 101建立查询某个房间价格的信息的存储过程create procedure priceinfpRno char(10)asselect Rpricefrom roomwhere Rno = pRnopriceinf 101建立某个房间状态的存储过程create procedure statusinfsRno char(10)asselect Rstatusfrom roomwhere Rno= sRno某个客人入住,建立存储过程更新房间信息

25、create procedure updateinfP_Cname char(10),P_Rno char(10),P_IDno char (18),P_Thedate datetime,P_Days intasinsert into informationvalues(P_Cname,P_Rno,P_IDno,P_Thedate,P_Days)2.6.4 数据操纵验证数据操纵验证见附录3 收获与体会经历了两周的数据库课程设计,我从开始只知道写几句SQL语句到对数据库设计有了一个全新的认识,从理论上升到了实践的高度,收获颇丰。在实习的过程当中,我遇到了很多问题,特别是在开始需求分析阶段,觉得什

26、么也不会做,什么也不知道去做。后来在网上了解到了好多关于客房管理的知识,对数据库设计也有了一定的了解,在自己的努力下和老师悉心教导了下,我学到了课堂上学不到的很多东西,虽然也被老师批评过,但是批评之后,我对知识的记忆将更加深刻。从中我知道了,只要我们不畏艰辛,坚持不懈,我们能做到很多不敢想不敢做的事情,经历风雨,就是彩虹!4 存在的问题与建议4.1 存在问题1. 对书本知识不熟悉,课程设计过程当中需要不断的查阅课本,这样造成了时间的浪费。2. 对SQL Server 2000 操作不熟悉,导致导入数据是经常出错,造成了一些不必要的麻烦,应该提高操作熟练程度。3. 对于触发器和存储过程定义不是很

27、熟悉,有的稍微难点的语句写不出来,对于数据库定义语句应该要熟练掌握。4.对数据库设计总体把握不是很准确,导致中间多次反复的改动前面的业务流程图、数据流图和E-R图。4.2 建议在实习中,老师对我们细心辅导让我很感动,同学也热情的解答了我问的问题,唯一觉得不太适应的就是数据库实习的时间太短暂,没有充分的时间去全面考虑整个数据库的设计,这使得数据库的设计有很多方面不是很全面,这也是这次实习中的唯一一个遗憾吧。但总体来说,这次数据库课程设计给我提供了一个锻炼自我,提高自我的机会,让我觉得计算机专业课其实很有意思,改变了我对计算机专业课难、没意思的看法,相信我以后会喜欢上这个专业的。5.附录存储过程功能的验证图5-2 存储过程 priceinf的验证图5-1 存储过程 roominf 的验证图5-4 存储过程updateinf验证图5-3 存储过程statusinf

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号