宾馆客房管理系统的SQL数据库_
- 格式:doc
- 大小:2.57 MB
- 文档页数:15
★新浪微博名:99加油站★绝密课程设计说明书课程设计名称:数据库系统概论课程设计题目:客房信息管理子系统学院名称:信息工程学院专业:班级:学号:姓名:评分:教师:20 13 年 1 月 14 日引言本次数据库实习不要求界面和外部应用程序的设计,只设计数据库部分。
客房管理系统采用SQL server 2005作为数据库后台。
客房管理系统可以实现对客房的科学化、规范化、查询顾客情况、订房信息、以及结算信息等。
有助于提高管理的效率,客房管理系统是根据某宾馆对客房的实际情况进行集中的查询与管理工作,以及提高整个客房管理的工作效率。
数据库设计1.需求分析随着时代的发展,建立客房管理信息系统的必要性已越来越被广大的宾馆管理人员所接受和认可,建立客房管理信息系统是为宾馆的管理服务的,其根本目的是要提高客房管理效率,增加客房的经济效益。
因此,我根据一般宾馆的工作流程及环境,以及顾客的要求设计了这个客房管理系统。
这个数据库主要完成如下功能:1.实现客房信息、顾客信息的添加、删除、修改和查询等功能2.实现顾客预订或入住等信息的添加、删除、修改等功能3.实现统计各类信息并能合理安排住房的决策等问题4.实现查询某位顾客的消费情况,并拥有完善的结账报表系统5.实现完整性约束:每位顾客只能预订和入住一间客房,客房已满时提示顾客无法入住,规定预订客房的超出期限为3个小时,超期则取消本次预订。
2.系统功能需求分析客房信息管理子系统根据系统需求分析设计功能,管理功能功能是比较简单的。
主要实现了对客房信息、顾客信息、顾客预订、顾客入住和结账报表信息等的管理,具体管理功能有添加、修改、删除、查询和统计等。
系统的功能模块图如下图所示,其中的“信息管理”板块中的每一功能管理项都包括查看、添加、删除、修改等功能。
3. 数据库概念结构设计3.1 数据流程图根据了解到的情况,了解到了顾客住房的基本流程,结合宾馆实际管理过程和各种操作,由了解到的业务画出业务流程图,本系统的业务流程图如下所示:3.2 系统E-R图经调研分析后得简化客房信息管理子系统整体的基本功能,设计了如下E-R 图:4. 数据库逻辑结构设计4.1 关系模式按照E-R图到逻辑关系模式的转换规则,可将上面E-R图转换成如下5个关系:1.Room(rno,rsize,rprice,rstatus)2.Client(cnum,rno,cname,csex,cage,cphone,eorb)3.Book(cnum,rno,booktime,bookday,maxtime,bookway)4.Inhotel(cnum,rno,daynum,cost,paid,unpaid,cometime,paidtime)5.Account(cnum,rno,cost,paid,paidtime)其中带下划线的为关系的主码,既带下划线又加波浪线的为外码4.2 数据项定义根据关系模式中的各属性,定义数据项及其说明如下5. 数据库物理结构设计本系统数据库表的物理设计通过创建表的SQL命令及数据关系图来呈现,下面列出SQL创建表的命令和数据库关系图:5.1 创建表的命令创建客房信息表room:create table room(rno char(10) primary key,rsize char(10),rprice int,rstatus char(2)check(rstatus in('满','空')),)创建顾客信息表client:create table client(cnum char(18) primary key,rno char(10),cname char(10),csex char(2)check(csex in('男','女')),cage int,cphone char(11),foreign key(rno)references room(rno))创建顾客入住信息表inhotel:create table inhotel(cnum char(18),rno char(10),cometime datetime,paidtime datetime,days int,cost int,paid int,unpaid int,primary key(cnum,rno),foreign key(rno)references room(rno), foreign key(cnum)references client(cnum), )创建顾客预订信息表book:create table book(cnum char(18),rno char(10),booktime datetime,bookdays int,bookway char(20),maxtime datetime,primary key(cnum,rno),foreign key(rno)references room(rno), foreign key(cnum)references client(cnum), )创建结账报表account:create table account(cnum char(18),rno char(10),cost money,paid money,paidtime datetime,primary key(cnum,rno),foreign key(rno)references room(rno))5.2 数据库关系图根据数据库中表的创建命令,在SQL sever 2000的企业管理器中生成的数据库关系图如下:6. 系统功能的实现6.1 建立触发器这个系统为数据表的更新建立了三个触发器,一个是在有新的客人入住时,插入客人入住信息,触发触发器,使房间信息得到更新;一个是在有客人入住之后,使触发器触发,更新入住信息表;另外一个是顾客预订时,触发触发器,更新预订信息。
★新浪微博名:99加油站★绝密课程设计说明书课程设计名称:数据库系统概论课程设计题目:客房信息管理子系统学院名称:信息工程学院专业:班级:学号:姓名:评分:教师:20 13 年 1 月 14 日引言本次数据库实习不要求界面和外部应用程序的设计,只设计数据库部分。
客房管理系统采用SQL server 2005作为数据库后台。
客房管理系统可以实现对客房的科学化、规范化、查询顾客情况、订房信息、以及结算信息等。
有助于提高管理的效率,客房管理系统是根据某宾馆对客房的实际情况进行集中的查询与管理工作,以及提高整个客房管理的工作效率。
数据库设计1.需求分析随着时代的发展,建立客房管理信息系统的必要性已越来越被广大的宾馆管理人员所接受和认可,建立客房管理信息系统是为宾馆的管理服务的,其根本目的是要提高客房管理效率,增加客房的经济效益。
因此,我根据一般宾馆的工作流程及环境,以及顾客的要求设计了这个客房管理系统。
这个数据库主要完成如下功能:1.实现客房信息、顾客信息的添加、删除、修改和查询等功能2.实现顾客预订或入住等信息的添加、删除、修改等功能3.实现统计各类信息并能合理安排住房的决策等问题4.实现查询某位顾客的消费情况,并拥有完善的结账报表系统5.实现完整性约束:每位顾客只能预订和入住一间客房,客房已满时提示顾客无法入住,规定预订客房的超出期限为3个小时,超期则取消本次预订。
2.系统功能需求分析客房信息管理子系统根据系统需求分析设计功能,管理功能功能是比较简单的。
主要实现了对客房信息、顾客信息、顾客预订、顾客入住和结账报表信息等的管理,具体管理功能有添加、修改、删除、查询和统计等。
系统的功能模块图如下图所示,其中的“信息管理”板块中的每一功能管理项都包括查看、添加、删除、修改等功能。
3. 数据库概念结构设计3.1 数据流程图根据了解到的情况,了解到了顾客住房的基本流程,结合宾馆实际管理过程和各种操作,由了解到的业务画出业务流程图,本系统的业务流程图如下所示:3.2 系统E-R图经调研分析后得简化客房信息管理子系统整体的基本功能,设计了如下E-R 图:4. 数据库逻辑结构设计4.1 关系模式按照E-R图到逻辑关系模式的转换规则,可将上面E-R图转换成如下5个关系:1.Room(rno,rsize,rprice,rstatus)2.Client(cnum,rno,cname,csex,cage,cphone,eorb)3.Book(cnum,rno,booktime,bookday,maxtime,bookway)4.Inhotel(cnum,rno,daynum,cost,paid,unpaid,cometime,paidtime)5.Account(cnum,rno,cost,paid,paidtime)其中带下划线的为关系的主码,既带下划线又加波浪线的为外码4.2 数据项定义根据关系模式中的各属性,定义数据项及其说明如下5. 数据库物理结构设计本系统数据库表的物理设计通过创建表的SQL命令及数据关系图来呈现,下面列出SQL创建表的命令和数据库关系图:5.1 创建表的命令创建客房信息表room:create table room(rno char(10) primary key,rsize char(10),rprice int,rstatus char(2)check(rstatus in('满','空')),)创建顾客信息表client:create table client(cnum char(18) primary key,rno char(10),cname char(10),csex char(2)check(csex in('男','女')),cage int,cphone char(11),foreign key(rno)references room(rno))创建顾客入住信息表inhotel:create table inhotel(cnum char(18),rno char(10),cometime datetime,paidtime datetime,days int,cost int,paid int,unpaid int,primary key(cnum,rno),foreign key(rno)references room(rno), foreign key(cnum)references client(cnum), )创建顾客预订信息表book:create table book(cnum char(18),rno char(10),booktime datetime,bookdays int,bookway char(20),maxtime datetime,primary key(cnum,rno),foreign key(rno)references room(rno), foreign key(cnum)references client(cnum), )创建结账报表account:create table account(cnum char(18),rno char(10),cost money,paid money,paidtime datetime,primary key(cnum,rno),foreign key(rno)references room(rno))5.2 数据库关系图根据数据库中表的创建命令,在SQL sever 2000的企业管理器中生成的数据库关系图如下:6. 系统功能的实现6.1 建立触发器这个系统为数据表的更新建立了三个触发器,一个是在有新的客人入住时,插入客人入住信息,触发触发器,使房间信息得到更新;一个是在有客人入住之后,使触发器触发,更新入住信息表;另外一个是顾客预订时,触发触发器,更新预订信息。
目录目录 (1)第一章系统分析 (2)一.可性行分析 (2)第二章需求分析 (2)第三章系统总体设计 (3)3.1总体设计 (3)3.2详细设计模块 (4)3.3 数据库设计 (5)3.4数据库需要分析 (5)3.4.1数据库分析 (5)3.4.2数据库概念结构设计 (7)3.4.3 数据库逻辑结构设计 (9)第四章系统代码设计及实现 (11)4.1 创建宾馆客房管理信息系统的主登录窗体 (11)4.2创建公用模块 (13)4.3 创建宾馆客房管理信息系统的主窗体 (14)4.4 创建主窗体的菜单 (15)4.5 客房标准设置 (20)4.6 客房查询 (23)4.7 住宿查询模块设计 (24)4.8 退房查询模块设计 (24)4.9 日结统计报表模块设计 (25)4.10 系统维护模块设计 (27)该模块主要用于数据恢复及备份用以保证数据安全打开系统维护-数据备份 (27)4.11 权限设置模块 (28)4.12 安全退出模块设计 (31)第五章系统的编译和发行 (31)第六章实训总结 (32)第一章系统分析一.可性行分析可行性分析是指在允许的成本、性能要求下,分析每项需求实施的可行性,提出需求实现的相关风险,包括与其它需求的冲突,对外界因素的依赖和技术障碍。
可行性分析包括操作可行性、技术可行性、经济可行性和进度可行性。
下面是对酒店管理系统的可行性分析。
1. 进度可行性:鉴于本系统的目标要求和特点,能够保证在预期的时间内完成该系统的研究和设计。
2.经济可行性:本系统开发完成后可缩减工作时间,提高工作效率,而且简单易操作,不需对使用人员进行培训,不管是在资金上还是效率上都能达到预期的效果。
3. 技术可行性:从目前比较流行的数据库开发、管理软件来看;对于比较简单的中小型数据库,和SQL Server 2000的结合无疑是在实际应用中较为成功的一种解决方案。
前者为用户提供了Windows所一贯坚持的非常友好、操作简单的用户界面.;后者则可对数据库实施操作、维护和权限识别功能,也可通过与SQL语句的结合对数据库进行更为复杂的操作。
酒店管理系统数据库表和SQL010.tydis扩展:物价赔偿表采购表员工表数据库的表分别为:管理员信息表(operator),房间类型表(roomType), 房间信息表(roomInfo),客户类型表(customerType),客户信息表(customer),入住信息表(liveIn),预订信息表(engage),结账表(account),酒店简介表(companyIntroduce),酒店新闻表(news),天气信息表(temp),特惠信息表(tehui)。
create table roomType(PK integer primary key, roomTypeID char(1) check(roomTypeIDin('A','B','C','D','E','F','G','H')) uniquenot null,roomTypeName varchar2(15) not null, roomPrice float not null, roomBedNum int,foregift float,cl_room int,cl_price float,remark varchar2(40),delmark int);/create table operator(PK integer primary key,userID varchar2(10) unique not null, pwd varchar2(10) not null,puis int,in_time date,login_num int);/create table customer(PK integer primary key,c_ID varchar2(20) unique not null, pwd varchar2(15) not null,c_name varchar2(15) not null, c_sex char(2) check(c_sex in('男','女')) not null, zj_type varchar2(15) not null, zj_no varchar2(20) not null, c_addr varchar2(40),c_tel varchar2(20) not null, remark varchar2(40),delmark int,c_type_id char(1),jifen int,foreign key(c_type_id) references customerType(customerID));/create table customerType(PK integer primary key,customerID char(1) check(customerID in('A','B','C','D','E','F','G')) unique notnull,c_type_name varchar2(15) not null, dis_attr varchar2(15),discount float,remark varchar2(40),delmark int);/create table roomInfo(PK integer primary key,roomID char(3) not null unique,roomTypeID char(1) not null, roomState char(1) check(RoomStatein('0','1')) not null,roomTel varchar2(10) not null, roomLoc varchar2(10),remark varchar2(40),delmark int,foreign key (roomTypeID) references roomType(roomTypeID));/create table liveIn(PK integer primary key,in_no varchar2(10) not null unique, roomID char(3) not null,c_ID varchar2(10),c_name varchar2(15) not null, c_sex char(2) check(c_sex in('男','女')) not null, zj_type varchar2(15) not null, zj_no varchar2(25) not null, addr varchar2(50),renshu int,in_time date,leave_time date,delmark int,--客户离开c_tel varchar2(20),foreign key (roomID) references roomInfo(roomID));/create table engage(PK integer primary key,c_ID varchar2(10) not null, roomID char(3) not null,engage_time date,in_time date,leave_time date,engage_mark int,delmark int,foreign key (roomID) references roomInfo(roomID),foreign key (c_ID) references customer(c_ID));/create table account(chk_ID varchar2(10) primary key, in_no varchar2(10) not null, chk_time date,days int,money float,userID varchar2(15),delmark int,foreign key (in_no) references liveIn(in_no),foreign key(userID) references operator(userID));/create table record(PK integer primary key,userID varchar2(15) not null, brief varchar2(20),in_no varchar2(10) not null, delmark int,foreign key (userID) references operator(userID),foreign key (in_no) references liveIn(in_no));/create table companyIntroduce( PK integer primary key, brief varchar2(2000));create table news(PK integer primary key, type varchar2(40) not null, title varchar2(40) not null, in_time date,brief varchar2(500));create table temp(PK integer primary key, day date,tempa int,tianqi varchar2(30));create table tehui(PK integer primary key, title varchar2(50) not null, brif varchar2(500),in_time date);--select deptno,max(sal) as max1,max(decode(t,2,sal)) asmax2,min(sal) as max3 from--(select empno,ename,sal,t,deptno from--(select empno,ename,sal,row_number() over (partition by deptno order by sal desc)t,deptno--from emp) e1--where e1.t<=3)--group by deptno每个房间类型住的人次数 num_per_roomtypeselect r.*,t.roomprice,t.roombednum from(select t.roomTypeID,t.roomTypeName,count(*) as num from roomType t,roomInfo r,liveIn iwhere i.roomID=r.roomID and r.roomTypeID=t.roomTypeID andi.in_time>=to_date('2012-1-1','yyyy-mm-dd') andi.leave_time<=to_date('2012-11-1','yyyy-mm-dd') group byt.roomTypeID,roomTypeNameorder by roomTypeID,roomTypeName) r,roomType t wherer.roomTypeID=t.roomTypeIDselect count(*) as num from livein iwhere i.in_time>=to_date('2012-1-1','yyyy-mm-dd') andi.leave_time<=to_date('2012-6-1','yyyy-mm-dd')--select count(a.O_LOG_ID) from por_log a whereto_char(a.OPER_TIME,'yyyymm')>='201110'一年的每个月收入总额 money_per_yearselect sum(money) as moneytotle,to_char(chk_time,'yyyymm') month from accountwhere to_char(chk_time,'yyyy')='2008'group by to_char(chk_time,'yyyymm')order by to_char(chk_time,'yyyymm')那个个月的收入详细信息 money_per_monthselecta.chk_ID,i.c_name,i.c_sex,i.c_tel,i.in_time,i.leave_time,a.days,a.mo ney,r.roomID,t.roomTypeNamefrom account a,liveIn i,roomInfo r,roomType twhere to_char(a.chk_time,'yyyymm')=? and a.in_no=i.in_noand i.roomID=r.roomID and r.roomTypeID=t.roomTypeID某个时间段内消费前N高的客户 high_pay_customerselect distinct(l.c_sex),l.c_tel,l.zj_no,l.addr,e.* from (select t.* from (select i.c_name,sum(a.money) as xiaofei from account a,liveIniwhere a.in_no=i.in_no andto_char(a.chk_time,'yyyymm')>='201201' andto_char(a.chk_time,'yyyymm')<='201211'group by i.c_nameorder by sum(a.money) desc) twhere rownum<=4) e,livein lwhere e.c_name=l.c_nameorder by e.xiaofei desc某个时间段内住宿次数前N高的客户select distinct(l.c_sex),l.c_tel,l.zj_no,l.addr,e.* from (select * from(select count(*) as cishu,i.c_namefrom account a,liveIn iwhere a.in_no=i.in_no andto_char(a.chk_time,'yyyymm')>='200801' andto_char(a.chk_time,'yyyymm')<='201211'group by i.c_nameorder by count(*) desc)where rownum<=1) e,livein l where e.c_name=l.c_name order by cishu desc日结账统计表当日开房报表。
use hoteldbgo1) 统计每年宾馆总收入select sum(总账) as 总收入from 入住记录group by year(入住时间)2) 统计每个旅客总消费额,并按身份证号码从小到大排序select 身份证号码,sum(总账) as 总消费from 入住记录group by 身份证号码order by 身份证号码asc3) 统计2008年各旅客总消费额,并按身份证号码从小到大排序select 身份证号码,sum(总账) as 总消费from 入住记录where year(入住时间)=2008group by 身份证号码order by 身份证号码asc4) 统计2009年各旅客总消费额,并按身份证号码从小到大排序select 身份证号码,sum(总账) as 总消费from 入住记录where year(入住时间)=2009group by 身份证号码order by 身份证号码asc5) 统计每个年度每个旅客的总消费额select 身份证号码,year(入住时间) as 时间,sum(总账) as 总消费from 入住记录group by 身份证号码,year(入住时间)6) 统计2008年各旅客入住次数,按入住次数降序排列select 身份证号码,count(*) as 入住次数from 入住记录where year(入住时间)=2008group by 身份证号码order by count(*) desc7) 统计2009年各旅客入住次数,按入住次数降序排列select 身份证号码,count(*) as 入住次数from 入住记录where year(入住时间)=2009group by 身份证号码order by count(*) desc8) 统计每个年度每个旅客的入住次数,按入住次数降序排列select 身份证号码,year(入住时间) as 时间,count(*) as 入住次数from 入住记录group by 身份证号码,year(入住时间)order by count(*) desc9) 统计每个年度每个旅客的单次的最高消费金额与最低消费金额select 身份证号码,year(入住时间) as 时间,max(总账) 最高消费金额,min(总账)as 最低消费金额from 入住记录group by 身份证号码,year(入住时间)order by count(*) desc10) 统计每年宾馆总收入,只显示总收入>8000的年份及收入的金额select sum(总账) as 总收入from 入住记录group by year(入住时间)having sum(总账)>800011) 查看入住次数超过2次的旅客信息select 身份证号码,count(*) as 入住次数from 入住记录group by 身份证号码having count(*) >2order by count(*) desc12) 查看各个房型的房间数select 房型, count(*)as 房间数from 客房信息group by 房型13) 查看以A开头的房型对应的房间数select 房型, count(*)as 房间数from 客房信息where 房型like'A_'group by 房型14) 统计宾馆每年每月的营业额select year(入住时间) as 时间,month(入住时间)as 时间,sum(总账) as 营业额from 入住记录group by year(入住时间),month(入住时间)order by year(入住时间),month(入住时间)15) 查看房间总数超过5个的房型select 房型, count(*)as 房间数from 客房信息group by 房型having count(*)>516) 查看以B开头且房间数目超过五个的房型对应的房间数,要求按房间数降序select 房型,count(*) as 房间数from 客房信息where 房型like'B_'group by 房型having count(*)>5order by count(*) desc17) 现需查询在2008 年1 月1 日到2008 年12 月31 日期间,在该宾馆住宿次数大于2次的客人身份证号,并且按照入住次数进行降序排列select 身份证号码,count(*) as 入住次数from 入住记录where year(入住时间)=2008group by 身份证号码having count(*)>2order by count(*) desc。
信息技术学院《数据库应用实践》设计报告名称:酒店管理系统专业:计应班级:10-1学生姓名:刘斌学号:18一、业务流程描述酒店介绍:大致介绍下酒店的历史及其现状和未来的规划。
客房的介绍:主要介绍下酒店各个价位房间。
客房的预定:可以通过网络进行预定,预定修改,取消预订。
客房管理:预定管理、客房查询、设置房态、开房、换房、续住、退房等管理。
员工管理: 员工修改信息、人员调配。
账务管理:主要是处理酒店的日常的账务报表,收入报表(前台收入明细表、现付收入明细表)、消费报表等。
二、业务流程图或数据流程图三、E-R图四、逻辑结构设计(关系模式)旅客信息(旅客姓名,性别,身份证号,住房或预订);房间信息(房间号,房间类型,是否空房,是否预订,房价);住房记录(入住时间,身份证号,房间号);收费标准(房间类型,房价);订房记录(预订时间,预订入住时间,预订住房天数,身份证号,房间号);住房历史记录(旅客姓名,性别,身份证号,房间号,房间类型,房价,退房时间,住房天数,费用);餐厅信息(员工姓名,员工号);客房服务(员工号,员工姓名);旅客信息主键身份证号;房间信息主键房间号,外键引用收费标准表的房间类型;住房记录主键房间号,外键引用旅客信息表的身份证号,房间信息表的房间号;收费标准主键房间类型;订房记录主键房间号,外键引用旅客信息表的身份证号,房间信息表的房间号;住房历史记录主键入住时间;餐厅信息主键员工号;客房服务主键员工号;五、物理模型设计旅客信息房间信息六、相关SQL语句1. 创建数据库create database 酒店管理系统gouse 酒店管理系统go2.创建数据表(含主键、外键定义及约束性条件设计)1、收费标准表create table 收费标准表/*收费标准*/ (房间类型 char(16),房价 int not null,primary key(房间类型))2、房间信息表create table 房间信息表/*房间信息*/ (房间号 char(5),。
宾馆客房管理数据库介绍宾馆客房管理数据库是一个用于管理宾馆客房信息的数据库系统。
该系统通过集中管理客房信息、客户信息和预订信息等数据,帮助宾馆进行客房管理、客户服务和预订管理等工作。
数据库结构该数据库由多个关键表组成,主要包括以下几个部分:客房信息表•客房ID:客房的唯一标识符,采用自增长方式生成。
•客房类型:客房的类型,如单人间、双人间、套房等。
•房间号:客房的具体房间号。
•客房状态:客房的当前状态,如空闲、已预订、已入住等。
•客房价格:客房的价格,用于计算客户的住宿费用。
客户信息表•客户ID:客户的唯一标识符,采用自增长方式生成。
•姓名:客户的姓名。
•联系电话:客户的联系电话。
•身份证号:客户的身份证号码。
•入住日期:客户的入住日期。
•离店日期:客户的离店日期。
预订信息表•预订ID:预订信息的唯一标识符,采用自增长方式生成。
•客户ID:预订客户的ID。
•客房ID:预订的客房ID。
•预订日期:客房预订的日期。
宾馆客房管理数据库提供了以下几个功能模块:客房管理客房管理模块允许宾馆管理人员对客房信息进行增加、删除和修改操作。
管理员可以添加新的客房信息,并对客房的类型、房间号和价格等进行修改。
同时,管理员也可以将客房设置为不可用状态,以便进行维护或其他用途。
客户管理客户管理模块允许宾馆管理人员对客户信息进行增加、删除和修改操作。
管理员可以添加新的客户信息,并对客户的姓名、联系电话和身份证号等进行修改。
同时,管理员也可以在客户入住或离店时更新客户的入住日期和离店日期。
预订管理模块允许宾馆管理人员对客房预订信息进行增加、删除和修改操作。
管理员可以添加新的预订信息,并在客户预订或取消预订时更新相关数据。
管理员也可以根据预订日期和客房状态进行查询,以便管理客房的预订情况。
报表生成报表生成模块允许宾馆管理人员生成客房状态报表、客户入住报表和客房收益报表等。
这些报表提供了对客房利用率、客户入住情况以及宾馆收益等数据的统计和分析,帮助管理人员做出更准确的决策。
SQL数据库作业酒店管理酒店管理是一项综合性的任务,需要同时处理客户信息、房间预订和员工安排等多个方面。
在这个过程中,SQL数据库是酒店管理系统中至关重要的一部分。
本文将介绍SQL数据库在酒店管理中的应用,并探讨其优势和挑战。
首先,SQL数据库在酒店管理中的应用是多方面的。
首先,数据库可以用来存储和管理客户信息。
当顾客预订房间时,他们的个人信息需要被收集和存储,如姓名、电话号码、支付方式等。
这些信息可以被存储在数据库中,并方便地用于以后的查询和使用。
其次,数据库也可以被用来管理酒店的各类房间信息。
包括房间号、价格、类型、入住和退房时间等都可以被存储和查询。
此外,员工信息和工作安排也可以通过数据库进行管理。
酒店可以将员工的个人信息、工作时间安排以及工资等信息存储在数据库中,方便管理。
使用SQL数据库的酒店管理系统有许多优势。
首先,数据库可以提高数据的安全性。
通过设置合适的权限和访问控制,可以确保只有授权人员能够访问和修改数据库中的数据。
其次,数据库的查询和修改操作非常高效。
通过使用SQL语句,可以快速查询到需要的信息,如空房间、客户订单等。
由于SQL数据库的索引和优化功能,数据的读取和写入速度也得到了提高。
此外,数据库还可以实现数据的备份和恢复,确保数据的安全性和完整性。
然而,SQL数据库的应用也面临一些挑战。
首先,对于大型酒店管理系统而言,数据库的容量可能十分庞大。
这就需要专业的数据库管理人员来进行性能调优和数据库监控。
其次,数据库的维护和更新是一项长期而繁琐的任务。
例如,当酒店增加新的房间或员工时,需要及时更新数据库中的相应信息。
最后,数据库的安全性和隐私保护也是一个重要的问题。
酒店需要采取措施保护数据库中客户的隐私信息,避免数据泄露和滥用。
为了更好地应对这些挑战,酒店管理系统可以采用一些最佳实践。
首先,酒店需要拥有一支专业的数据库管理团队,负责数据库的性能和安全等方面的管理。
其次,定期进行数据库的备份和恢复测试,以确保数据的完整性和可用性。
错误!未一、需求分析 (4)1.1 基本要求 (4)1.1.1 业务要求 (4)1.1.2 信息要求 (4)1.1.3 处理要求 (4)1.1.4 安全性与完整性要求 (5)1.2 数据流图、数据字典 (5)1.2.1 数据流图 (5)1.2.2 数据字典 (6)二、功能设计 (7)2.1 系统功能 (7)2.1.1 基础信息设置 (7)2.1.2 客房前台管理 (7)2.1.3 查询统计管理 (8)2.1.4 结账管理 (8)2.1.5 系统初始设计 (8)2.1.6 系统维护 (8)2.2系统功能结构图 (8)2.2系统功能结构图 (8)三、ER模型 (9)四、数据库设计结构 (11)4.1 数据库表设计 (11)4.11 实体属性 (11)4.12 数据库表 (11)4.2 约束设计 (13)4.2.1 主外键约束 (13)4.2.2 列值唯一 (13)4.2.3 其他约束 (14)4.3 索引设计 (14)4.4 数组组织约定 (14)4.4.1 各实体之间的关联关系情况 (14)5.1 设计的不足 (15)5.2 设计的改善方向 (15)找到索引项。
宾馆客房管理系统的数据库设计宾馆客房管理系统的数据库设计近年来,我国现代酒店业迅猛发展,市场竞争日趋激烈,传统的管理方法已经不能适应现代社会的需要,全面提高宾馆客房管理系统已成为酒店业发展的当务之急。
因此,本论文旨在设计出一套高效、精确、便捷的管理系统,以实现宾馆对客房的科学化、规范化和信息化管理,提高宾馆的管理水平和竞争力。
宾馆管理系统是对宾馆管理系统的现代化、网络化,逐步摆脱当前宾馆管理的人工管理方式,拓展经营空间,降低运营成本,提高管理和决策效率而开发的。
传统的宾馆计算机管理系统主要包括前台管理系统和后台管理系统两大部分,基本包含了宾馆主要业务部门,初步实现了对顾客服务和进行财务核算所需要的各个功能。
它包括客户信息管理、客房信息管理、入住和退房管理、客房类型管理、费用管理、价目信息管理等6大功能模块,并提供了对各功能模块的查询和更新功能。
其中客户信息管理、入住和退房管理是系统开发的重点。
本文讲述的是基于客户/服务器的宾馆管理系统,实现了宾馆管理的信息化。
本系统涉及数据库方面的技术,采用SQL语言来实现。
一、需求分析1.1 基本要求通过调查宾馆对客房、员工、业务的管理方式,充分了解原宾馆客房管理系统的工作概况,明确宾馆管理的业务需求、信息需求、处理需求、安全性与完整性要求。
1.1.1 业务要求针对宾馆的订房、入住、退房等业务的调查,明确用户的业务需求如下:1、基础信息设置:设置客房信息、设置员工信息2、客房前台管理:客房预订、住宿登记、调房登记、客房续住、退房结账3、查询统计管理:客房查询、房态查询、预订查询、住宿查询、退宿查询4、结账管理5、系统初始设计:本单位定义、业务部门定义6、系统维护:系统初始化、操作员管理、权限设置1.1.2 信息要求对于宾馆客房管理,用户需要从数据库中获得的信息有很多,包括客房信息、顾客信息以及员工信息等,全面分析有信息要求如下:1、该数据库可以存取的数据包括客房信息、顾客信息、员工信息及住宿信息2、前台接待员可以查看客房、宾客信息,可以查看客房使用情况,还可以查看统计入住、预订和退房记录。
3、后台管理者可以对客房、员工的信息进行管理和查看,可以设置员工的权限,可以查看客房使用情况,还可以查询统计预订和退房情况。
1.1.3 处理要求宾馆需要对顾客的调房要求、客房续住等进行处理,对处理的响应时间和处理方式都有一定的要求——响应时间,越短越好,单机处理。
前台登记处理:前台接待员为顾客进行入住、预订、退房、调房、退订登记。
预订客房:顾客信息与客房信息建立一一对应联系,客房状态由空转至非空。
入住:分房卡后,顾客信息将与其对应的客房信息建立一一对应的联系,客房状态转至非空。
退房:顾客持房卡去前台登记退房,顾客信息与账单信息一一对应,客房状态转至空。
调房:根据顾客要求为其调换房间,原客房状态转为空,新开客房信息与顾客建立新的一一对应的联系新的客房转为非空。
续住:前台接待员可以根据入住延期情况,对顾客追加押金。
1.1.4 安全性与完整性要求对于宾馆客房管理,并不是所有人都可以进入管理系统,因而需要设置一定的权限或其他的安全性与管理性要求:1、不同的用户拥有不同的权限,系统根据用户权限,进入不同的功能界面。
权限分为两类:一个是后台管理者权限,一个是前台接待员权限。
普通员工无权登录此系统。
2、密码正确才可登录系统。
1.2 数据流图、数据字典调查了解用户需求以后,采用结构化分析方法,自顶而下、逐层分解系统,得到数据流图、数据字典、判定表等来表达数据与处理过程的关系。
1.2.1 数据流图1.2.2 数据字典1、数据项数据项名称数据类型及其长度说明预定人字符,可变长度10 不能为空预定人电话字符,可变长度15客人姓名字符,可变长度10客人身份证号码字符,可变长度18订单编号字符,可变长度36 不能为空入住单号字符,可变长度36 不能为空客房编号字符,可变长度6 不能为空账单编号字符,可变长度36 不能为空客房类型字符,可变长度10客房价格货币型客房状态字符,可变长度2 不能为空抵店时间日期型入住人数字符,可变长度10入住天数字符,可变长度10入住时间日期型不能为空退房时间日期型订单状态字符,可变长度42、数据结构数据结构 含义说明组成顾客 客房管理系统的主体数据结构,定义了一个顾客的相关信息顾客编号,顾客姓名,性别,身份证号客房 客房管理系统的主体数据结构,定义一个客房的相关信息 客房编号,客房类型,客房价格,客房状态客房信息单登记有关客房住宿信息客房编号,入住时间,住宿天数,押金,证件号二、功能设计2.1 系统功能2.1.1 基础信息设置1、设置客房信息:对客房的基本信息进行增加、修改、删除,不断更新。
2、设置员工信息:对员工的基本信息进行增加、修改、删除,不断更新。
2.1.2 客房前台管理1、客房预订:可以通过前台登记处或网上实现客房预订。
2、住宿登记:顾客入住宾馆登记信息。
3、调房登记:顾客有合理情由时为其调换客房。
4、客房续住:顾客根据自身情况增加住宿天数,通过前台办理续住并增加 押金。
5、退房结账:可以选择挂账、打折等多种方式,并可以在此增加其他消费 项目的费用,结账由前台办理。
入住单状态 字符,可变长度4 消费金额 货币型备注字符,可变长度402.1.3 查询统计管理1、客房查询:通过客房编号查询客房基本信息。
2、房态查询:通过客房编号查询客房是否为空。
3、预订查询:通过顾客姓名查询预订信息。
4、住宿查询:通过顾客编号查询住宿信息。
5、退宿查询:通过顾客姓名查询退宿信息。
2.1.4 结账管理结账方式:可以选择挂账、现金、刷卡、会员优惠等多种方式。
2.1.5 系统初始设计1、本单位定义:设置本单位的基本信息。
2、业务部门定义:设置各业务部门的相关信息。
2.1.6 系统维护1、系统初始化:清空目前的系统数据,将系统恢复为初始状态。
2、操作员管理:高级管理员登录后可进行操作员的添加、删除以及信息更改。
3、权限设置:可以设定管理者的管理权限以及具体的可操作功能。
登录设置,密码匹配者可进入系统进行操作管理。
2.2系统功能结构图2.2系统功能结构图宾馆客房管理系统基础信息设置客房前台管理查询统计管理结账管理系统初始设计系统维护三、ER 模型设置客房信息 设置员工信息客房预订 住宿登记 调房登记 客房续住 退房结账客房查询 房态查询 预订查询 住宿查询 退宿查询 结账方式本单位定义业务部门定义系统初始化 操作员管理权限设置m nn 1n1n 11n1111 1 1 顾 客退房结算账单登记 客 房 预订预订人 结算前台接待员管理管理员办理业务管理 服务员 服务 顾 客账单编号 客房编号 地 址 身份证号年 龄性 别 姓 名 顾客编号预订人身份证号客房编号预订编号姓 名结算账单账单编号入住时间退房时间消费金额前台接待员编号客房客房价格客房编号客房类型 客房状态 前台接待员密 码顾客编号账单编号姓 名前天接待员编号管理员密码口令姓 名 管理员编号服务员姓名服务员编号四、数据库设计结构4.1 数据库表设计4.11 实体属性顾客(顾客编号,姓名,性别,年龄,身份证号,地址,客房编号,账单编号)预订人(姓名,身份证号,预订编号,客房编号)客房(客房编号,客房类型,客房状态,客房价格)住宿(顾客编号,客房编号,押金,入住时间,退房时间)前台接待员(前台接待员编号,姓名,账单编号,顾客编号,密码)管理员(管理员编号,姓名,密码口令)服务员(服务员编号,姓名)结算账单(账单编号,消费金额,入住时间,退房时间,前台接待员编号)4.12 数据库表1、顾客表(customer)列名数据类型长度允许空字段说明主外键Cu_id int 4 0 顾客编号 PK,FK Cu_name varchar 10 1 姓名Cu_sex varchar 2 1 性别Cu_age int 2 1 年龄Cu_idnum varchar 18 0 身份证号Cu_add varchar 50 1 地址Room_id int 4 0 客房编号FK Pay_id int 4 0 账单编号FK2、预订人表(advancer)列名数据类型长度允许空字段说明主外键Ad_name varchar 10 1 姓名Ad_idnum varchar 18 0 身份证号Ad_id int4 4 0 预订编号PK Room_id int4 4 0 客房编号PK Fro_id int 4 0 前台接待员编号3、客房表(room)列名数据类型长度允许空字段说明主外键Room_id int 4 0 客房编号PK,FK Room_typ varchar 10 0 客房类型Room_pri money 0 客房价格Room_sta varchar 2 0 客房状态4、住宿表(ch)列名数据类型长度允许空字段说明主外键Cu_id int 4 0 顾客编号FK Room_id int 4 0 客房编号FK deposit money 0 押金begintime datetime 0 入住时间endtime datetime 0 退房时间5、前台接待员表(fronter)列名数据类型长度允许空字段说明主外键Fro_id int 4 0 前台接待员编号PK Fro_name varchar 10 1 姓名Pay_id int 4 0 账单编号Cu_id int 4 0 顾客编号Fro_password varchar 10 0 密码Man_id int 4 0 管理员编号3、管理员表(manage)列名数据类型长度允许空字段说明主外键Man_id int 4 0 管理员编号PK Man_name varchar 10 1 姓名Man_password varchar 10 0 密码口令7、服务员表(employee)列名数据类型长度允许空字段说明主外键Emp_id int 4 0 服务员编号PKEmp_name varchar 10 1 姓名Man_id int 4 0 管理员编号8、结算账单表(payment)列名数据类型长度允许空字段说明主外键Pay_id int 4 0 账单编号PK,FK begintime datetime 0 入住时间endtime datetime 0 退房时间money money 0 消费金额Fro_id int 4 0 前台接待员编号4.2 约束设计4.2.1 主外键约束主键表主键外键表外键customer Cu_id ch Cu_idadvancer Ad_idroom Room_id customer Room_idroom Room_id advancer Room_idroom Room_id ch Room_idmanage Man_idemployee Emp_idpayment Pay_id customer Pay_id4.2.2 列值唯一1、customer表中的cu_id、cu_idnum、room_id、pay_id列取值唯一;2、advancer表中ad_id、ad_idnum、room_id列取值唯一;3、room表中room_id列取值唯一;4、ch表中cu_id、room_id列取值唯一;5、fronter表中fro_id、pay_id、cu_id列取值唯一;6、manage表中man_id列取值唯一;7、payment表中pay_id列取值唯一;8、Employee表中emp_id列取值唯一。