客房管理数据库设计与实现(共30页).doc
精选优质文档-倾情为你奉上课程设计(论文)课程名称: 数据库系统分析与设计 题 目:客房管理数据库设计与实现院 (系): 专业班级: 姓 名: 学 号: 指导教师: 2012年 12 月 24 日专心-专注-专业西安建筑科技大学课程设计(论文)任务书专业班级: 学生姓名: 指导教师(签名): 一、课程设计(论文)题目 客房管理系统数据库设计与实现二、本次课程设计(论文)应达到的目的 数据库系统分析与设计课程设计是信息管理与信息系统专业集中实践性环节之一,是学习完数据库数据库系统原理及技术及数据库系统分析与设计课程后进行的一次全面的综合练习。其目的在与加深对数据库基础理论和基本知识的理解,掌握借助PowerDesigner开发和设计一个小型数据库系统时设计数据库系统模型的基本方法,提高运用数据库解决实际问题的能力。 三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等) 要求学生能独立完成一个数据库模型的设计与实现,包括:1) 数据库系统需求分析;2) 数据库概念模型设计;3) 数据库逻辑模型设计;4) 数据库物理模型的实现;5) 完成不少于6000字的课程设计报告撰写。四、应收集的资料及主要参考文献: 1 王珊, 萨师煊. 数据库系统概论(第4版). 北京:高教出版社,2006年5月.2 赵韶平等.PowerDesigner系统分析与建模(第2版). 北京:清华大学出版社,2010.3 Data Modeling and Relational Database Design. Oracle Inc. 2001.五、审核批准意见教研室主任(签字) 摘要随着社会的发展,人们生活水平不断提高,旅游经济不停发展,这一切都带动了酒店业的发展。现在不仅有旅游业的发展,还有各种跨地域的商务活动。随着人员流动的规模不断扩大,宾馆酒店的数量不断增加,关于客房的信息量也在不断增长,导致传统的客房管理系统已不能满足现在管理客房的及时、准确、全方位的需要。为了提高工作效率,促进经济的增长,需要借助计算机进行现代化的数据管理。此次数据库设计利用powerdesigner这个建模工具,经过系统需求分析,了解确定该系统的功能结构、业务流程和内部数据流程问题,建立系统数据库的概念模型,并且转换为逻辑模型和物理模型,最终实现物理模型与数据库的连接,建立满足用户需求的数据库,为整个管理信息系统的后续建设和维护打好基础关键字:需求分析,概念模型,逻辑模型,物理模型,数据库目 录01133445671 绪论1.1系统简介每个酒店、宾馆的规模不同,有时的系统要求也会不一样。但是对于主要经营住房型的酒店而言,他的系统要求和其他差不多都是一样的,他们的组织机构也差不多是相同的,在客房管理系统中主要是对客房信息、房间备品信息、经营情况、营业统计、客户的入住信息、员工信息、客户信息反馈、客户网上订房信息、房间类型等进行管理。这样,对客户和工作人员都带来了方便。对客户而言,他们可以在网上就查到酒店客房的类型,价格等等;真正对于工作人员来讲,可以让工作人员及时了解到关于客房的所有信息,比如还剩余多少房间、哪些顾客需要结账了,避免一些不必要的差错,提高他们的工作效率。1.2设计目的这次是利用Powerdesigner进行数据库的设计与实现,完成对客房管理系统的数据库设计与实现。客房管理系统的目的是实现电子信息化,利用数据库的实现对客房的管理,在这个系统中,主要任务是:(1) 真正做到为用户服务,按照客房管理工作的基本流程设计出符合要求的数据库(2) 该系统主要面对的用户是客房的工作人员,要实现方便、快捷、简单、便于操作(3) 提供一些基本功能,比如查询、修改等功能,以提高工作效率,实现信息化1.3设计内容根据客房管理系统的要求内幕的而言,在这个系统中观要实现(1) 系统的需求分析(2) 概念模型的设计(3) 逻辑模型的设计(4) 物理模型的设计(5) 数据库的实现2 需求分析2.1 .需求分析的任务进行整个数据库设计必须准确了解与分析用户需求(包括数据和处理)。需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。作为地基的需求分析是否做得充分与准确,决定了在其上构建数据库大厦的速度和质量。需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。需求分析调查的重点是“数据”和“处理”,通过调查、收集和分析,获得用户对数据库的如下需求:(1)信息需求。指用户需要从数据库中获得信息的内容与性质。由信息要求可以导出数据要求,即在数据库中需要存储哪些数据。(2)处理要求。指用户需要完成什么处理功能。明确用户对数据有什么样的处理要求,从而确定数据之间的相互关系。(3)安全性与完整性要求。2.2 系统数据流程分析1)基本业务调查通过网上调查、查阅相关的书籍、开座谈会、跟班作业等方法,对所设计系统的业务进行调查,明确其基本功能为:实现订房信息的管理,比如:添加、删除、修改、查询,前台管理,比如:结账、登记等,还有系统用户管理,比如修改密码、注册、管理等。根据需求分析,整个系统可以分为二部分,分别为:(1)前台查询(2)后台管理2) 数据流程图(1) 前台查询数据流程图(2) 后台管理数据流程图2.3 数据字典在数据流程图中,数据信息和处理过程需要通过数据字典才能描述清楚,因此在数据字典中主要对数据流程图中的数据流、数据存储和处理过程给出更详细、更准确的说明。1)数据流定义可以通过表格的形式给出数据流程图的主要数据流,如表2.1所示。表2.1 客房管理系统主要数据流定义序号名称位置结构定义最大数据流量1查询各种信息 工作人员查询客户信息+客房信息+客房状态信息 1000次/天2入住申请 顾客入住登记顾客编号+顾客姓名+顾客电话+客房编号 1000次/天3退房申请顾客退房登记顾客编码+顾客姓名+客房编码+费用 1000次/天4传递信息前台信息存储客户信息+客房信息+客房状态 1000次/天5收到信息后台修改信息新的客户信息+新客房信息+新客房状态1000次/天6新客户信息后台数据存储顾客编码+顾客姓名+顾客电话+客房编码1000次/天7新信息传递修改信息前台新的客户信息+新客房信息+新客房状态 1000次/天2) 数据存储定义可以采用如下表格的形式给出系统的主要数据定义,如表2.2所示。表2.2 客房管理系统主要数据存储定义编号名称输入输出数据量存取频度存取方式说明D1客户信息表客户编号客户详细信息2500条2500次/天联机处理;检索和更新;随即检索客户编号唯一D2客房信息表客房编号客房详细信息2500条2500次/天联机处理;检索和更新;随即检索客房编号唯一D3预订信息表预定编号预定详细信息2500条2500次/天联机处理;检索和更新;随即检索预定编号唯一D4入住信息表入住 编号 ;房间号;客户编号入住详细信息1500条2000次/天联机处理;检索和更新;随即检索入住编号唯一 D5消费结算表账单编号;客户号;消费总额消费结算详细信息1500条1500次/天联机处理;检索和更新;随即检索账单编号唯一 D6退房信息退房编号;顾客编号;客房编号退房详细信息1500条1500次/天联机处理;检索和更新;随即检索退房编号唯一3)处理过程可以采用如下表格的形式给出系统的主要处理过程定义,如表2.3所示。表2.3 客房管理系统主要处理过程定义序号处理过程名称输入输出处理说明P1.1查询查询条件与之相符的数据在系统存储的信息中检索符合要求的信息记录并输出P1.2入住登记顾客编号;客房编号顾客的入住信息在客户信息表和客房信息表、客房状态信息中增加数据P1.3退房登记顾客编号;客房编号顾客的所有信息在客户信息表和客房信息表、客房状态信息中删除数据P1.4结算顾客编号顾客的消费信息在消费结算表中得到所消费的金额 P2.1 信息存储新加入信息所有信息将新加入的信息传递给后台,进行信息的统一存储P2.2修改信息要修改的信息修改后的信息将要修改的信息传递给后台进行数据修改P2.3数据备份要备份的信息备份后的信息将信息传递给后台进行数据备份3 概念模型设计3.1 概念模型设计的方法和步骤 (1)根据需求分析,确定系统中的实体及属性,根据上面的分析,在这个系统中,确定了10个实体 顾客(顾客编号,顾客姓名,身份证号,顾客性别,顾客电话,顾客地址,预交款,余额) 客房基本信息(客房编号,客房类型,客房价格,客房楼层,备注) 客房状态信息(客房编号,顾客编号,入住时间,退房时间,入住价格) 员工(员工编号,部门编号,员工姓名,员工性别,员工电话,员工住址) 部门(部门编号,部门名称,部门电话,部门地址) 入住信息(入住编号,入住时间,入住人数,备注) 退房信息(退房编号,退房时间,备注) 消费项目基本信息(消费编号,消费类型,消费价格,备注) 订单信息(订单编号,入住时间,离开时间,人数) 楼层信息(楼层编号,楼层名称,备注)并利用powerdesigner创建这些实体,如下图所示:(2) 建立实体之间的联系 楼层信息和客房基本信息:一对多,一个楼层可有有多个客房,一个客房只能属于一个楼层 客房基本信息和员工:多对多,一个客房可以有多个员工工作,而且一个员工可以工作于多个客房 部门和员工:一对多,一个部门可以有多个员工,一个员工只能属于一个部门 客房基本信息和客房状态信息:一对一,一个客房只能有一个状态信息,一个状态信息也只能对应一个客房 客房状态信息和订单信息:多对一,一个状态信息只能对应一个订单,一个订单可以对应多个客房状态 顾客和订单信息:一对多,一个顾客可以有多个订单,但一个订单只能对应一个顾客 顾客和入住信息:一对一,一个顾客只能有一个入住信息,一个入住信息只能对应一个顾客 顾客和退房信息:一对一,一个顾客只能有一个退房信息,一个退房信息只能对应一个顾客 顾客和消费项目基本信息:多对多,一个顾客可以有多个消费项目,一个消费项目也可以被多个顾客消费。最后利用powerdesigner完成实体间关系3.2 系统概念模型利用powerdesigner完成所涉及的概念模型 客房管理CDM4 逻辑模型设计4.1 逻辑模型设计的方法(1) 打开CDM模型,选择ToolsGenerate Logical Data Model命令,打开如下图所示的LDM Generation Options窗口。(2) 选择Detail选项卡,进行设置(3) 选择Selection选项,可以选择CDM、实体,如图所示:(4) 按“确定”,开始生成LDM4.2 逻辑模型实现 客房管理LDM模型4.3 数据完整性约束定义根据上面的关系模式,数据库的完整性约束如下所示:1) 实体完整性约束(1) 楼层信息(楼层编号)(2) 客房基本信息(客房编号,楼层编号)(3) 员工(员工编号,部门编号)(4) 部门(部门编号)(5) 订单信息(订单编号,顾客编号)(6) 客房状态信息(客房编号,订单编号)(7) 顾客(顾客编号)(8) 入住信息(入住编号,)(9) 退房信息(退房编号,)(10) 消费项目基本信息(消费编号)2)参照完整性约束3)用户自定义完整性约束(1)员工编号 like '0-90-90-90-90-90-9'(2)部门编号 like'0-90-90-90-9'(3)楼层编号 like'F0-90-90-90-9'(4)订单编号 like'1-90-90-90-90-90-90-90-90-9'5 物理数据库模型设计与实现5.1 物理数据库模型的图示由CDM生成PDM的过程和生成LDM的过程有些类似,生成模型如下所示:5.2 物理数据库模型的详细表示(1)list of diagramNameCodeDiagram_1Diagram_1(2)list of table columsNameCode消费编号Co-Id消费类型Co_type消费价格Co_price员工编号S_Code部门编号2D_Code部门编号Depart_Code员工住址S_Adress员工姓名S_Name员工性别S_Sex员工电话S_tel客房编号2Room_Code客房编号R_Code顾客编号C_Code入住时间I_time订单编号Order_code退房时间L_time入住价格price楼层编号F_Code楼层名称F_Name备注BeiZhu订单编号Order_code顾客编号Client_code入住时间In_Time退房时间L_time人数count客房编号Room_Code楼层编号F_Code客房类型Room_Type客房价格Room_Price客房楼层Room_Floor备注BeiZhu顾客编号Client_code退房编号Tui_Code入住编号In_Code顾客姓名Client_name身份证号ID顾客性别Client_sex顾客电话Client_tel顾客地址Client_adress预交款Pre_money余额Balance入住编号In_Code顾客编号Client_code入住时间In_Time入住人数In_count备注BeiZhu退房编号Tui_Code顾客编号Client_code退房时间Tui_time备注BeiZhu员工编号S_Code客房编号Room_Code顾客编号Client_code(3)list of refenencesNameCodeParent TableChild Table11楼层信息客房基本信息44订单信息客房状态信息77顾客订单信息be leftbe left退房信息顾客be lived inbe lived in入住信息顾客be owed bybe owed by顾客6havehave3消费项目基本信息6havehave2员工3havehave客房基本信息客房状态信息leaveleave顾客退房信息livelive顾客入住信息orderedordered客房基本信息3responseresponse客房状态信息客房基本信息(4) list of tablesNameCode3366入住信息入住信息员工员工客房基本信息客房基本信息客房状态信息客房状态信息楼层信息楼层信息消费项目基本信息消费项目基本信息订单信息订单信息退房信息退房信息顾客顾客5.3 物理数据库模型的实现SQL语句如下:create table 3 ( S_Code int not null, Room_Code int not null, constraint PK_3 primary key (S_Code, Room_Code)gocreate index have2_FK on 3 (S_Code ASC)gocreate index ordered_FK on 3 (Room_Code ASC)gocreate table 6 ( Client_code int not null, "Co-Id" int null, constraint PK_6 primary key (Client_code)gocreate index have3_FK on 6 ("Co-Id" ASC)gocreate table 入住信息( In_Code int not null, Client_code int null, In_Time datetime null, In_count int null, BeiZhu varchar(50) null, constraint PK_入住信息primary key nonclustered (In_Code)gocreate index live_FK on 入住信息(Client_code ASC)gocreate table 员工( S_Code int not null, D_Code int null, Depart_Code int null, S_Adress varchar(50) null, S_Name char(10) null, S_Sex char(2) null, S_tel int null, constraint PK_员工primary key nonclustered (S_Code)gocreate table 客房基本信息( Room_Code int not null, F_Code char(20) null, R_Code int null, Room_Type char(10) null, Room_Price money null, Room_Floor char(20) null, BeiZhu varchar(50) null, constraint PK_客房基本信息primary key nonclustered (Room_Code)gocreate index 1_FK on 客房基本信息(F_Code ASC)gocreate index response_FK on 客房基本信息(R_Code ASC)gocreate table 客房状态信息( Room_Code int null, R_Code int not null, C_Code int null, I_time datetime null, Order_code int null, L_time datetime null, price char(10) null, constraint PK_客房状态信息primary key nonclustered (R_Code)gocreate index have_FK on 客房状态信息(Room_Code ASC)gocreate index 4_FK on 客房状态信息(Order_code ASC)gocreate table 楼层信息( F_Code char(20) not null, F_Name char(20) null, BeiZhu varchar(50) null, constraint PK_楼层信息primary key nonclustered (F_Code)gocreate table 消费项目基本信息( "Co-Id" int not null, Co_type char(20) null, Co_price char(10) null, constraint PK_消费项目基本信息primary key ("Co-Id")gocreate table 订单信息( Order_code int not null, Client_code int null, In_Time datetime null, L_time datetime null, count int null, constraint PK_订单信息primary key nonclustered (Order_code)gocreate index 7_FK on 订单信息(Client_code ASC)gocreate table 退房信息( Tui_Code int not null, Client_code int null, Tui_time datetime null, BeiZhu varchar(50) null, constraint PK_退房信息primary key nonclustered (Tui_Code)gocreate index leave_FK on 退房信息(Client_code ASC)gocreate table 顾客( Client_code int not null, Tui_Code int null, In_Code int null, Client_name char(20) null, ID char(20) null, Client_sex char(2) null, Client_tel int null, Client_adress varchar(20) null, Pre_money int null, Balance int null, constraint PK_顾客primary key nonclustered (Client_code)gocreate index "be lived in_FK" on 顾客(In_Code ASC)gocreate index "be left_FK" on 顾客(Tui_Code ASC)goalter table 3 add constraint FK_3_HAVE2_员工foreign key (S_Code) references 员工(S_Code)goalter table 3 add constraint FK_3_ORDERED_客房基本信息foreign key (Room_Code) references 客房基本信息(Room_Code)goalter table 6 add constraint "FK_6_BE OWED B_顾客" foreign key (Client_code) references 顾客(Client_code)goalter table 6 add constraint FK_6_HAVE3_消费项目基本信息foreign key ("Co-Id") references 消费项目基本信息("Co-Id")goalter table 入住信息 add constraint FK_入住信息_LIVE_顾客foreign key (Client_code) references 顾客(Client_code)goalter table 客房基本信息 add constraint FK_客房基本信息_1_楼层信息foreign key (F_Code) references 楼层信息(F_Code)goalter table 客房基本信息 add constraint FK_客房基本信息_RESPONSE_客房状态信息foreign key (R_Code) references 客房状态信息(R_Code)goalter table 客房状态信息 add constraint FK_客房状态信息_4_订单信息foreign key (Order_code) references 订单信息(Order_code)goalter table 客房状态信息 add constraint FK_客房状态信息_HAVE_客房基本信息foreign key (Room_Code) references 客房基本信息(Room_Code)goalter table 订单信息 add constraint FK_订单信息_7_顾客foreign key (Client_code) references 顾客(Client_code)goalter table 退房信息 add constraint FK_退房信息_LEAVE_顾客foreign key (Client_code) references 顾客(Client_code)goalter table 顾客 add constraint "FK_顾客_BE LEFT_退房信息" foreign key (Tui_Code) references 退房信息(Tui_Code)goalter table 顾客 add constraint "FK_顾客_BE LIVED _入住信息" foreign key (In_Code) references 入住信息(In_Code)go生成数据库和表,如下所示: 总结通过这段时间对客房管理系统数据库设计与实现,大概了解到了酒店客房管理或者宾馆的经营模式,其实整个系统其实是很复杂、很庞大的,自己只是把整个系统简化了。就是这样,自己在完成的过程中还是有很多问题,发现数据库的设计并不像自己想象中的简单好做,对于整个系统来说,数据库的设计是一个漫长的过程,要不断的根据运用的过程中的问题和需要进行改进。自己在查资料的过程中也发现,现代的信息管理系统给企业带来了诸多的好处。现在随着社会经济的发展,酒店与宾馆的业务也在不断的发展,实施数据库管理系统是很有必要的。在这个过程中,自己遇到不少问题,也发现自己在学习过程中的不足。对自己来说,完成比较困难的还是数据流程图部分,需求分析。自己在业务流程图时还行,就是数据流程图画不出来,画好觉得怪怪的。但是只有在把流程图弄懂后,才能确定系统中的实体。对自己来说还有一个难点就是数据字典,自己并不知道数据字典的具体用法,在看过书后,才有所了解,不过还是不是很顺利。不过后面的建立CDM,LDM,PDM还算是顺利吧。总之,通过这次课程设计,巩固了学习过的数据库原理的基本应用,大型数据库在数据库设计中的应用,以及利用powerdesigner建模工具的应用,而且发现自己在学习这些课程过程中的不足,还需要下来再认真看看书本内容,好好加强。参考文献1 王珊,萨师煊.数据库系统概论(第四版)M.北京:高等教育出版社,2006.5.2 赵韶平等.PowerDesigner系统分析与建模(第2版). 北京:清华大学出版社,20103 Data Modeling and Relational Database Design. Oracle Inc. 20014 Abraham SilberschatzHenryF.Korth ,S.Sudarshan.DatabaseSystem Concepts(Fourth Edition). Higher Education Press.5 慕静.管理信息系统开发方法、工具与应用M. 北京:清华大学出版社,20107 彭伟民.基于需求的酒店管理系统的建模与实现M. 北京:人民邮电出版社,2005