版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.河南城建学院数据库原理及应用课程设计专 业 班 级 : 0834131课程设计题目:酒店客房管理系统指导教师:吴孝丽苏靖枫学 生 学 号 : 083413135学生姓名:本小组合作者:计算机科学与工程学院2015年 6月.目录1需求分析阶段 . .11.1概述 .11.2需求阶段的目标及任务 .11.3安全性和完整性要求 .21.4建立数据业务流程及数据字典 .22概念分析阶段 . .43逻辑设计阶段 . .53.1数据组织 .63.2数据处理 . .94物理设计阶段 . .94.1数据存储方面 . .94.2系统功能模块 . .95数据实施阶段 . .105.1建立数据库、数据表、视图、索
2、引 .105.2数据入库 . .176系统调试和测试 . .17心得体会 . .19附录 . .20参考文献 . .25.1 需求分析阶段1.1概述进行数据库系统设计,首先要对系统的现状进行分析,明确自己酒店客房管理系统课程设计所要实现的目标、需求和功能,制定和选择一个较好的系统方案,有计划,有头绪,有思路,不能盲目的就着手去做,从而达到一个合理的优化系统。需求分析在于弄清这次课程设计的酒店管理系统的确切要求,因此,数据库课程设计的第一步就是明确数据库的目的和如何使用该系统。明确目的之后,才可以确定自己需要保存那些表信息,以及每个表中需要保存哪些字段。对于酒店客房管理系统,需要了解以下内容:1
3、. 了解酒店客房管理的基本内容;2. 综合的理解酒店客房管理各身份层次的不同需求;3. 了解酒店客房管理的基本业务流程;4. 了解酒店客房人工管理模式与信息系统的工作概况,以及它们之间的区别;5. 通过网上查阅资料以及翻阅相关书籍,了解用户对酒店客房管理系统的业务要求,安全性和完整性要求;1.2需求阶段的目标及任务(1)处理对象房客基本信息( Customer) : 房客编号,房客身份证号,房客姓名,房客性别,房客电话;房间基本信息( Room):房间编号,房间类型号,房间位置(楼层) ,房间描述(朝向);房间类型信息( RoomType):房间类型号,房间类型名,房间面积,房间价格;客房业务
4、历史记录信息( History ):房客编号,房客身份证号,房客姓名,房客电话,房间编号,消费金额,入住时间,退房时间;客房业务信息( RoomOperation):房客编号,房客身份证号, 房间编号,入住时间;房间状态信息( RoomStatus):房间编号,房间状态(有人 / 未住)。(2)处理功能及要求.系统对酒店客房管理系统的功能及要求如下: 能够存储一定数量的房客信息, 并方便有效的进行相应的房客数据操作和管理,这主要包括:房客信息的录入,删除和修改;房客信息的关键字检索查询。 能够对房客的入住信息,换房信息,退房信息,进行相应的操作,这主要包括: 房客入住,换房,退房的登记,删除及
5、修改; 房客住房历史信息的删除、修改; 房客住房金额的统计与查询。 能够提供一定的安全机制, 提供数据信息授权访问, 修改和删除,防止随意查询,修改及删除。 对查询、统计的结果能够列表显示。1.3安全性和完整性要求(1)安全性要求系统安全性要求体现在数据库安全性、 信息安全性和系统分平台的安全性等方面。安全性之基础的是通过视图机制,不同用户只能访问系统授权的视图,这样可以提供系统数据一定程度上的安全性。系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。(2)完整性要求系统完整性要求系统中数据的正确性以及相容性。可通过 建立主、外键,使用 unique 约束,或
6、者使用触发器更新。1.4建立数据业务流程及数据字典(1)酒店客房管理系统业务流程图(如图1).图 1 酒店客房管理系统业务流程图( 2)酒店客房管理系统数据字典 数据项:系统涉及的数据项有16 项,如表 1 所示表 1数据项列表数据项编号数据项名数据项含义存储结构别名DI-01CuName房客姓名NVARCHAR(10)姓名DI-02CuNo房客编号NCHAR(6)房客号DI-03CuSex房客性别NCHAR(2)性别DI-04RoomNo房间号NCHAR(6)房间号DI-05CuPhone房客电话NVARCHAR(20)电话DI-06CuCard房客身份证NVARCHAR(20)身份证DI-
7、07TypeNo房间类型号NCHAR(6)类型号DI-08RoomFloor房间楼层NVARCHAR(10)位置DI-09RoomStatus房间状态NVARCHAR(10)状态DI-10TypeName房间类型名称NVARCHAR(10)类型名DI-11TypeArea房间面积NVARCHAR(10)面积DI-12TypePrice房间价钱INT价钱DI-13Descripiption房间描述NVARCHAR(20)描述DI-14Price房客消费INT消费DI-15IntoTime入住时间DATETIME入住时间DI-16OutTime退房时间DATETIME退房时间.数据结构,如表2 所
8、示。更换 符合多高多高对法国德国多高多高多高多高多高豆21表 2数据结构列表数据结构编号数据结构名数据结构含义组成DS-1Customer房客信息CuNo, CuName, CuPhone,CuSex, CuCardRoomNo,TypeNo,DS-2Room房间信息RoomFloor,DescripiptionDS-3RoomType房间类型TypeNo,TypeName,TypeArea,TypePriceCuNo,CuName,CuPhone,DS-4History业务记录信息CuCard,Price,OutTime,RoomNoDS-5RoomStatus房间状态RoomNo,Room
9、StatusDS-6RoomOperation客房业务信息RoomNo,CuNo,CuCard,IntoTime2概念分析阶段图 2 酒店客房管理系统全局E-R 图.上述 E-R 图各实体的属性如下所示:房客基本信息: Customer(CuNo,CuCard,CuName,CuSex,CuPhone)房间基本信息: Room(RoomNo,TypeNo, RoomFloor,Description)房间类型信息: RoomType(TypeNo,TypeName, TypeArea,TypePrice)客房业务历史记录信息: History(CuNo ,CuCard,CuName,CuPho
10、ne,RoomNo,Price ,IntoTime , OutTime)客房业务信息: RoomOperation(CuNo,CuCard,RoomNo, IntoTime)房间状态信息: RoomStatus(RoomNo,Status)数据库关系图:3 逻辑设计阶段以上的概念设计阶段是独立于任何一种数据模型的, 但是逻辑设计阶段就与选用的数据库管理系统( DBMS)产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本 E-R 图转换为选用 DBMS产品所支持的数据模型相符合的逻辑结构。具体内容包括数据组织(将 E-R 图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)
11、、数据处理(画出系统功能模块图)两大任务。.3.1数据组织(1)将 E-R 图转换为关系模型实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:一个 m:n 联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。一个 1: n 联系可以转换为一个独立的关系模式,也可以与n 端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为 n 端实体的码。一个 1:1 联系可以转换为一个独立的关系模式,也可以与任意一端对
12、应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性, 而关系的码为各实体码的组合具有相同码的关系模式可合并。例如房间信息与房间类型信息之间是1:n 的关联。可以将其之间的联系转化为独立的关系模式,具体的基本E-R 图向关系模型的转化如下:房客基本信息: Customer(CuNo,CuCard,CuName,CuSex,CuPhone)房间基本信息: Room(RoomNo,TypeNo, RoomFloor,Description)房间类型信息: RoomType(TypeNo,TypeName, Ty
13、peArea,TypePrice)客房业务历史记录信息: History(CuNo ,CuCard,CuName,CuPhone,RoomNo,Price , IntoTime , OutTime)客房业务信息: RoomOperation(CuNo,CuCard,RoomNo, IntoTime)房间状态信息: (RoomNo,Status)(注:标有直线下划线的为主属性,标有波浪线下划线的是外键属性)(2)模型优化第一范式要求每一列的项不可分割,酒店管理系统的六个表都满足了1NF;简单理解,第二范式要求每个表所描述的是一件事,例如在Room表中如果加上房间状态.Status ,则 Room
14、表就不满足 2NF 了,它包括了房间信息和房间是否有房客入住的信息两个事件,所以就有了 RoomStatus 表;第三范式要求, 每一项都不传递依赖, 如果 Room 表中再加上房间类型名,则 TypeName通过 Room中的 TypeNo传递依赖于 RoomNo,所以有了 RoomType表。现在六张表都达到了3NF。(3)数据库模式定义根据分析,本数据库共创建了6 个表,如表 3表 8 所示表 3房客信息表列名数据类型可否为空CuNoNCHARNOT NULLCuNameNVARCHARNOT NULLCuSexNCHARCuPhoneNVARCHARCuCardNVARCHARNOT
15、NULL表 4房间信息表列名数据类型可否为空RoomNoNCHARNOT NULLTypeNoNCHARNOT NULLRoomFloorNVARCHARDescriptionNVARCHAR表 5房间类型信息表列名数据类型可否为空TypeNoNCHARNOT NULLTypeNameNVARCHARNOT NULLTypeAreaNVARCHARNOT NULLTypePriceINT表 6客房业务表列名数据类型可否为空CuNoNCHARNOT NULLRoomNoNCHARIntoTimeDATETIMECuCardNVARCHARNOT NULL说明房客编号房客姓名房客性别电话身份证说明
16、房间号类型号位置描述说明类型号类型名面积价钱说明房客编号房间号入住时间身份证.表 7业务记录表列名数据类型可否为空说明CuNoNCHAR房客编号CuCardNVARCHAR身份证CuPhoneNVARCHAR电话CuNameNVARCHAR姓名RoomNoNCHARNOT NULL房间号PriceINT消费金额IntoTimeDATETIME入住时间OutTimeDATETIME退房时间表 8房间状态表列名数据类型可否为空说明RoomNoNCHARNOT NULL房间号StatusNVARCHAR状态( 4)用户子模式定义,如表 912。表 9房间基本信息视图列名数据类型可否为空说明RoomN
17、oNCHARNOT NULL房间号TypeNameNCHARNOT NULL类型号RoomFloorNVARCHAR位置TypePriceINT价钱表 10退房房客基本信息视图列名数据类型可否为空说明CuNameNVARCHAR姓名CuSexNCHAR房客性别CuCardNVARCHARNOT NULL身份证CuPhoneNVARCHAR电话OutTimeDATETIME退房时间表 11空房间基本信息视图列名数据类型可否为空说明RoomNoNCHARNOT NULL房间号TypeNameNCHARNOT NULL类型号RoomFloorNVARCHAR位置TypePriceINT价钱.表 12
18、列名CuNameCuSexCuCardCuPhone3.2 数据处理房间管理增删加除房房间间4 物理设计阶段.房客基本信息视图数据类型可否为空说明NVARCHAR姓名NCHAR房客性别NVARCHARNOT NULL身份证NVARCHAR电话酒店客房管理系统类型管理房客管理修退换住查改房房房询信息图 3系统功能模块图数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:( 1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;( 2)对物理结构进行评价,评价的重点是时间和空间效率。4.1 数据存储方面为数据库中各基本表建立的索引如下:
19、1 由于基本表 History 、Customer 的 CuName、CuCard在现实生活中经常在查询条件中出现,在两个属性上建立索引。4.2 系统功能模块实现对房间信息,房客信息的查询、添加、删除操作,功能模块见图3。.5 数据实施阶段5.1建立数据库、数据表、视图、索引(1)建立数据库Create database酒店客房管理系统( 2)建立数据表 房客基本信息表的建立:CREATE TABLE Customer(CuNo NCHAR(6) PRIMARY KEY,-房客编号CuCard NVARCHAR(20) UNIQUE NOT NULL,身-份证CuName NVARCHAR(1
20、0) NOT NULL,房-客姓名CuSex NCHAR(2),- 房客性别CuPhone NVARCHAR(20),-电话房间基本信息表的建立:CREATE TABLE Room(RoomNo NCHAR(6) PRIMARY KEY,房-间号TypeNo NCHAR(6) NOT NULL,-房间类型号RoomFloor NVARCHAR(10) ,- 房间位置Description NVARCHAR(20)- 房间描述)房间类型基本信息表的建立:CREATE TABLE RoomType(TypeNo NCHAR(6) PRIMARY KEY,-房间类型号TypeName NVARCHA
21、R(10) NOT NULL,类-型名称TypeArea NVARCHAR(10),-房间面积TypePrice INT NOT NULL- 房间价钱).业务记录基本信息表的建立:CREATE TABLE History(CuNo NCHAR(6),-房客编号CuCard NVARCHAR(20)UNIQUE NOT NULL,身-份证 CuName NVARCHAR(10), -姓名 CuPhone NVARCHAR(20),-电话RoomNo NCHAR(6),-房间号Price int,-消费金额IntoTime DATETIME,- 入住时间OutTime DATETIME,- 退房时
22、间PRIMARY KEY (IntoTime,RoomNo)5 客房业务基本信息表的建立CREATE TABLE RoomOperation(CuNo NCHAR(6) PRIMARY KEY,-房客编号RoomNo NCHAR(6),-房间号IntoTime DATETIME,- 入住时间CuCard NVARCHAR(20)UNIQUE NOT NULL身-份证)6 房间状态基本信息表的建立CREATE TABLE RoomStatus(RoomNo NCHAR(6) PRIMARY KEY,房-间号Status NVARCHAR(6)- 状态)( 3)建立视图.1 用于查询房间基本信息的
23、视图create view Roomview(房间号 , 房间类型 , 位置 , 价钱 )asselect RoomNo,TypeName,RoomFloor,TypePricefrom Room ,RoomTypewhere Room .TypeNo =RoomType .TypeNo2 用于查询退房房客基本信息的视图create view Customerview(姓名 , 性别 , 身份证 , 电话 , 退房时间 )asselectCustomer.CuName ,CuSex ,Customer.CuCard ,Customer.CuPhone ,History.OutTime from
24、 History ,Customerwhere Customer.CuNo =History.CuNo3 用于查询未住人的客房信息create view Roomnopeople(房间号 , 类型 , 位置 , 价钱 )asselect Room.RoomNo,TypeName,RoomFloor,TypePricefrom Room ,RoomStatus ,RoomTypewhere Status=未住 andRoom .RoomNo =RoomStatus .RoomNo and Room .TypeNo=RoomType .TypeNo4 用于查询房客基本信息的视图create vie
25、w ShowCustomerview(姓名 , 性别 , 身份证 , 电话 )asselect CuName ,CuSex, CuCard,CuPhonefrom Customer.( 4)建立索引1 建立业务记录信息上的房客姓名索引create index i_History on History(CuName)2 建立房客信息上的身份证索引create index i_Customer on Customer(CuCard)( 5)建立存储过程1 添加新的房间存储过程的建立:create proc p_InsertRoomRoomNo nchar(6),TypeNonchar(6),Roo
26、mFloornvarchar(10),Descriptionnvarchar(20),Status nvarchar(6)=未住 asinsert into Room values(RoomNo,TypeNo,RoomFloor,Description)insert into RoomStatus values(RoomNo,Status)2 根据房间类型获取未住房间信息的存储过程的建立:create proc p_ShowRoomTypeNo nchar(6), Status nvarchar(6)=未住 asselectRoom.RoomNo,Room.RoomFloor,Room.Des
27、cription,RoomType.TypeArea,RoomType.TypeName,RoomType.TypePricefrom Room,RoomType,RoomStatuswhere Room.TypeNo=TypeNoand Status=Status and Room.TypeNo=RoomType.TypeNo and Room.RoomNo =RoomStatus.RoomNo3 - 根据房间号查询房间信息的存储过程的建立create proc p_GetRoom.RoomNo nchar(6)asselect Room.RoomNo ,RoomFloor,Descript
28、ion,TypeName,TypeArea,TypePrice from Room ,RoomTypewhere Room.TypeNo =RoomType .TypeNo and Room.RoomNo =RoomNo4 新的房客入住时的存储过程的建立create proc p_AddCustomerCuNo nchar(6),RoomNO nchar(6),CuName nvarchar(10),CuSex nchar(2),CuCard nvarchar(20),CoPhone nvarchar(20),IntoTime datetime asupdate RoomStatus set
29、Status =有人 where RoomNo=RoomNoif (select COUNT (*) from Customer where CuNo =CuNo)=0 begininsert into Customer values(CuNo,CuCard,CuName,CuSex ,CoPhone )endelsebeginupdate Customer set CuCard=CuCard,CuName=CuName,CuSex=CuSex,CuPhone =CoPhonewhere CuNo =CuNoendinsert into RoomOperationvalues(CuNo,Roo
30、mNO,IntoTime,CuCard)5 根据姓名信息查询房客具体信息的存储过程的建立create proc p_Customer-.CuName nvarchar(10)=%asselect * from Customerwhere CuName like CuName+%6 根据房间号查询房间入住信息的存储过程的建立create proc p_GetCustomerRoomNo nchar(6)asselect Customer.CuName,Customer .CuCard ,Customer .CuPhone ,Customer .CuSex , RoomOperation .Int
31、oTimefrom Customer ,RoomOperationwhere RoomOperation.CuNo =Customer.CuNo and RoomOperation .RoomNo =RoomNo7 退房存储过程的建立create proc p_OutRoomCuNonchar(6),RoomNOnchar(6),CuNamenvarchar(10),CuSex nchar(2),CuCard nvarchar(20),CoPhone nvarchar(20),IntoTime datetime,OutTime datetime,Price int asupdate RoomS
32、tatus set Status =未住 where RoomNo =RoomNOdeclare TypePrice intselect TypePrice=RoomType.TypePricefrom Room ,RoomTypewhere Room.TypeNo =RoomType .TypeNo and Room .RoomNo =RoomNO set Price =TypePrice *DATEDIFF (DAY ,IntoTime ,OutTime ) if(Price =0).beginset Price =TypePriceendinsertintoHistoryvalues(C
33、uNo,CuCard ,CuName ,CoPhone,RoomNO ,Price ,IntoTime,OutTime)delete from RoomOperationwhere RoomNo =RoomNO( 6)建立触发器1 当修改 RoomType表中某一信息时,触发RoomType表修改这一信息create trigger T_updateRoomTypeon RoomTypefor updateasif(UPDATE (TypeNo)or update(TypeArea)beginprints事务不能被处理,修改失败rollback transactionendelseprint修
34、改成功 2 当删除 History中房客信息记录时,触发Customer 表,删除相应的记录create trigger T_deleteCustomeron Historyafter deleteasbegin.deletefrom Customerwhere Customer.CuNo in(select CuNo from deleted)end3 当修改房 RoomOperation 表中房客房间信息时, 触发 RoomStatus 表修改相应房间状态记录create trigger T_UpdateCustomeron RoomOperationfor updateasif UPDA
35、TE(RoomNo)beginupdate RoomStatusset Status= 未住 whereRoomNo=(selectRoomNofromdeleted )update RoomStatusset Status= 有人 whereRoomNo=(selectRoomNofrominserted )end5.2 数据入库系统包括房客基本信息、房间基本信息、房间类型基本信息、业务记录信息、客房业务信息、房间状态信息,共有 6 张基本表 , 采用事先在 Excel 中录入数据 , 然后使用 SQLServer 2008 数据导入 / 导出向导功能 , 直接将数据导入到相应的基本表中。6
36、 系统调试和测试对该酒店客房管理系统进行测试,验证每个功能是否符合要求,具体测试如下:1通过视图查看各个基本表和视图中的数据(见附录1);.2检测各个存储过程的功能(见附录2);3检测各个触发器的效果(见附录3)。.心得体会通过两周的数据库课程设计,使我对数据库原理及应用这门课程有了更深入的理解。数据库原理及应用是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。我的课程设计题目是酒店客房管理系统,此次课程设计加深了我对数据库设计有关知识的理解。之前对于数据库设计各阶段的理解不透彻,很多概念都很模糊。通过本次课程设计,我进一步了解了书本上的知识,并且亲身体验了数据
37、库设计的各个环节。了解了数据库设计的流程。感触最深的是需求分析阶段和概念模型设计阶段。需求分析阶段是整个数据库设计的基础,这个阶段直接影响到后面各个阶段的设计。由于对业务不是十分精通,在这个阶段返工了好几次,如果这个阶段做的不好,后面就无法继续进行下去。概念模型设计阶段,最重要的是从数据流图中抽象出实体,并且要考虑冲突的发生。另外,我明白了理论与实际应用相结合的重要性,并提高了自己组织数据及编写大型程序的能力。培养了基本的、良好的程序设计技能以及合作能力。这次课程设计同样提高了我的综合运用所学知识的能力。与此同时,更深入的了解并掌握了 SQL SERVER2008 的功能。由于在有关存储过程和触发器的知识掌握的不是太好,平常实验报告的时候也只是按实习指导书上的代码进行编写,并不了解触发器的真正原理,但是在此次课程设计中,大量的用到触发器和存储过程,了解了它们的功能和原理。更加了解了SQL语句,在酒店客房管理系统的实施阶段,因为有大量的功能要通过触发器、存储过程来实现,所以锻炼了自己的编程能力。通过这段时间的课程设计,我认识到数据库程序设计是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大学发展经济学期末练习题附完整答案详解【典优】
- 2026年中医肛肠科练习试题含答案详解(黄金题型)
- 2026年技术员考前冲刺测试卷带答案详解(突破训练)
- 2026年国开电大中国传统文化导论形考测试卷含完整答案详解(网校专用)
- 2026年正式信息技术复习提分资料含答案详解(研优卷)
- 2026年电焊考证通关试题库附答案详解(精练)
- 2026年注册安全工程师综合提升试卷含答案详解
- 2026年证券从业人员测试卷附答案详解(考试直接用)
- 2026年县乡教师选调考试《教育学》测试卷附有答案详解附参考答案详解(b卷)
- 内蒙古内蒙古察右前旗竞争性比选19名工作人员笔试历年参考题库附带答案详解(5卷)
- 2026四川九洲投资控股集团有限公司招聘战略规划岗1人备考题库含答案详解
- 数学探索直线平行的条件(第1课时)课件 2025-2026学年北师大版数学七年级下册
- 生成式人工智能在小学科学课堂中的应用对学生参与度提升策略探讨教学研究课题报告
- 我国流域生态补偿主体制度:现状、问题与优化路径
- GB/T 15171-2025包装件密封性能试验方法
- 2026年沈阳职业技术学院单招职业倾向性考试题库参考答案详解
- 2024年山东省三支一扶考试真题
- 纺织行业的纺织品生产技术培训资料
- 高二年级第一次月考质量分析化学
- 高考生物解题技巧1-题干信息的分析技巧
- 涉氨制冷企业安全管理培训
评论
0/150
提交评论