某宾馆客房管理系统——数据库课程设计.docx
数据库原理课程设计报告设计题目某宾馆客房管理系统专业班级学 号学生姓名同组人起止日期 年 月日至月1日摘要宾馆管理系统是对宾馆管理系统的现代化、网络化,逐步摆脱当前宾馆管理的人工管理方式,拓展 经营空间,降低运营成本,提高管理和决策效率而开发的。传统的宾馆计算机管理系统主要包括前台管 理系统和后台管理系统两大部分,基本包含了宾馆主要业务部门,初步实现了对顾客服务和进行财务核 算所需要的各个功能。它包括客户信息管理、客房信息管理、入住和退房管理、客房类型管理、费用管 理、价目信息管理等6大功能模块,并提供了对各功能模块的查询和更新功能。其中客户信息管理.、入 住和退房管理是系统开发的重点。本文讲述的是基于客户/服务器的宾馆管理系统,实现了宾馆管理的信息化。本系统涉及数据库方 面的技术,采用SQL语言来实现。本系统由系统需求分析、概念设计、逻辑设计、物理结构设计、触发器设计、数据库实施和维护组 成。目录L问题描述11.1背景1L 2功能要求12 .需求分析11. 1需求分析12. 2系统功能模块图33. 3数据流图34. 4数据字典63 .概念结构设计73 . 1E-R 图74 . 2实体及属性的定义75 .逻辑结构设计86 .物理结构设计97 .触发器设计108 .数据库的实施和维护109 .结束语1210 答辩与成绩考核13L问题描述1.1 背景随着宾馆业竞争的加剧,宾馆之间客源的争夺越来越激烈,宾馆需要使用更有效的信息化手段,拓 展经营空间,降低运营成本,提高管理和决策效率。传统的宾馆计算机管理系统主要包括前台管理系统 和后台管理系统两大部分,基本包含了宾馆主要业务部门,初步实现了对顾客服务和进行财务核算所需 要的各个功能。但传统的宾馆管理基于财务管理为主线的设计理念,无法满足宾馆全面信息化管理的需 要。现代宾馆酒店业迅速发展,新的管理观念与模式层出不穷。宾馆客房管理系统亦随着宾馆管理理念 的发展而发展。宾馆客房管理系统依旧采用了先进的数据库理论,多媒体技术,软件工程理念等,从基 层,中层,高层三个管理者层次为切入点,以成本分析,预测,控制为一线,形成一套上下贯通,操作 便捷的酒店系统解决方案,科学地将宾馆各种日常业务完美的结合在一起,为管理及决策提供了强有力 的支持。其对客人个性化服务及全面彻底的信息化,使企业电算化水平提升到一个新的更高层次,提供 大量丰富的基于企业管理经营过程中实际的数据。1.2 功能要求(1)客人基本信息的录入;(2)客人基本信息的查询、修改、增加、删除等;(3)客房相关信息的录入,包括房间号、收费标准、床位、类别等;(4)客房类别标准的制定、类别信息的输入;(5)客房基本信息的查询、修改、删除等;(6)住房信息的录入,包括房间号、客人姓名等;(7)退房信息的更新;2.需求分析1 .1需求分析1) .处理对象系统要处理的对象包括信息管理、客户信息管理、客房信息管理、入住和退房管理、客房类型管 理、费用管理、价目信息管理等7个方面,各个对象包含的信息如下所示:(1)信息管理:可以对于各种信息的查询,个人信息可以查看自己的私人信息,还可以对自己的 私人信息进行修改。用户信息查看用户的个人信息,对用户的信息进行增、删、查、改。(2)客户信息管理:可以新建客户,输入客户的身份证号码、姓名、性别、出生日期和地址等信 息,可以对于客户的信息进行相应的修改,还可以对客户的消费信息进行统计。(3)客房信息管理:可以在相应的房间类型下面进行添加相应的房间,对相应的房间进行删除, 查看空房以及客房的情况。(4)入住和退房管理:客户可以入住相应的类型房型下的空房,然后可以退房,系统自动将相应 的订单状态置为失效,入住状态置为已退房,将相应房间的状态置为空房。(5)客房类型管理:管理员可以对相应的房型进行各种属性的修改,可以按照需求添加相应的房 型,管理员、工作人员都可以查看相应的房型信息,管理员有需要时可以删除相应的房型,系统自动将 该房型下的房间删除。(6)费用管理:管理员、工作人员都可以查看相应的费用信息,管理员有需要时可以对宾馆的收 入与支出进行查询或修改。(7)价目信息管理:可以查看客房的收费标准,管理员可以对客房价格进行查询与修改,工作人 员可以查看可风的价目信息。2),系统功能分析某宾馆需要建立一个住房管理系统,需求分析结果如下:(1)宾馆要求该系统能实现住房信息管理、客户信息管理等功能;2 2) 一个房间有多个床位,同一房间内的床位具有相同的收费标准。不同类型的房间的床位收费 标准可能不同;(3)每个房间有房间号、收费标准、床位数目等信息;(4)每位客人有身份证号码、姓名、性别、出生日期和地址等信息;(5)对每位客人的每次住宿,应该记录其入住日期、退房日期和预付款额信息;(6)管理系统可查询出客人住宿相关信息、房间信息。3).安全性和完整性要求安全性先通过试图机制,不同的用户只能访问系统授权的视图,这样可以满足系统数据一定程度上 的安全性,在通过用户授权机制,用户登录来识别用户级别,根据这个级别来分配用户权限,达到数据 更高层次的安全保密功能。系统完整性要求系统中数据的正确性以及相容性。可以通过建立主、外键,使用CheCk约束,或者 通过使用触发器和级联更新。2. 2系统功能模块图系统功能模块图,如图2. 2所示。某宾馆客房管理系统I删除费用伯息-I添加费用信息I修改费用信息-I查询费用付息J-客房信息修改-L客房信息删除一'/;|信口法.0|-I客房信息查询,,一 删除类型if修改类型X添加类型查看类型-L价目添加I 价目查询X客户信息添加J-客户信息删除-I客户信息修改-L客户信息查询退房登记-I 入住登记图2. 2 系统的功能模块图2. 3数据流图1 .业务流程图,如图2. 3. 1所示。图2. 3.1客房管理业务流程图(1)顶层数据流程图,如图2. 3. 2所示。(2)第二层数据流图,如图2. 3. 3所示。图2. 3. 3第二层数据流图(3)宾馆开房数据流程图,如图2. 3. 4所示。缴费单图2. 3. 4宾馆开房数据流程图(4)客户续房数据流程图,如图2. 3. 5所示。补交费用图2. 3. 5客户续房数据流程图(5)客人退房数据流程图,如图2. 3. 6所示。图2. 3. 6客人退房数据流程图2 .4数据字典表 2-3. 客户(Travellers)信息:表中列名数据类型可否为空说明TnoIntNot null (主键)客户编号TnameChar(IO)Not null客户姓名TsexChar(2)Not null客户性别TidChar(20)Not null客户身份证号表 2-4. 客房(RoomS)言息:表中列名数据类型可否为空说明RnoIntNot null (主键)客房号RstyleChar(IO)Not null客房类型RpriceInt客房单价RstateChar(IO)客房状态RtelChar(15)客房电话表2-5.客户住宿(Living)信息:表中列名数据类型可否为空说明TnoIntNot null (主键)客户编号RnoIntNot null (主键)客房号TcomedateDatetimeNot null入住日期TleftdateDatetimeNot null结算口期TtimeInt住宿时间TamountInt房费表2-6.客房物品(Roomilem)信息:表中列名数据类型可否为空说明RnoTntNot nul1客房号Ri temnoChar(IO)Not null (主键)客房物品编号RitemnameChar(20)Not null客房物品名称RitemstateChar(IO)物品状态RitempriceInt客房物品单价RitemnumInt物品数量3.概念结构设计 3.1 E-R 图各实体之间的E-R图,如图3-1所示。图3-1实体之间的E-R图3. 2实体及属性的定义3.2.1类别实体E-R图:客户信息实体的E-R图,如图3-2所示。图32客户信息实体的E-R图 客房信息实体的E-R图,如图3-3所示。图33客房信息实体的E-R图 客户住宿实体的E-R图,如图3-4所示。图34客户住宿实体的ER图 客房物品信息实体的E-R图,如图3-5所示。图35客房物品实体的ER图4 .逻辑结构设计具体的基本E-R图向关系模型的转化结果如下: 客户 Travellers ( Tno, Tnamc, Tsex, Tid)客房 Rooms ( Rno, Rstyle, Rprice, Rstate, RteD客户住宿 LiVing( Tno, Rno, Tcomedate, Tleftdate, Ttime, Tamount)客房物品 Roomi tem(Rn, Ri temno, Ritemname, Ri temprice, Ri temstate, Ri temnum)数据库模式定义表4-1.客户基本信息表表中列名数据类型可否为空说明TnoIntNot null (主键)客户编号TnameChar(IO)Not null客户姓名TsexChar(2)Not null客户性别TidChar(20)Not null客户身份证号表4-2客房基本信息表Rooms属性名数据类型是否是主属性是否为外键完整性属性描述RnoInt是否not null客房编号Rstylechar(10)否否not null客房档次RpriceInt否否客房单价Rstatechar(10)否否客房状态Rtelchar(15)否否客房电话表4-3客房物品信息表Roomi tem属性名数据类型是否是主属 性是否为外键完整性属性描述RitemnoInt是否not null客房物品编号RnoInt否是not null物品的客房号Ritemnamechar(20)否否not null客房物品名称RitempriceInt否否客房物品单价Ri temstatechar(10)否否客房物品状态RitemnumInt否否客房物品数目表4-4客户住宿信息LiVing属性名数据类型是否为 主属性是否为外键完整性属性描述TnoInt是是not null客户编号RnoInt是是not null客房编号TcomedateDatetime否否not null入住日期TleftdateDatetime否否not null结算日期TtimeInt否否入住时间TamountTnt否否房费金额5 .物理结构设计数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段 要完成两大任务。(1)确定数据库的物理结构,在关系数据库中主要是存储方法和存储结构。(2) 对物理结构进行评价,评价的重点是时间和空间效率。CREATE UNIQUE INDEX Travno ON Travellers(Tno)CREATE UNIQUE INDEX Roomno ON Rooms(Rno)CREATE UNIQUE INDEX Ritemno ON Roomitem(Ritemno)CREATE UNIQUE INDEX Livno ON Living(Tno)6 .触发器设计触发器Cl的功能为当有一条信息插入Living表中时,触发Rooms表中的RState='满'。代码如下:create trigger clon tbLiving for insertasif exists(select * from tb Living, tb Rooms where tb Living. Rno=tb Rooms. Rno) beginupdate tbRoomsset Rstate=* 满'where Rno=(select Rnofrom inserted)End触发器C2的功能为当从Living表中删除一条信息时,触发Rooms表中的Rstate=>空'。代码如下:create trigger c2on tb_Living for deleteasif exists(select * from tb Living, tb Rooms where tb Living. Rno=tb Rooms. Rno) beginupdate tbRoomsset Rstate=> 空'where Rno=(select Rnofrom deleted)End7 .数据库的实施和维护7.1 建立数据库、数据表、索引1 .建立数据库Create database db_hotel:2 .建立数据表(1)客户基本信息表TraVelIerS的建立。Create table tb_Travellers(Tno int Check(Tno>=0 and Tno<=9999),Tname char(10) not nul1,Tsex char(2) Check(Tsex in ('男','女'),Tid char(20) not null,Primary key (Tno) );(2)客房基本信息表ROomS的建立。Create table tb_Rooms( Rno int not null, Rstyle char(10) not null, Rprice int Rstate char (10) Rtel char(15) PRIMARY KEY (Rno) );(3)客房物品信息表RoOmiteIn的建立。 Create table tb Roomi tem ( Ritemno int not null, Rno int not null,Ritemname char(20) not null, Ritemprice int Ritemstate char(10)Ritemnum intPrimary key (Ritemno)Foreign key (Rno) references tbRooms(Rno) );(4)客户住宿信息LiVing的建立。Create table tb_Living(Tno int not null,Rno int not null,Tcomedate datetime not null,Tleftdate datetime not null,Ttime intTamount intPrimary key (Tno, Rno),Foreign key (Tno) references tb_Trave11ers(Tno), Foreign key (Rno) references tbRooms(Rno);3 .建立视图(1)查询客户(Travellers)信息的视图定义如下。Create view view_TravelIers (客户编号,客户姓名,客户性别,客户身份证号)As select Tno, Tname, Tsex, TidFrom tb_TravelIers查询客房(RoOmS)信息的视图定义如下。Create view view_Rooms (客房号,客房类型,客房单价,客房状态,客房电话) As select Rno, Rstyle, Rprice, Rstate, Rtel From tb_Rooms(3)查询客户住宿(Living)信息的视图如下。Create view view_Living (客房编号,客房号,入住日期,结算日期,住宿时间,房费)As select Tno, Rno, Tcomedate, Tleftdate, Ttime, TamountFrom tb_Living(4)查询客房物品(Roomi Iem)信息的视图定义如下。Create view VieLRoOmitem(客房号,客房物品编号,客房物品名称,物品状态,客房物品单价,物品数量)As select Rno, Ritemno, Ritemname, Ritemstate, Ritemprice, Ri temnum From tb Roomitem4 .建立索引CREATE UNIQUE INDEX Travno ON tb_TravelIers(Tno)CREATE UNIQUE INDEX Roomno ON tb Rooms(Rno)CREATE UNIQUE INDEX Ritemno ON tb Roomitem(Ritemno)CREATE UNIQUE INDEX Livno ON tb_Living (Tno)8.结束语通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己 今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想 上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少 有关数据库开发过程中的知识,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、 修改、查询,牵涉表和表之间的联系,主建与外主键的定义,约束项的设置,使逻辑更严密,在学习过 程中,我也能过上网查了不少资料,也看了一些别人设计的旅馆管理信息系统的设计报告,学以致用, 自我创新,独立完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。虽然不能 达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做 的课程设计自己觉得还算满意。9.答辩与成绩考核答辩问答成绩评定项目权重成绩1、设计过程中勤、能力、水平、态度等方面0.22、说明书书写规范性0.33、内容的质量0.34、答辩0.2总成绩