《酒店客房管理系统数据库设计.pdf》由会员分享,可在线阅读,更多相关《酒店客房管理系统数据库设计.pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、任务书 一、数据库原理课程设计的任务 1)通过本课程设计的训练,使学生掌握数据库技术的实际应用以及数据库信息管理系统的设计方法与开发过程;初步掌握数据库需求分析方法,掌握概要设计、逻辑设计和物理设计的步骤和技巧,理解并掌握数据库系统的整个开发过程。2)通过课程设计,掌握数据库开发工具的使用以及综合编程调试的能力,结合数据库原理的基本理论,选用一种现代关系数据库系统,设计一个具体的信息管理系统,具备基本的数据库编程能力,为以后能进行数据库系统设计、开发与维护打下良好的基础。3)提升工程实践能力、团队协作精神、交流与沟通能力;4)通过规范化的实验报告,培养学生良好的文档习惯以及撰写规范文档的能力。
2、二、课程设计的基本内容 课设内容 结合一个具体任务(课程设计题目),完成一个基于 C/S 或B/S 模式的数据库系统的设计,主要应包括如下内容:1完成课题任务的需求分析、完成系统总体结构设计方案(主控功能模块、数据处理模块、统计报表模块等);2数据库结构的设计与实现;3数据库安全的设计;4.数据修改的设计、数据查询的设计;5统计与报表输出的设计;目的与要求 目的:结合数据库原理的基本理论,选用一种现代关系数据库系统,设计一个具体的信息管理系统。要求:受学生对于所学基础和专业知识的综合应用能力及程序设计与调试能力的不同,一周时间大体分为三个阶段:需求分析;数据库设计;应用程序设计。要求提交相关软
3、件和规范的设计说明书电子文档。要求在设计过程中树立科学的设计思想,有全局观念,培养高度的协作精神。欢迎下载 2 课设形式 1、2-3 人一组 2、课内 10 学时,课内检查,其余为课外学时。课设考核 1、现场验收并对实验内容进行提问。2、根据设计方案、实验结果、附加功能、操作熟练程度、现场检查和回答情况及课程设计报告质量综合评定成绩。欢迎下载 3 目录 1.数据库需求分析 4 1.1 设计目的 4 1.2 系统功能分析 4 1.3 功能模块设计 5 2.数据库概念结构设计 6 2.1 概念模型 6 2.2 E-R 模型 6 3.数据库逻辑结构设计 8 3.1 关系模型设计 9 3.2 数据模型
4、的优化 9 3.3 子模式设计 9 4.数据库物理结构设计 9 4.1 存取方式设计 9 4.2 存储结构设计 10 5.数据库安全性、完整性设计 10 5.1 主要视图设计 10 5.2 用户权限 10 6.数据库实现 11 6.1 编码实现 11 6.1.1 主要数据表的创建 11 6.1.2 主要视图的创建 14 6.1.3 索引的创建 14 6.1.4 创建用户权限 14 6.1.5 创建存储结构 15 7.数据录入调试及运行 16 8.课程设计总结体会 18 9.参考文献 19 欢迎下载 4 1.数据库需求分析 1.1 设计目的 本酒店客房管理系统是为了满足现代酒店的管理需求、提高对
5、顾客的服务质量、方便酒店的管理和运营而设计的一款多功能易操作的基于 B/S 模式的数据库管理系统。由于当前的多数酒店都是以人工的方式来统计管理酒店里的各项事务,其中带来了很多的不便,使得酒店的管理也相对比较困难。对于酒店的营业情况的统计,要耗费很大的人力来进行统计分析。人工方式的管理也很容易出现管理上的失误。随着计算机技术和互联网技术的发展,设计一种可以实现自动化管理酒店事务的系统是当前酒店行业的一个迫切要求。本款酒店客房管理系统就是应运而生的一款快捷酒店管理系统,它可以使酒店人员很方便的管理酒店的各项事务,并将管理的失误降到最低。本系统通过对不同的人员分配不同的权限可以很好的防止客户以及酒店
6、一些信息的泄露。酒店会计还可以通过本系统快捷地统计出酒店在特定阶段的营业情况,可以根据分析的结果进行相应业务的调整。顾客可以通过本系统对入住的体验进行评价或者提出相关的建议,可以使酒店的服务更加完善。1.2 系统功能分析 本系统是为方便酒店管理和日常的营业需要,加入了酒店房间预定功能、顾客入住登记功能、员工维修客房设施记录功能、顾客体验反馈功能、营业情况统计功能。酒店房间预订系统:顾客可根酒店客房的一些信息,根据自身需求预定相应的客房,并支付一定的押金,顾客可根据情况选择入住或者退订已预订的房间。顾客入住登记功能:当顾客预定好房间选择入住时,系统进入住登记阶段,用户登记自身信息,并根据预定的订
7、单信息办理入住房间。员工维修记录功能:当酒店里的服务设施发生故障时,维修人员对故障进行维修,并记录维修的设施名称及其维修时间,以及维修所产生的费用,最后将数据存储在数据库中,并打印凭条以便上报。顾客体验反馈系统:当顾客要退房离开时,顾客可根据自身体验对酒店的设施和服务进行相应的评价和对一些问题提出相应的建议便于酒店对此做出改进。营业情况统计功能:酒店人员可根据特定阶段的营业状况,对消费记录进行分析,得出相应阶段营业盈亏的原因,并从中提取一些好的建议,以利于酒店的盈利。欢迎下载 5 1.3 功能模块设计 -系统功能模块图 有关客房标准的制定、标准信息的输入,包括标准编号、标准名称、房间面积、床位
8、数量、住房单价、是否有空调、电视机、电话以及单独卫生间等。客房标准信息的修改、查询等。客房基本信息的输入,包括客房编号、客房类型、客房位置、客房单价、备注等。客房基本信息的查询、修改,包括客房编号、客房类型、客房位置、客房单价、备注等。欢迎下载 6 剩余客房信息的查询等。订房信息的输入,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、备注信息等。订房信息的修改和查询,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、备注信息等。入住信息的输入,包括客房编号、客房种类、位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折
9、扣、结算日期、备注信息等。入住信息的修改和查询,包括客房编号、客房种类、客房位置、客房单价、顾客姓名、顾客身份证号码、入住日期、折扣、结日期、备注信息等。员工信息的输入,包括员工工号,员工姓名,性别,年龄,手机号码,酒店编号信息等。2.数据库概念结构设计 2.1 概念模型 客房标准信息:客房编号、客房名称、床位数量、住房单价。客房信息:客房编号、客房种类、客房位置、客房单价,客房状态。订房信息:订单编号、客房种类、顾客姓名、顾客身份证号码、订房时间、折扣。顾客信息:顾客姓名、顾客身份证号码、手机号码。入住信息:流水单号、客房编号、客房类型、顾客身份证号码、入住时间、结算时间、职工工号、结算备注
10、。职工信息:工号、职工姓名、职工性别、职工年龄、入职时间、职务。酒店信息:酒店编号、酒店名称、酒店电话。物品信息:物品编号、物品名称、物品类别、物品单价、库存。维修信息:流水单号、维修时间、维修物品、房间编号、维修费用。2.2 E-R 图 客房标准信息 E-R 图 客房状态 欢迎下载 7 职工信息 E-R 图 顾客信息 E-R 图 物品信息 E-R 图 酒店信息 E-R 图 手机号 库存 欢迎下载 8 实体间联系 E-R 图 3.数据库逻辑结构设计 3.1 关系模型设计 客 房(客房编号,客房名称,客房类型,床位数量,住房单价,酒店编号)顾 客(顾客身份证号码,顾客姓名,手机号码)员 工(员工
11、工号,员工姓名,员工性别,员工年龄,手机号码,入职时间,职务)酒 店(酒店编号,酒店名称)物 品(物品编号,物品名称,物品单价,物品类型)入 住(流水单号,房间名称,顾客身份证号,入住时间,退房时间,住宿时长,住宿费用)预 定(流水单号,顾客身份证号,房间类型,预定时间,预定入住时长,押金,预定状态)维 修(流水单号,员工工号,房间编号,维修设施名称,维修费用,维修时间)消 费(流水单号,入住单号,消费物品名称,消费量,消费金额)评 价(流水单号,顾客身份证号,评论时间,评论星级,评论内容,酒店编号)房间编号 欢迎下载 9 3.2 数据模型的优化 客房信息 关系模型中的主属性可推出所有其他非主
12、属性,模式中不存在传递依赖和部分依赖所以符合 3NF.顾客信息 关系模型中的关系模型中的主属性可推出所有其他非主属性,模式中不存在传递依赖和部分依赖所以符合 5NF.员工信息 关系模型中的主属性可推出所有其他非主属性,模式中不存在传递依赖和部分依赖所以符合 3NF.酒店信息 在酒店信息关系模式中,因仅有两个属性且属性间不存在部分依赖,传递依赖所以该模式设计合理符合第三范式。物品信息 在物品信息关系模式中,主属性可推出关系中的所有非主属性,关系中不存在传递依赖和部分依赖,且每一个决定因素都包含码,该关系模式满足 BCNF 范式。入住信息 3.3 子模式设计 为方便系统的使用,以及开发人员对程序的
13、设计和顾客身份信息的安全性,本数据库系统采用子模式的设计方法来提高数据的使用效率和安全保障。在酒店查询客房信息的时候设计一个子模式仅供系统用户查询到客房名称,客房类型,床位数量,住房单价等一些主要信息,而客房编号和酒店编号是为了系统的灵活性和数据库后台的方便操作而设计的用户可忽略。在系统人员查询顾客身份信息时,系统可添加子模式使系统用户只能顾客身份证信息的前六位和后四位,以防止顾客信息的泄露。在用户查询入住信息,评价信息,消费信息以及维修信息时,流水单号都可忽略,减少用户的信息阅读量。4.数据库物理结构设计 4.1 存取方式设计 由于本系统的数据信息的查询操作频繁,所以在部分表中建立索引以提高
14、查询效率。客房信息表修改删除插入操作较少,查询操作较为频繁,所以在该表中以客房编号上建立聚簇索引以提高查询效率。顾客信息表由于插入操作较为频繁,所以不适合建立聚簇索引,采用在用户身份证号码属性上建立非聚簇索引的方法提高数据的查询效率。入住信息表和预定信息表要频繁的进行插入和查询操作,入住信息表和预定信息表中的流水单号具有有序的特性且插入的操作仅发生在表的末尾,所以适合在该模式的流水单号属性上 欢迎下载 10 建立聚簇索引便于数据的查询。由于职工表的在本系统使用频率较少且数据量较少,添加索引反而使系统在索引的维护上耗费大量时间,所以不建议添加索引。评价表由于要经常的插入和查询数据,且该表的数据量
15、随营业时间增加而增加,所以要添加索引以提高系统对数据的查询效率。4.2 存储结构设计 本系统的数据的存储结构可根据数据的规模的进行设计,对于小型的酒店建议采用单个硬盘的存储方式,减少设计开销。对于大型的酒店,数据量较大,建议使用多个磁盘或使用磁盘阵列的形式来存储数据。具体的设计要根据实际情况进行详细的设计。5.数据库安全性、完整性设计 5.1 主要视图设计 顾客加密信息(顾客身份证号,顾客姓名)顾客身份证号码只显示前六位和后四位。客房基本信息(客房名称,客房类型,床位数量,住房单价)入住基本信息(房间编号,顾客身份证号,入住时间,退房时间,住宿时长,住宿费用)身份证号码只显示前六位和后四位。预
16、定基本信息(顾客身份证号,房间类型,预定时间,预定入住时长,押金,预定状态)身份证号码只显示前六位和后四位。顾客消费总金额(客房名称,客房类型,入住时间,退房时间,住宿时长,住宿费用,消费总金额)5.2 用户权限 酒店经理:对于客房信息表具有查看,修改,添加权限。对于顾客信息表具有查看权限。对于入住和预定信息表具有查看权限。对于员工信息表具有查看,修改,插入和删除权限。酒店会计:对于客房信息表具有查看结算信息表具有查看和插入权限。对于员工表具有查看权限。欢迎下载 11 酒店前台:对于客房信息表具有查看权限,对其中的客房的入住状态具有修改权。对于顾客信息表具有插入权。对于入住表和预定表具有插入权
17、。顾客:对客房信息某些记录具有查询权。6.数据库实现 6.1 编码实现 6.1.1 主要数据表的创建 CREATE DATABASE 酒店客房信息管理系统 ON PRIMARY (NAME=N酒店客房信息管理系统,FILENAME=NC:ProgramFilesMicrosoftSQLServerMSSQL10_50.MSSQLSERVERMSSQLDATA酒店客房信息管理系统.mdf,SIZE=3072KB,FILEGROWTH=1024KB )LOG ON (NAME=N酒店客房信息管理系统_log,FILENAME=NC:ProgramFilesMicrosoftSQLServerMSS
18、QL10_50.MSSQLSERVERMSSQLDATA酒店客房信息管理系统_log.ldf,SIZE=1024KB,FILEGROWTH=10%)create table 物品(物品编号 char(5)primary key,物品名称 char(30)not null,物品单价 money,物品类型 char(10);create table 顾客 欢迎下载 12(身份证号 char(18)primary key,姓名 char(20)not null,手机号 char(11);create table 酒店(酒店编号 char(4)primary key,酒店名称 char(20);cre
19、ate table 客房(客房编号 char(4)primary key,客房名称 char(4)not null,客房类型 char(8)check(客房类型 in(标准间,豪华间),客房状态 char(4)check(客房状态 in(入住,空闲),床位数 int,客房单价 money);create table 员工(员工工号 char(6)primary key,员工姓名 char(20)not null,员工性别 char(2)check(员工性别 in(男,女),员工年龄 int check(员工年龄18 and 员工年龄60),员工职务 char(20)not null,手机号 c
20、har(11);create table 维修(维修流水单号 int primary key IDENTITY(1,1),维修房间编号 char(4)foreign key references 客房(客房编号),维修员工工号 char(6)foreign key references 员工(员工工号),维修物品名称 char(20),维修时间 date,欢迎下载 13 维修费用 money);create table 评论(酒店编号 char(4),顾客身份证号 char(18),评论时间 date,评论星级 int,评论内容 char(500)not null);create table
21、预定(流水号 char(8)primary key,预定客房编号 char(4)foreign key references 客房(客房编号),顾客身份证号 char(18)foreign key references 顾客(身份证号),员工工号 char(6)foreign key references 员工(员工工号),预定时间 date,预订时长 int,预定状态 char(10),退订时间 date,押金 money);create table 入住(流水单号 int primary key IDENTITY(1,1),入住客房编号 char(4)foreign key referen
22、ces 客房(客房编号),顾客身份证号 char(18)foreign key references 顾客(身份证号),入住时间 date,退房时间 date,住宿费用 money,);create table 消费单(消费流水单号 int primary key IDENTITY(1,1),入住流水单号 int foreign key references 入住(流水单号),欢迎下载 14 物品编号 char(5)foreign key references 物品(物品编号),消费量 int,消费金额 money);6.1.2 主要视图的创建-创建客房基本信息视图-create view 客
23、房基本信息 as select 客房名称,客房类型,床位数,客房单价 from 客房 -统计顾客住宿的消费费用-create view 消费统计 as select 流水单号,客房名称,客房类型,入住时间,退房时间,DATEDIFF(day,入住时间,退房时间)as 住宿时长,住宿费用 from 入住 join 客房 on 客房.客房编号=入住.入住客房编号 -创建顾客加密信息视图-create view 顾客加密信息 as select 身份证号码=replace(身份证号,substring(身份证号,7,8),*),姓名,手机号 from 顾客.-创建预订概要信息便于查询-create
24、view 预定概要信息 as select 预定客房编号,顾客身份证号,预定时间,客房类型,押金,预定状态 from 预定 6.1.3 索引的创建 因其他表在建立主键时以默认添加,此处不再添加额外索引。-在顾客上创建非聚簇索引-create index cno_index on 顾客(身份证号)6.1.4 创建用户权限 创建用户。如下图所示、欢迎下载 15 -用户权限的设置-grant select,update,insert on 客房 to 经理 grant select on 预定 to 经理 grant select on 入住 to 经理 grant select on 顾客加密信息
25、 to 经理 grant select,delete,insert,update on 员工 to 经理 grant update,select on 入住 to 会计 grant update,select on 预定 to 会计 grant select on 客房 to 会计 grant select update insert on 入住 to 前台 grant select on 客房 to 前台 grant insert on 顾客 to 前台 grant select on 顾客加密信息 to 前台 6.1.5 存储过程的设计-创建存储过程-添加信息 create procedu
26、re add_room r_no char(4),-客房编号 r_name char(4),-客房名称 r_style char(8),-客房类型 r_bednum int,-床位数 r_price money-房间价格 as 欢迎下载 16 begin insert into 客房 values(r_no,r_name,r_style,r_bednum,r_price)end go-预定房间 create procedure order_room c_id char(18),-顾客身份证号 r_style char(8),-房间类型 o_time int,-预定时长 o_money mone
27、y-预定押金 as begin insert into 预定 values(null,null,c_id,null,r_style,GETDATE(),o_time,已预订,null,o_money)end go-退定房间 create procedure disorder_room o_id int-预定单号 as begin update 预定 set 预定状态=已退订 where 流水号=o_id,退订时间=getdate()end 7.数据录入调试及运行-添加评论信息-exec add_comments 0145,412326199501014466,4,酒店客房年久失修,天花板漏水,
28、但服务态度挺好,希望酒店改善一下住宿环境。-添加预订信息-exec order_room 411082199611152413,标准间,1,100-对已预定的订单进行退订-exec disorder_room 1 欢迎下载 17 欢迎下载 18 系统登录界面 客房信息录入界面 欢迎下载 19 房间预订界面 8.总结体会 本次数据库课程设计,我们做的是酒店客房信息管理系统。内容相对于前几次的练习题与大作业来讲较为复杂,各个表之间的联系比较紧密,表的设计标准也相对要求较高。在数据库实现之前,数据库的需求分析,功能模块划分,概念设计,关系模型设计,物理结构设计花费了我们很多时间与精力,有几次的设计结
29、果在后来的分析上发现设计的系统存在许多的不足,导致我们前面的工作都要全部重新做一遍,用去了我们许多的时间。在这个过程中,我们相互讨论,相互补充,将课堂上的理论知识运用于实际问题中,锻炼了我们的动手能力。在课程设计中我们遇到的最大的问题就是需求分析与功能划分这两个部分,在系统确认时,我们经过了反复的讨论和修改才确定了一个相对较完善的数据库系统;在对功能设计时,我们查阅了网上资料和一些现代酒店管理的知识,并结合自身的一些体会对系统的功能逐渐进行完善,最终确定了本系统的功能模块。在此期间我们讨论了很多设计方案,经过反复的讨论最终确定了一个合理的设计方案。通过本次课程设计,我们基本掌握了数据库分析和设计的基本步骤与方法,它提高了我们解决实际问题的能力。另外在系统设计过程中,我们又将学过的知识重新复习了一遍,我们有了很大的收获!9.参考文献 1数据库原理与设计 杨海霞 2013 人民邮电出版社 2现代酒店管理经典 程旭东 2011 人民邮电出版社 3数据库系统概论 王珊 萨师煊 2016 高等教育出版社