数据库课程设计酒店管理系统.docx
《数据库课程设计酒店管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计酒店管理系统.docx(37页珍藏版)》请在冰豆网上搜索。
数据库课程设计酒店管理系统
题目:
_酒店管理系统
指导老师:
___汤德佑
姓名:
___苏汉霖______
班级:
_2010级软件2班
学号:
2____
一、需求分析············································3
1、背景分析·······································3
2、需求描述·······································3
二、数据字典和数据流图··································4
1、数据项·········································4
2、数据结构·······································5
3、数据存储·······································6
4、处理过程·······································6
5、数据流图·······································7
三、系统整体结构设计····································9
四、概念结构设计(E-R图)································11
五、逻辑结构设计·······································12
1、与总E-R图对应的关系模式······················13
2、优化后的数据模型······························14
3、系统实现······································18
一、需求分析
1、背景说明
随着社会经济的发展,人们对生活质量的要求越来越高,人
们的生活水平和消费意识的提高,促进了旅游业的发展,作为服
务之一的宾馆、酒店、旅店等服务业业也在不断的完善服务体制。
酒店行业是集餐饮、住宿、娱乐于一体的立体化服务体系。
面对
快速发展的信息产业带来的影响,酒店行业将面临着机遇和挑战。
如何利用先进的管理手段,提高客房的管理水平,是每一酒店管理者所面临的重要课题。
简单的服务标准已不是制胜的锦囊,只有管理做到最细微之处才能让顾客体会到酒店服务的高标准,高质量。
而准确、快捷、周全往往就是最基本的成功要素。
面对信息时代的挑战,利用技术手段提高企业管理无疑是一条行之有效的途径。
因此采用电脑管理业务、财务等诸多环节已成为推动宾馆酒店业快速发展的先决条件。
2、需求描述
目前大多数就顶啊提供的服务多种多样,规模大小也各不相
同,但一般规模的酒店都具备一下三类服务:
饮食、住宿和娱乐。
酒店管理是现代化商业管理中一个极其重要的工作,酒店管理系
统应用在局域网上,系统地、全面地支持宾馆管理和服务的全过
程。
主要目标是实现对宾馆内部各种管理的电子化、自动化、提
高各个部门之间的办公效率,为高质量的宾馆服务提供保证。
系统功能需求如下:
1、登陆功能:
登陆向导
2、员工管理
2-1、员工查询:
根据员工的姓名、编号、性别、等级等查询获取员工的信息
2-2、增加新员工:
酒店新招聘员工,录入新员工的信息
2-3、删除员工:
实现删除员工信息
3、业务管理
3-1、入住登记:
顾客入住,登记顾客的相关信息
3-2、删除入住登记:
顾客退房离开酒店,删除相关记录
3-3、查询:
查询满足顾客需求的空房间、查询房间的住户相关信息
3-3、预约:
顾客可以提前打电话预约房间
3-4、删除预约:
删除无效的预约
3-5、查询账单:
按日期查询当天的收支情况
3-6、更新:
更新入住顾客的入住信息,比如更换房间、延长入住时间等
二、数据字典和数字流图
1、数据项
编号
数据项名称
类型
说明
1
Rno
Int
房间号码,唯一性
2
Rtype
Varchar
房间类型,枚举类型:
单人房、双人房、三人房、豪华包间、总统套房
3
Rstate
Int
房间状态,枚举类型:
1(已住),0(空房)
4
Rprice
Int
房间价格
5
Cname
Varchar
入住顾客姓名
6
Sno
Int
服务编号,唯一性
7
Eno
Int
员工编号,单一性
8
Ename
Int
员工姓名
9
Eage
Int
员工年龄
10
Esex
Varchar
枚举类型:
男、女
11
Eworktime
Varchar
工作时间
12
Eclass
Int
员工等级,枚举类型:
1,2,3,4,5
13
Edepartment
Varchar
员工所属部门,枚举类型:
财务部、前台接待部、餐饮服务部、卫生部、经理部
14
Cname
Varchar
入住顾客姓名
15
Csex
Varchar
入住顾客的性别
16
CID_card
Int
入住顾客的身份证号码
17
Cbed_number
Int
入住顾客的床位数
18
In_date
Date
入住日期
19
Out_date
Date
退房日期
20
Stype
Varchar
服务类型,枚举类型
21
Sprice
Int
服务价格
22
Sdepartment
Varchar
服务所属的部门
23
Rname
Varchar
预约顾客的姓名
24
Rsex
Varchar
预约顾客的性别,枚举类型
25
Rphonenumber
Int
预约顾客的电话号码
26
RID_card
Int
预约顾客的身份证号码,唯一性
27
Dno
Int
部门编号,唯一性
28
Dname
varchar
部门名字
29
Dmanager
varchar
部门主管
30
De_no
Int
部门人数
31
BDate
Date
日期
32
Bno
Int
账单编码
33
Getin
Int
收入
34
Getout
Int
支出
35
Profit
Int
收益
2、数据结构
编号
数据结构名
属性
1
Room“
Rno,Rtype,Rstate,Rprice
2
Customer_information
Cname,Csex,CID_card,Cbed_number,Rno,In_date,
Out_date
3
Curtomer_service
Cname,Rno,Sno
4
Employee
Eno,Ename,Eage,Esex,Eworktime,Eclass,Esepartment
5
Page
Eno,Etotalpage,Eactualpage,Ebonus
6
Serve
Sno,Stype,Sprice,Sdepatrment
7
Reserve_customer
Rname,Rsex,Rphonenumber,RID_card,In_Date,Out_Date,Rno
8
Department
Dno,Dname,Dmanager,De_no
9
Bill
BDate,Bno,Getin,Getout,Profit
3、数据存储
数据存储名
输入数据流
输出数据流
说明
员工信息
员工基本信息
员工基本信息
部门信息
部门基本信息
部门基本信息
顾客信息
顾客基本信息
顾客的房号、业务等
住房信息
住房类型
房间状态和房号
服务项目信息
服务编号
服务的相关信息
财务信息
日期
当天的收入支出和利益
4、处理过程
编号
处理过程名
输入数据
输出数据
1
增加新员工
终端
员工基本信息
2
删除老员工
终端
员工基本信息
3
调配工作
当前员工工作
员工基本信息
当前部门信息
员工新工作
更新后的部门信息
4
入住登记
终端
顾客基本信息
顾客基本业务需求
5
顾客退房
终端
删除退房顾客的相关信息
6
调配(更换)住房
顾客需求
目前住房信息
更新后的住房信息,顾客的需求信心
7
支出情况
终端
支出情况
8
收入情况
终端
收入情况
9
获利
终端
当天的支出、收入和获利情况
5、数据流图
(1)、入住登记业务
对新入住的顾客进行基本信息的录入、分配房间,登记顾客的姓名、性别、身份证号码、所需床位数、入住日期、离开日期
对于退房的顾客从系统中级联删除其信息,包括在顾客信息表中删除退房顾客的相关信息,以及在顾客预订服务表中的相关信息
(2)、服务业务:
包括娱乐业务和餐饮业务等;
顾客入住酒店后可以根据需要查询相关娱乐服务等服
务业务,例如早晨叫醒和叫餐等等业务
(3)、财务状况:
三、系统整体
四、概念结构设计(E-R图)
1、Page和Employee:
2、Department和Serve:
3、Customer和Room
总的E-R图
五、逻辑结构设计
1、与总E-R图对应的关系模式:
Room=(Rno,Rtype,Rstate,Rprice);
Customer_information=
(cname,csex,CID_card,Cbed_number,Rno
In_date,Out_date,sno)
Employee=(Eno,Ename,Eage,Esex,
Eworktime,Eclass,Esepartment)
Page=(Eno,Etotalpage,Eactualpage,Ebonus)
Serve=(Sno,Stype,Sprice,Sdepatrment)
Reserve_customer=(Rname,Rsex,Rphonenumber,
RID_card,In_Date,Out_Date,Rno)
Department=(Dno,Dname,Dmanager,De_no)
Bill=(BDate,Bno,Getin,Getout,Profit)
其他联系说明如下:
Page和Employee的关系式一对一;
Employee和Department的关系是多对一;
Employee和Room的关系是多对多;
Room和Customer的关系是多对多;
Customer和Serve的关系是多对多的;
Department和Serve的关系是多对多的;
2、优化后的数据模型:
按照数据依赖对关系进行逐一分析,消除冗余:
Room=(Rno,Rtype,Rstate,Rprice);
Customer_information=
(cname,csex,CID_card,Cbed_number,Rno,In_da
te,Out_date)
Customer_service=(Cname,Rno,Sno)
Employee=(Eno,Ename,Eage,Esex,
Eworktime,Eclass,Esepartment)
Page=(Eno,Etotalpage,Eactualpage,Ebonus)
Serve=(Sno,Stype,Sprice,Sdepatrment)
Reserve_customer=(Rname,Rsex,Rphonenumber,
RID_card,In_Date,Out_Date,Rno)
Department=(Dno,Dname,Dmanager,De_no)
Bill=(BDate,Bno,Getin,Getout,Profit)
3、用户子模式设计
(1)、经理子系统用户子模式
Page=(Eno,Etotalpage,Eactualpage,Ebonus)
因为经理对于员工其他情况例如基本信息不会经常关
注,经常使用的事以上几项,所以在经理子系统上设立员
工子模式
(2)、住宿系统用户子模式
Customer_service=(Cname,Rno,Sno)
入住顾客信息录入完毕后不会被经常访问,管理人员
更加关注顾客的服务需求,所以设立此模式
4、系统实现
系统测试方案和测试报告:
建立数据库:
--创建表
ifOBJECT_ID('Room')isnotnull
DroptableRoom
ifOBJECT_ID('Customer_information')isnotnull
DroptableCustomer_information
ifOBJECT_ID('Curtomer_service')isnotnull
DroptableCurtomer_service
ifOBJECT_ID('Employee')isnotnull
DroptableEmployee
ifOBJECT_ID('Page')isnotnull
DroptablePage
ifOBJECT_ID('Serve')isnotnull
DroptableServe
ifOBJECT_ID('Reserve_customer')isnotnull
DroptableReserve_customer
ifOBJECT_ID('Department')isnotnull
DroptableDepartment
ifOBJECT_ID('Bill')isnotnull
DroptableBill
createtableRoom(
Rnointprimarykey,
Rtypevarchar(20)check(Rtypein('单人房','双人房','三人套间',
'豪华包间','总统套房')),
Rstateintnotnull,
Rpriceintnotnull,
)
createtableCustomer_information(
Cnamevarchar(50)notnull,
Csexvarchar(10)check(Csexin('男','女')),
CID_cardvarchar(20)notnull,
Cbed_numberintnotnull,
Rnointnotnull,
In_dateDatenotnull,
Out_dateDatenotnull,
primarykey(Cname,CID_card,Rno)
)
createtableCurtomer_service(
Cnamevarchar(50)notnull,
Rnointnotnull,
Snoint,
primarykey(Cname,Rno),
)
createtableEmployee(
Enointprimarykey,
Enamevarchar(20)notnull,
Eageint,
Esexvarchar(10)check(Esexin('男','女')),
Eworktimevarchar(10),
Eclassintcheck(Eclassin(1,2,3,4,5)),
Edepartmentvarchar(20)notnull
)
createtablePage(
Enointprimarykey,
Etotalpageintnotnull,
Eactualpageintnotnull,
Ebonusint,
foreignkey(Eno)referencesEmployee(Eno),
check(Etotalpage=Eactualpage+Ebonus)
)
createtableServe(
Snointprimarykey,
Stypevarchar(20),
Spriceintnotnull,
Sdepartmentvarchar(20),
)
createtableReserve_customer(
Rnamevarchar(50)notnull,
Rsexvarchar(5)check(Rsexin('男','女')),
Rphonenumberintnotnull,
RID_cardvarchar(20)notnull,
In_DateDatenotnull,
Out_DateDatenotnull,
Rnointnotnull,
primarykey(Rname,RID_card)
)
createtableDepartment(
Dnointprimarykey,
Dnamevarchar(20)notnull,
Dmanagervarchar(20)notnull,
De_noint,
)
createtableBill(
BDateDateprimarykey,
Bnoint,
Getinint,
Getoutint,
Profitint,
check(Profit=Getin-Getout)
)
初始化表中数据:
--InsertRoom
InsertRoomvalues(102,'单人房',0,200)
InsertRoomvalues(222,'单人房',1,200)
InsertRoomvalues(305,'双人房',1,250)
InsertRoomvalues(520,'双人房',1,250)
InsertRoomvalues(637,'三人套间',1,380)
InsertRoomvalues(850,'豪华包间',0,450)
InsertRoomvalues(911,'总统套房',1,888)
select*
fromRoom
--InsertCustomer_information
InsertCustomer_informationvalues('张涵','男',12345,2,520,'2012-7-10','2012-7-11')
InsertCustomer_informationvalues('黄洁','女',13245,1,222,'2012-7-10','2012-7-15')
InsertCustomer_informationvalues('陈浩','男',15689,3,637,'2012-7-10','2012-7-13')
InsertCustomer_informationvalues('姚靖','女',26831,5,911,'2012-7-10','2012-7-12')
InsertCustomer_informationvalues('王倩','女',28691,2,305,'2012-7-9','2012-7-13')
select*
fromCustomer_information
--InsertCustomer_service
InsertCurtomer_servicevalues('张涵',305,1)
InsertCurtomer_servicevalues('黄洁',102,3)
InsertCurtomer_servicevalues('陈浩',637,2)
select*
fromCurtomer_service
--InsertEmployee
InsertEmployeevalues(1,'赵晴',25,'女','一个月',5,'前台接待部')
InsertEmployeevalues(2,'李磊',28,'男','两年',3,'餐饮服务部')
InsertEmployeevalues(3,'聂晓玲',32,'女','五年',2,'财务部')
InsertEmployeevalues(4,'马凯',45,'男','八年',1,'餐饮服务部')
InsertEmployeevalues(5,'廖梅',23,'女','三年',4,'卫生部')
InsertEmployeevalues(6,'吴冬梅',40,'女','八年',1,'前台接待部')
InsertEmployeevalues(7,'梁英',41,'女','七年',1,'财务部')
InsertEmployeevalues(8,'梁冬',48,'女','十年',1,'经理部')
InsertEmployeevalues(9,'宋芳',40,'女','五年',1,'卫生部')
select*
fromEmployee
--InsertPage
InsertPagevalues(1,2100,1800,300)
InsertPagevalues(2,3500,3000,500)
InsertPagevalues(3,4200,3600,600)
InsertPagevalues(4,6000,5000,1000)
InsertPagevalues(5,1800,1700,100)
InsertPagevalues(6,6000,5000,1000)
InsertPagevalues(7,6000,5000,1000)
InsertPagevalues(8,6000,5000,1000)
InsertPagevalues(9,6000,5000,1000)
select*
fromPage
--InsertServe
InsertServevalues(1,'叫醒服务',0,'前台服务部')
InsertServevalues(2,'早餐',50,'餐饮服务部')
InsertServevalues(3,'午餐',250,'餐饮服务部')
InsertServevalues(4,'晚餐',200,'餐饮服务部')
InsertServevalues(5,'宵夜',100,'餐饮服务部')
InsertServevalues(6,'饮料',10,'餐饮服务部')
InsertServevalues(7,'打扫卫生