1、课程设计(论文)课程名称:数据库系统分析与设计题 目: 客房管理系统数据库设计院 (系):xxx专业班级:xxx姓 名:xxx学 号:xxx指导教师:xxx2011年 12 月 30 日西安建筑科技大学课程设计(论文)任务书专业班级:xxx 学生姓名:xxx 指导教师(签名):一、课程设计(论文)题目客房管理系统数据库设计二、本次课程设计(论文)应达到的目的数据库系统分析与设计课程设计是信息管理与信息系统专业集中实践性环节之一,是学习完数据库数据库系统原理及技术及数据库系统分析与设计课程后进行的一次全面的综合练习.其目的在与加深对数据库基础理论和基本知识的理解,掌握借助PowerDesigne
2、r开发和设计一个小型数据库系统时设计数据库系统模型的基本方法,提高运用数据库解决实际问题的能力.三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)要求学生能独立完成一个数据库模型的设计与实现,包括:1. 数据库系统需求分析;2. 数据库概念模型设计;3. 数据库逻辑模型设计;4. 数据库物理模型的实现;5. 完成不少于6000字的课程设计报告撰写。四、应收集的资料及主要参考文献:1 王珊, 萨师煊。 数据库系统概论(第4版)。 北京:高教出版社,2006年5月.2 赵韶平等。PowerDesigner系统分析与建模(第2版)。 北京:清华大学出版社,2010。3
3、 Data Modeling and Relational Database Design。 Oracle Inc。 2001.五、审核批准意见教研室主任(签字)摘要随着我国改革开放的不断推进,人民生活水平日益提高,旅游经济蓬勃发展,这一切都带动了酒店行业的发展.再加上入境旅游的人也越来越多,入境从事商务活动的外宾也越来越多.传统的手工已不适应现代化酒店管理的需要。及时、准确、全方位的网络化信息管理成为必需。酒店是一个服务至上的行业,从客人的预定开始,到入住登记直至最后退房结账,每一步骤都要保持一致性的服务水准,错失一步,会令其辛苦经营的形象功亏一篑。要成为一间成功的酒店,就必须作到宾至如归,
4、面对酒店业内激烈的竞争形势,各酒店均在努力拓展其服务领域的广度和深度。虽然计算机并不是酒店走向成功的关键元素,但它可以帮助那些真正影响成败的要素发挥更大的效用.因此,采用全新的计算机网络和管理系统,将成为提高酒店的管理效率,改善服务水准的重要手段之一.本数据库设计就是利用powerdesigner这个建模工具,经过系统需求分析,理清所见系统的功能结构,业务流程和内部数据流程问题,建立系统数据库的概念模型并且转换为物理模型,最终实现物理模型与数据库的连接,建立满足用户需求的数据库,为整个管理信息系统的后续建设和维护做好很好的铺垫作用.关键字:需求分析,概念模型,逻辑模型,物理模型,数据库目 录1
5、 绪论11。1系统简介11.2设计目的11。3设计内容22 需求分析32。1 。需求分析的任务32。2 系统数据流程分析32。3 数据字典73 概念模型设计103。1 概念模型设计的方法和步骤103。2 系统概念模型124。逻辑模型设计144.1逻辑模型设计的方法144。2 逻辑模型实现144。3 数据完整性约束定义165 物理数据库模型设计与实现185。1 物理数据库模型的图示185.2 物理数据库模型的详细表示185。3 物理数据库模型的实现22总结28参考文献29第 1 页1 绪论1。1系统简介每个酒店规模不同,经营方向不同,对酒店管理系统设计目标的要求存明显差异。例如大型酒店有客房、餐
6、饮、康乐、会务、购物中心等分,因此要求饭店管理信息系统的功能比较齐全,能够完成客房、餐饮、会务等各种事务处理,而住房型酒店则仅要求酒店管理信息系统能完成客房、财务等的管理即可。此外,不同酒店的组织机构也相同,供其使用的酒店管理信息系统的系统结构应与其组织机构相适应。在系统中,主要是对客房信息、房间备品信息、经营情况、营业统计、客户的入住信息、员工信息、客户信息反馈、客户网上订房信息、房间类型等管理。为客户提供满意的服务、便捷的通道,通过互联网了解酒店详细情况,为服务员工、管理者提供迅速、高效的服务,减免手工处理的繁琐与误差,及时、准确的反映酒店的工作情况、经营情况.比如,快速的查询、快速的登记
7、顾客订房情况等本系统的建设需求.具体来说,客户从界面上输入入住地区,时间,价位/房间类型就可以查询到符合条件的房间,并且可以切入预定,选择房间类性等。内部管理人员从界面上直接输入某个房间号我们就会看到客人的个人信息、住宿期间各种消费、以及是否客满,同样我们输入某个部门名称也会显示它的运营相关情况,并且能够对其实现相应的管理、查询、添加、删除、统计等功能。 1。2设计目的数据库系统分析与设计课程设计是信息管理与信息系统专业集中实践性环节之一,是学习完数据库数据库系统原理及技术及数据库系统分析与设计课程后进行的一次全面的综合练习。其目的在与加深对数据库基础理论和基本知识的理解,掌握借助PowerD
8、esigner开发和设计一个小型数据库系统时设计数据库系统模型的基本方法,提高运用数据库解决实际问题的能力.具体对本系统来说,客房管理系统数据库设计目的主要有以下3个:(1)为酒店的管理的管理者、决策者提供及时、准确地掌握酒店经营各个环节情况的信息领域;(2)对酒店的经营,为节省成本,提高运营质量和管理效率的信息化管理额控制技术;(3)直接对顾客提供信息化服务。1.3设计内容此次课程设计的主要内容就是对酒店客房管理系统建立一个数据库模型,包括:1)数据库系统需求分析;2)数据库概念模型设计;3)数据库逻辑模型设计;4)数据库物理模型的实现.2需求分析2。1 。需求分析的任务进行整个数据库设计必
9、须准确了解与分析用户需求(包括数据和处理)。需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。作为地基的需求分析是否做得充分与准确,决定了在其上构建数据库大厦的速度和质量。需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。需求分析调查的重点是“数据”和“处理”,通过调查、收集和分析,获得用户对数据库的如下需求:(1)信息需求。指用户需要从数据库中获得信息的内容与性质。由信息要求可以导出数据要求,即在数据库中需要存储哪些数据。(2)处理要求.指用户需要完成什么处理功能
10、。明确用户对数据有什么样的处理要求,从而确定数据之间的相互关系。(3)安全性与完整性要求.2。2 系统数据流程分析(1)基本业务调查根据上网调查,查阅相关图书、期刊以及实际跟班作业,做出现代企业客房管理系统的需求分析报告如下:1)酒店客户情况分析:客户根据需要通过该系统进行客房预订、客房信息查看等操作,管理员通过该系统修改客房信息、客户入住登记、结算等操作。2)系统情况分析:根据需要,系统所要实现的功能有以下几部分:实现客房信息管理功能;实现客户信息管理功能;实现预定管理功能;实现入住管理功能;实现换房管理功能;实现消费记账功能;实现收银退房功能.综上,将系统的功能大体划分为三大模块:权限管理
11、:包括用户、及操作员的注册,登录,权限修改等;前台管理:包括客户信息的录入、客户预订和入住登记、换房登记及结算退房的管理等;后台管理:客房信息管理,客户信息管理。根据以上的系统功能的的分析,大概的设计出系统的功能结构图,如图2。1所示。图2。1 功能结构图根据对整个系统的需求分析,得出本系统粗略的模型图,如图2。2所示。图2。2 系统大概数据流程图说明:F1:房间号,F2:客户信息;F3:消费信息;F4:账单信息2)数据流程图根据以上的需求分析结果,对本系统的各个功能模块进行业务数据流程分析,得出以下数据流程图:前台子系统数据流程图,如图2。3所示。客户信息客户登记客户离开住房管理住房信息更新
12、后的住房信息收入结算目前住房信息住房单价住房数量基本信息满足客户要求客户要求退房换房信息图2。3 前台服务数据流程图后台子系统数据流程图,如图2。4所示.前台数据库备份消费结算表客户住宿信息修改客房信息更新后的客房信息现金入账图2。4 后台服务数据流程图系统数据流程图,如图2。5所示查询D1客户登记结算入住登记预订登记F5入住信息F4预订信息F8退房需求F9结算信息F7信息核查F3客户信息F2查询结果F1客户需求描述D5入住信息表D4预订信息登记表D2客户信息表D2客房信息表D3客户信息表D8消费结算表D6换房信息BIAOBIAOBIAO表换房登记F9结算信息F6换房信息图2.5 系统数据流程
13、图2。3 数据字典在数据流程图中,数据信息和处理过程需要通过数据字典才能描述清楚,因此在数据字典中主要对数据流程图中的数据流、数据存储和处理过程给出更详细、更准确的说明.1)数据流定义通过在在系统数据流程分析阶段的数据流程图得到客房管理系统系统数据流程图的主要数据流,如表2。1所示。表2。1 客房管理系统主要数据流定义序号名称位置结构定义最大数据流量1客户需求描述F1客户编号+房间类型+房间号1000次/天2查询结果F2房间号+房间类型+价格1000次/天3客户信息F3客户编号+客户姓名+客户性别2000次/天4预订信息F4预订编号+房间类型+房间数2500次/天5入住信息F5入住编号+房间号
14、+客户编号2000次/天6换房信息F6换房编号+原房间号+新房间号+客户编号1000次/天7信息核查F7客户编号+客户姓名+省份证号2000次/天8退房需求F8客户编号+房间号1000次/天9结算信息F9客户编号+消费总额1000次/天2)数据存储定义根据数据流程图对客房管理系统的主要数据存储定义,如表2.2所示。表2。2 客房管理系统主要数据存储定义编号名称输入输出数据量存取频度存取方式说明D1客户客户编号客户信息2500条2500次/天联机处理;检索和更新;随即检索客户编号唯一D2客房信息房间号客房详细信息2500条2500次/天联机处理;检索和更新;随即检索房间号唯一D3客户信息表客户编
15、号客户信息1000条2000次/天联机处理;检索和更新;随即检索客户编号唯一D4预订信息表预订编号;房间类型;房间数预订详细信息1500条2500次/天联机处理;检索和更新;随即检索预订编号唯一D5入住信息表入住编号;房间号;客户编号入住详细信息1500条2000次/天联机处理;检索和更新;随即检索入住编号唯一D6换房信息表换房编号;客户号;原房间号;新房间号换房详细信息1000条1000次/天联机处理;检索和更新;随即检索换房编号唯一D7消费结算表账单编号;客户号;消费总额消费结算详细信息1500条1500次/天联机处理;检索和更新;随即检索账单编号唯一3)处理过程通过系统流程分析阶段得到的
16、数据流程图,对客房管理系统数据库设计的主要处理过程定义,如表2。3所示。表2.3 客房管理系统主要处理过程定义序号处理过程名称输入输出处理说明P1。1查询查询条件与查询条件相匹配的的记录在系统存储的信息中检索符合要求的信息记录并输出P1。2登记客户信息、客房选择等客户预订(入住、换房)记录客户的预订(入住、换房)信息登记到客户的预订(入住、换房)信息表中P1。3结算客户证件或姓名,及房间号客户消费总额系统存储的信息中检索出该客户的消费信息,结算后将该信息存档3 概念模型设计3.1 概念模型设计的方法和步骤(1)建立系统实体及属性根据需求分析阶段的分析结果,建立系统中所涉及的实体及属性通过需求分
17、析,本系统共分为三大功能模块,即权限管理、前台管理和后台管理.1)权限管理:在此功能中,主要实现的是对系统管理员和操作人员的权限设置管理问题,建立操作员实体存储管理员的信息;2)前台管理:包括客户信息的录入、客户预订和入住登记、换房登记及结算退房的管理等,建立客户信息、客房信息、订单信息、入住信息、换房信息、退房信息、账单信息来储存实现前台管理功能的信息,而对于每一个房间有自己所在的楼层和房间类型,所以建立楼层信息和房间类型实体;3)后台管理:实现客房信息、客户信息的更新和维护功能,建立客户信息,客房信息实现;要完成上述功能该客房管理系统涉及10个实体,各个实体的含义如表3.1所示。表3。1
18、客房管理系统包含的实体实体名含义操作员manager存储操作员的信息客户信息client存储客户的信息客房信息room存储客房的信息客房类型roomtype存储客房类型的信息楼层信息floor存储楼层信息订单信息order存储客户订房信息入住信息enter存储客户入住信息换房信息exchange存储客户换房信息退房信息back存储客户退房信息账单信息bill存储客户消费账单信息利用powerdesigner建立如下图3。1所示图3。1 客房管理系统的实体及属性(2)建立实体间的联系根据需求分析,为了使客房管理系统能正常运转,为这些实体之间建立如表3。2所示关系.表3.2 客房管理系统包含实体之
19、间的关系实体 1实体 2名称描述关系客户信息账单信息产生produce一个客户对应多个消费账单信息,一个账单对应一个客户一对多客户信息入住信息住入live客户对应多个住房信息,一个住房信息对应一个客户一对多客房类型客房信息包含include一种客房类型可以有多个房间,而一个房间只对应一种房间类型一对多客房信息客户信息存在exist一个客户只有一个客房信息,而对一个客房来说,可以有不同的客户信息一对多楼层信息客房信息拥有have在一层楼中,可以有多个房间,而一个房间只能在一层楼上一对多操作员客房信息管理manage一个操作员可以操做多个客房信息,而一间房间有一个操作员一对多客户信息换房信息调换e
20、xchange一个客户对应多个换房信息,一个换房信息对应一个客户一对多客户信息退房信息退房back一个客户对应多个退房信息,一个退房信息对应一个客户一对多客房类型订单信息预订order一个订单对应一个房间类型,而一种房间类型对应多个订单信息一对多利用powerdesigner建立实体之间的关系如下图3。2所示图3.2 客房管理系统包含实体之间的关系3。2 系统概念模型根据系统的需求分析,得出系统数据库的概念模型,利用powerdesigner做出客房管理系统的概念模型如图3。3所示.图3。3 客房管理系统概念模型(CDM)4.逻辑模型设计4。1逻辑模型设计的方法(1)实体集的转换规则一个实体集
21、转换为关系模型中的一个关系,实体的属性就是关系的属性,实体的码就是关系的码,关系的结构是关系模式.(2)实体集间联系的转换规则1)1:1联系的转换方法将1:1联系转换为一个独立的关系:与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,且每个实体的码均是该关系的候选码。将1:1联系与某一端实体集所对应的关系合并,则需要在被合并关系中增加属性,其新增的属性为联系本身的属性和与联系相关的另一个实体集的码。2)1:n联系的转换方法一种方法是将联系转换为一个独立的关系,其关系的属性由与该联系相连的各实体集的码以及联系本身的属性组成,而该关系的码为n端实体集的码;另一种方法是在n端实体集中增加
22、新属性,新属性由联系对应的1端实体集的码和联系自身的属性构成,新增属性后原关系的码不变.3)m:n联系的转换方法在向关系模型转换时,一个m:n联系转换为一个关系。转换方法为:与该联系相连的各实体集的码以及联系本身的属性均转换为关系的属性,新关系的码为两个相连实体码的组合(该码为多属性构成的组合码)。4.2逻辑模型实现将概念模型转化为逻辑模型即就是把ER图转化为关系模式,将客房管理系统概念模型中的实体及关系转化为关系模式为以下所述:操作员(操作员编号,操作员姓名,操作员密码)客户信息(客户编码,房间号,客户姓名,客户性别,联系电话,是否会员,身份证号)客房信息(房间号,类型编号,楼层编号,操作员
23、编号,房间状态,房间备注)楼层信息(楼层编号,楼层名称)客房类型(类型编号,类型名称,价格,拼房价格,类型备注)订房信息(订单编号,类型编号,抵店时间,离店时间,房间数)入住信息(入住编号,客户编号,入住时间,入住人数)换房信息(换房编号,客户编号,原房间号,新房间号)退房信息(退房编号,客户编号,退房时间)账单信息(账单编号,客户编号,入住天数,消费总额)利用powerdesigner将CDM转化为LDM,如图4。1所示。图4。1 客房管理系统数据库逻辑模型(LDM)4。3 数据完整性约束定义根据上面的关系模式,应给出数据库的完整性约束。1)实体完整性约束创建每一个关系模式中的主码的代码如下
24、:constraint PK_BACK primary key nonclustered (back_num)constraint PK_BILL primary key nonclustered (bill_num) constraint PK_ENTER primary key nonclustered (enter_num) constraint PK_CLIENT primary key nonclustered (cli_num)constraint PK_MANAGER primary key nonclustered (mana_num)constraint PK_EXCHANG
25、E primary key nonclustered (exch_num)constraint PK_ROOM primary key nonclustered (room_num)constraint PK_ORDER primary key nonclustered (order_num)constraint PK_ROOMTYPE primary key nonclustered (typ_num)2)参照完整性约束创建每一个关系模式中的参照关系(即外键)的代码如下。alter table billadd constraint FK_BILL_PRODUCE_CLIENT foreign
26、 key (cli_num)references client (cli_num)goalter table enteradd constraint FK_ENTER_LIVE_CLIENT foreign key (cli_num)references client (cli_num)goalter table roomadd constraint FK_ROOM_INCLUDE_ROOMTYPE foreign key (typ_num)references roomtype (typ_num)goalter table clientadd constraint FK_CLIENT_EXI
27、ST_ROOM foreign key (room_num)references room (room_num)goalter table roomadd constraint FK_ROOM_HAVE_FLOOR foreign key (floor_num)references floor (floor_num)goalter table roomadd constraint FK_ROOM_MANAGE_MANAGER foreign key (mana_num)references manager (mana_num)goalter table exchangeadd constrai
28、nt FK_EXCHANGE_EXCHANGE_CLIENT foreign key (cli_num)references client (cli_num)goalter table backadd constraint FK_BACK_BACK_CLIENT foreign key (cli_num)references client (cli_num)go5物理数据库模型设计与实现5。1 物理数据库模型的图示利用powerdesigner将建成的客房管理系统的概念模型(CDM)转化为物理模型(PDM),如下图5。1所示。图5.1 客房管理系统的物理模型(PDM)5。2 物理数据库模型的详
29、细表示物理数据库模型的详细表示,如下表5.1、5。2、5。3、5。4所示:表5。1客房管理系统表的详细表示名称代码入住信息enter客户信息client客房信息room客房类型roomtype换房信息exchange操作员manager楼层信息floor订单信息order账单信息bill退房信息back表5。2 客房管理系统数据库表栏的详细表示名称代码操作员姓名mana_name操作员密码mana_password操作员编号mana_num客户编号cli_num房间号room_num客户姓名cli_name客户性别cli_sex联系电话cli_tel身份证号cli_id是否会员cli_vip楼
30、层编号floor_num楼层名称floor_name备注floor_remarks订单编号order_num类型编号typ_num抵店时间order_arrivetime离店时间order_awaytime房间数order_account入住编号enter_num客户编号cli_num入住时间enter_time入住人数enter_account退房编号back_num客户编号cli_num退房时间back_time账单编号bill_num客户编号cli_num消费总额bill_sum住店天数bill_lasttime换房编号exchan_num客户编号cli_num原房间号exchan_ol
31、droom新房间号exchan_newroom房间号room_num楼层编号floor_num类型编号typ_num操作员编号mana_num房间状态room_situation客房备注room_remarks类型编号typ_num类型名称typ_name价格typ_price拼房价格typ_price1类型备注typ_remarks表5.3 客房管理系统数据库键的详细表示名称代码表格Identifier_1Identifier_1操作员Identifier_1Identifier_1客户信息Identifier_1Identifier_1楼层信息Identifier_1Identifier_
32、1订单信息Identifier_1Identifier_1入住信息Identifier_1Identifier_1退房信息Identifier_1Identifier_1账单信息Identifier_1Identifier_1换房信息Identifier_1Identifier_1客房信息Identifier_1Identifier_1客房类型表5。4 客房管理系统数据库索引的详细表示名称代码唯一的群集器主要的外键候选键表格manager_PKmanager_PKTRUEFALSETRUEFALSEFALSE操作员client_PKclient_PKTRUEFALSETRUEFALSEFALS
33、E客户信息exist_FKexist_FKFALSEFALSEFALSETRUEFALSE客户信息floor_PKfloor_PKTRUEFALSETRUEFALSEFALSE楼层信息order_PKorder_PKTRUEFALSETRUEFALSEFALSE订单信息order_FKorder_FKFALSEFALSEFALSETRUEFALSE订单信息enter_PKenter_PKTRUEFALSETRUEFALSEFALSE入住信息live_FKlive_FKFALSEFALSEFALSETRUEFALSE入住信息back_PKback_PKTRUEFALSETRUEFALSEFALS
34、E退房信息back_FKback_FKFALSEFALSEFALSETRUEFALSE退房信息bill_PKbill_PKTRUEFALSETRUEFALSEFALSE账单信息produce_FKproduce_FKFALSEFALSEFALSETRUEFALSE账单信息exchange_PKexchange_PKTRUEFALSETRUEFALSEFALSE换房信息exchange_FKexchange_FKFALSEFALSEFALSETRUEFALSE换房信息room_PKroom_PKTRUEFALSETRUEFALSEFALSE客房信息manage_FKmanage_FKFALSEF
35、ALSEFALSETRUEFALSE客房信息have_FKhave_FKFALSEFALSEFALSETRUEFALSE客房信息include_FKinclude_FKFALSEFALSEFALSETRUEFALSE客房信息roomtype_PKroomtype_PKTRUEFALSETRUEFALSEFALSE客房类型5.3 物理数据库模型的实现1)连接数据库建立ODBC数据源,连接sql server 2005 中的hotelroom数据库,操作如下图5。2,图5。3所示。图5。2 建立ODBC数据源图5.3 连接hotelroom数据库图5。4 生成数据库2)相关的SQL语句如下:cre
36、ate table back (back_num varchar(10) not null,cli_num numeric not null,back_time datetime not null,constraint PK_BACK primary key nonclustered (back_num)gocreate index back_FK on back (cli_num ASC)Gocreate table bill ( bill_num varchar(10) not null,cli_num numeric not null,bill_sum money not null,bi
37、ll_lasttime int null,constraint PK_BILL primary key nonclustered (bill_num))gocreate index produce_FK on bill (cli_num ASC)gocreate table client (cli_num numeric not null,room_num varchar(10) not null,cli_name varchar(20) not null,cli_sex char(2) not null,cli_tel char(11) not null,cli_id char(18) no
38、t null,cli_vip bit null,constraint PK_CLIENT primary key nonclustered (cli_num))gocreate index exist_FK on client (room_num ASC)gocreate table enter ( enter_num varchar(10) not null,cli_num numeric not null, enter_time datetime not null,enter_account int not null,constraint PK_ENTER primary key nonc
39、lustered (enter_num)gocreate index live_FK on enter (cli_num ASC)gocreate table exchange ( exchan_num varchar(10) not null, cli_num numeric not null, exchan_oldroom varchar(10) not null, exchan_newroom varchar(10) not null, constraint PK_EXCHANGE primary key nonclustered (exchan_num))gocreate index
40、exchange_FK on exchange (cli_num ASC)gocreate table floor ( floor_num varchar(10) not null, floor_name varchar(10) not null, floor_remarks text null, constraint PK_FLOOR primary key nonclustered (floor_num))gocreate table manager ( mana_name varchar(20) not null, mana_password varchar(20) not null,
41、mana_num numeric(20) not null, constraint PK_MANAGER primary key nonclustered (mana_num))gocreate table order” ( order_num varchar(10) not null, typ_num varchar(10) null, order_arrivetime datetime not null, order_awaytime datetime not null, order_account int not null, constraint PK_ORDER primary key nonclustered (order_num))gocreate index order_FK on ”order (typ_num ASC)Gocreate table room ( room_num varchar(10) not null,