酒店管理系统可用于数据库课程设计.docx
《酒店管理系统可用于数据库课程设计.docx》由会员分享,可在线阅读,更多相关《酒店管理系统可用于数据库课程设计.docx(36页珍藏版)》请在冰豆网上搜索。
酒店管理系统可用于数据库课程设计
第一章前言
科学技术的进步和生产的发展使人类知识总量的增长不断加快,生产社会化趋势的扩大和社会对产品需求的多样性使得组织在营运活动中所涉及的内部和外部信息量迅速地膨胀起来。
面对激烈的市场竞争,人们对这些信息进行收集、加工、传递等过程的时间性和准确性提出了更高的要求。
这一切使得传统的手工作业为基础的信息系统陷入了机构日益庞大,效率日益降低的困境。
电子计算机的出现为摆脱这种困境找到了出路。
计算机用于管理信息处理的突出优点是迅速、准确、可靠、具有很大的存储能力,适应于管理信息量大、面宽的特点,适合于管理信息处理及时、准确的要求。
管理信息系统(MIS,ManagementInformationSystem)是一个由人和计算机等组成的能够提供信息以支持一个组织机构内部的作业、管理、分析和决策职能的系统。
管理信息系统利用计算机的硬件和软件,手工规程、分析、计划、控制和决策用的模型,以及数据库对信息进行收集、传输、加工、保存和使用。
因此,管理信息系统是一个信息处理系统。
数据库作为存取数据并对数据进行操作的工具在系统中所起到的作用至关重要。
数据库设计是指对于一个给定的应用环境,构造优化的数据库逻辑模式和物理模式结果,并据此建立数据库及其应用系统,使之能有效地存储和管理数据,满足应用需求,包括信息管理要求和数据操作。
信息管理要求是指在数据库中应该存储和管理哪些数据对象;数据操作要求是指对数据对象进行哪些操作,如查询、增、删、改、统计等操作。
数据库设计地目标是维用户和各种应用系统提供的一个信息基础设施和高效率地运行环境。
高效率的运行环境包括:
数据库数据的存取速率、数据库存储空间的利用率、数据库系统运行管理的效率等都是高的。
第二章数据库设计需求分析和系统设计
1.1需求分析
由于软件技术的不断发展,应用软件已经遍及到社会的各行各业,大到厂矿校企,小到餐饮洗浴,并且正在以其独特的优势,服务于社会的各行各业。
讲应用软件应用到现代的餐饮业,为解决传统的记账、统计、核算方式,既费时、费力、又容易出错的问题,通过使用酒店管理系统,可以快速的完成营业记账工作,并且可以轻松的对营业额进行统计核算,原来既费时费力的工作,现在只需要轻轻点击下鼠标和键盘,就可以轻松完成,既提高了效率、又节省了人力资源,为餐饮业的快速发展创造了巨大的空间。
经过调查用户的实际需求,确定了该系统的主要需求和功能为:
1、系统维护:
菜系的管理,包括菜系的增删查;菜品的管理,包括菜品的增删改查;餐台管理,包括餐台的增删改查。
2、销售统计:
日销售统计,月销售统计,年销售统计。
选定要统计的时间段,统计并分析,并以图表的形式显示统计分析信息。
3、人员管理:
档案管理,管理该酒店员工的职工资料;管理员管理,即权限管理,管理登陆本系统用户的使用权限。
4、初始化系统:
对系统进行初始化。
系统恢复初始化状态,所有用户数据清空。
该功能只有具有该使用权的用户才可以操作。
5、修改密码:
对登陆用户的用户密码进行修改。
6、业务功能:
开单,先选择台号,操作员使用助记码添加商品后,商品名称、单位、单价由系统自动从数据库中提取,操作员添加消费数量以后,签单之后,系统自动计算出消费金额,并显示,同时消费信息显示在签单列表中,开台信息显示在开台列表中。
用户付款后,操作员添加实收金额,当金额足够支付时,方可结账。
同时显示找零金额。
签单列表和开台列表清空。
在结账之前,可以取消本次消费。
7、前台功能:
显示当前时间和当前操作员信息;交接班,更换操作员;锁定系统,系统锁定后,操作员可以临时离开操作台,默认使用本操作员登陆密码解锁系统;系统登录;退出系统。
1.2任务概述
1.2.1目标
本酒店管理的应用对象定位在小型酒店,没有订房退房功能。
因此在进行需求分析时主要考虑小型酒店的具体需求,并将设计目标确定为小型酒店提供基本的酒店管理功能。
1.2.2运行环境
服务器配置包括硬件配置和软件配置,它们各自都有详细的要求,下面将分别进行介绍.
1、服务器端配置
(1)、硬件配置
安装本软件之前,需要确保计算机具有如下配置,这也是最低硬件要求:
233兆赫(MHZ)Pentium或更高的微处理器(或与之相当的处理器)
使用256内存(RAM最小为64MB,最大为4GB)
不小于40MB的可用硬盘空间
(2)、软件配置
安装本软件之前,需要确保计算机已安装:
MicorsoftWindowsXP及以上的操作系统.
2、客户端配置
本软件开发所需要的硬件配置和软件配置分别介绍如下:
硬件配置:
1台奔腾级别电脑
软件配置:
JDK1.6Eclipse-INDIGOSQLServer2005
1.3数据字典
1.3.1数据项
消费单编号
数据项名:
消费单编号
说明:
用来唯一标识每张消费单
类型:
字符型
长度:
9
别名:
消费号
取值范围:
000000001-999999999
1.3.2数据结构
消费单
数据结构:
消费单
含义:
记录消费者消费信息,包括消费项目及其数据
组成部分:
消费单编号消费餐台消费时间消费金额
操作用户
1.33数据流
签单数据流
数据流名:
签单
说明:
结算消费者本次消费,合计消费金额,生成消费单和订单项
来源:
餐台表菜品表雇员表
去向:
消费单表消费项目表
数据结构:
餐台表菜品表雇员表
1.3.4数据存储
消费项目表
数据存储名:
消费项目表
说明:
记录消费者消费的每种菜品编号、数量、总金额和所在消费单编号
输入数据流:
签单列表
输出数据流:
结账
数据描述:
菜品编号、数量、总金额、所在消费单
数据量:
根据消费单中消费项目多少而定
存取方式:
随机
存取频度:
约100-1000次/天
1.3.5处理过程
处理过程名:
结账
说明:
用户选定菜品后,操作员开单签单后,计算出应付的消费单费用
输入数据:
签单列表
数据存储:
消费项目
输出数据:
消费单
1.4数据流图
图2.1系统数据流图
第三章概念结构设计
3.1概念结构
在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更好地、更准确地用某一DBMS实现这些需求。
概念结构主要特点:
(1)能真是、充分地反映显示世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是对现实世界的一个只是模型;
(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库设计成功的关键。
(3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充;
(4)易于向关系、网状、层次等各种数据模型转换;
概念结构时各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。
3.2酒店管理系统概念结构设计
现在对所设计系统的需求作进一步的分析,产生概念结构设计的E-R模型。
由于这个系统并不复杂,因此可采用自顶向下的设计方法。
自顶向下设计的关键是确定系统的核心活动。
所谓核心活动就是系统中的其他活动都要围绕这个活动展开,或与此活动密切相关。
确定了核心活动之后,系统就有了可扩展的余地。
对于这个酒店管理系统,其核心活动是开单、签单,菜品与订单之间是通过开单签单发生联系的。
因此,此系统包含的实体有:
(1)餐台={餐台编号,座位数}
(2)菜系={序号,名称}
(3)菜品={编号,名称,所属菜系,助记码,计量单位,单价}
(4)消费项目={序号,所属消费单,消费菜品,消费数量,消费额}
(5)消费单={编号,消费餐台,消费时间,消费金额,操作用户}
(6)雇员={雇员编号,姓名,性别,生日,身份证号,家庭住址,状态}
3.2.1系统实体E-R图
图3.1餐台信息
图3.2菜系信息
图3.3菜品信息
图3.4消费单信息
图3.5消费项目信息
图3.6管理员管理信息
图3.7雇员信息
3.2.2酒店管理系统系统E-R图
图3.6系统E-R图
第四章逻辑结构设计
4.1E-R图向关系模式的转换
有了基本的E-R模型就可以进行逻辑结构设计,也就是设计基本的关系模式。
设计基本的关系模式主要从E-R模型出发,将其直接转换为关系模式。
根据转换规则,这个E-R转换的关系模式为:
(1)餐台信息(餐台编号,座位数)主码:
餐台号;
(2)菜系信息(菜系序号,名称)主码:
菜系序号;
(3)菜品信息(菜品编号,名称,所属菜系,助记码,计量单位,单价)主码:
菜品编号,外码:
所属菜系;
(4)消费项目信息(消费项目序号,所属消费单,消费菜品,消费数量,消费额)主码:
消费项目序号,外码:
所属消费单;
(5)消费单信息(消费单编号,消费餐台,消费时间,消费金额,操作用户)主码:
消费单编号;
(6)雇员信息表(雇员编号,姓名,性别,生日,身份证号,家庭住址,状态)主码:
雇员编号;
(7)管理员管理信息(管理员序号,档案编号,密码,系统维护,销售统计,人员管理,初始化系统,状态)主码:
管理员序号;
主要属性、含义及约束
属性
含义和约束条件
餐台编号
唯一标识每个餐台的编号
菜系序号
唯一标识每个菜系的编号
菜品编号
唯一标识每个菜品的编号
消费项目序号
唯一标识每个消费项目的编号
消费单编号
唯一标识每个消费单的编号
雇员编号
唯一标识每个雇员的编号
管理员序号
唯一标识一个管理人员的权限编号
4.2关系模式的规范化
4.2.1分析并规范化现有的关系模式
经分析,本系统中的所有关系模式中的所有属性,均是不可再分的基本数据项,因此,本系统现有的关系模式都达到了1NF。
(1)餐台信息:
只有一个非主属性:
座位和一个主码:
台号。
显然:
每一个决定因素都包含码,所以该关系模式属于BCNF。
(2)菜系信息:
只有一个非主属性:
名称和一个主码:
菜系序号。
显然:
每一个决定因素都包含码,所以该关系模式属于BCNF。
(3)菜品信息:
只有一个主码:
菜品编号,其余全部为非主属性,且全部完全函数依赖于码,并且不存在传递。
因此,该关系模式达到了BCNF。
(4)消费项目信息:
只有一个主码:
消费项目序号,其余全部为非主属性,非主属性完全函数依赖于码,且不存在传递依赖,所以达到了BCNF。
(5)消费单信息:
只有一个主码:
消费单编号,其余全部为非主属性,非主属性完全函数依赖于码,且不存在传递依赖,所以达到了BCNF。
(6)雇员信息表:
该关系模式中,不把身份证号作为候选码,因此本关系模式只有一个主码:
雇员编号,其余全部为非主属性,所以,达到了BCNF。
(7)管理员管理信息:
只有一个主码:
管理员序号,其余全部为非主属性,所以,达到了BCNF。
总结:
本系统中的关系模式均达到了BCNF,在函数依赖的范畴内,已经显示了彻底的分离,已经消除了插入和删除异常。
因此不需要再进行优化。
4.2.2确定完整性约束
对规范好的关系模式加以约束。
数据项约束、表级约束及表间约束。
检查约束、主码约束、参照完整性约束。
1、将餐台编号、菜系序号、菜品编号、消费项目序号、消费单编号、雇员编号、管理员序号设置为它们所处表中的主键约束。
2、消费项目信息中:
设置所属消费单为外键约束。
3、消费单信息表中:
设置消费餐台号为外键约束。
4、管理员管理信息中:
设置档案编号为外键约束。
4.2.3用户视图的确定
1、管理员管理视图,将档案信息和权限表关联,作为视图显示。
提高数据安全性,方便对管理员管理的操作。
该视图信息来自管理表和人员档案表,包含:
档案表中的主码和姓名、管理权限表的密码、系统维护、销售统计、人员管理、初始化系统属性;使用档案表的主码作为该视主码。
2、菜系—菜品系视图,将菜品表和菜系表关联,作为视图,方便前台提取菜品。
该视图信息来自菜单表、和菜系表,包含菜系表中的菜系名、菜单表中的编号、菜名、助记码、单位、单价、状态属性列,使用菜单表中的编号作为该视图的主码。
3、订单项和菜单关联,并创建视图,方便进行销售统计。
该视图来源于菜单项表和订单表。
包含菜单表中的编号和菜品名、订单项表中的编号、所属订单号和数量,使用菜单中的编号作为视图主码。
第五章物理设计
5.1确定数据分布
本系统是单机系统,面向单个酒店,考虑到酒店自身运营成本、以及该系统管理数据价值等因素。
可以使用磁盘映像技术,使用两块硬盘。
存数数据库数据,其中一块用来提供日常服务。
另外一块用于备份。
两块硬盘均位于酒店网络中心,位于不同主机上。
吧台的客户端通过酒店局域网访问网络中心服务器上的数据库服务器。
吧台产生的数据全部通过酒店内部局域网传到网络中心的数据库服务器上,这样就实现了酒店资料同外界网络隔绝,且实现了内部数据的保护。
数据文件
文件名:
db_DrinkeryManage_Data
存储路径:
E:
\program\Database\db_DrinkeryManage_Data.MDF
初始大小:
1984KB
最大:
无限制
自动增:
10%
日志文件
文件名:
db_DrinkeryManage_Log
文件存储路径:
E:
\program\Database\db_DrinkeryManage_Log.LDF
初始大小:
3840KB
最大:
无限制
自动增长:
10%
5.2确定数据存储结构
考虑到酒店这种特殊行业,在吃饭的点或者节假日期间,会在短时间内产生大量订单。
这样就会在短时间内增大数据库的压力。
因此为提高访问速度,将在本系统中使用索引技术。
使用索引的存储结构,就决定本系统将使用索引的方式来访问数据。
5.3基本表设计
5.3.1餐台表
[表名]:
tb_desk
[内容]:
餐台信息表
[主键]:
num
序号
中文
列名
数据类型
默认值
空/非空
约束条件
基本信息
1、
餐台编号
num
varchar(6)
notnull
primarykey
2、
座位数
seating
int
notnull
3、
状态
state
char(4)
notnull
可用;撤销
系统信息
1.
主键
num
number(11)
notnull
primarykey
补充说明
5.3.2菜系表
[表名]:
tb_sort
[内容]:
菜系信息表
[主键]:
id
序号
中文
列名
数据类型
默认值
空/非空
约束条件
基本信息
1、
菜系编号
Id
char(9)
notnull
primarykey
2、
菜系名
name
Varchar(8)
notnull
状态
state
char(4)
notnull
可用;撤销
系统信息
1.
主键
id
number(11)
notnull
primarykey
补充说明
5.3.3菜品信息表
[表名]:
tb_menu
[内容]:
菜品信息表
[主键]:
num
序号
中文
列名
数据类型
默认值
空/非空
约束条件
基本信息
1、
菜品编号
Num
char(9)
notnull
primarykey
2、
菜系编号
Sort_id
Int
notnull
foreignkey
3、
菜品名
name
Varchar(20)
notnull
4、
助记码
Code
Varchar(10)
notnull
5、
单位
Unit
Varchar(4)
notnull
6、
单价
Unit_price
int
notnull
7、
状态
state
char(4)
notnull
可用;撤销
系统信息
1.
主键
Num
char(9)
notnull
primarykey
2.
外键
Sort_id
Int
notnull
foreignkey
补充说明
5.3.4消费单
[表名]:
tb_order_form
[内容]:
消费单信息表
[主键]:
num
序号
中文
列名
数据类型
默认值
空/非空
约束条件
基本信息
1、
序号
num
Char(11)
notnull
primarykey
2、
台号
record_num
varchar(6)
notnull
Foreignkey
3、
消费时间
Consume_date
datetime
Notnull
4、
消费金额
expenditure
int
5、
操作员
Record_num
Char(9)
6、
状态
State
char(4)
可用;撤销
系统信息
1.
主键
num
Char(11)
notnull
primarykey
2.
外键
record_num
varchar(6)
notnull
Foreignkey
补充说明
5.3.5消费项目
[表名]:
tb_order_item
[内容]:
消费项目信息表
[主键]:
id
序号
中文
列名
数据类型
默认值
空/非空
约束条件
基本信息
1、
序号
Id
Int
notnull
primarykey
2、
所属消费单
Order_form_num
Char(11)
notnull
FK
3、
菜品编号
Menu_num
Char(9)
Notnull
4、
数量
amount
int
5、
消费金额
Total
total
系统信息
1.
主键
id
int
notnull
primarykey
2.
外键
Order_form_num
Char(11)
Nornull
FK
补充说明
5.3.6雇员表
[表名]:
tb_record
[内容]:
雇员信息表
[主键]:
num
序号
中文
列名
数据类型
默认值
空/非空
约束条件
基本信息
1、
雇员编号
num
char(9)
notnull
primarykey
2、
姓名
Name
Varchar(8)
notnull
3、
性别
Sex
char
(2)
notnull
4、
生日
Birthday
Datetime
notnull
5、
身份证号
Id_card
Varchar(20)
notnull
6、
家庭住址
Address
Varchar(100)
notnull
7、
状态
state
char(4)
notnull
可用;撤销
系统信息
1.
主键
num
number(11)
notnull
primarykey
补充说明
5.3.7管理员管理表
[表名]:
tb_manager
[内容]:
管理员管理信息表
[主键]:
num
序号
中文
列名
数据类型
默认值
空/非空
约束条件
基本信息
1、
序号
Id
Int
notnull
primarykey
2、
档案编号
Record_num
Char(9)
notnull
foreignkey
3、
密码
Password
Varchar(20)
Notnull
4、
系统维护
Purview_system
Varchar
(2)
5、
销售统计
Purview_sell
Varchar
(2)
6、
人员管理
Purview_personnal
Varchar
(2)
7、
初始化系统
Purview_init
Varchar
(2)
8、
状态
State
char(4)
可用;撤销
系统信息
1.
主键
Id
Int
notnull
primarykey
2.
外键
Record_num
Char(9)
notnull
foreignkey
补充说明
第六章数据库的实施和维护
6.1创建数据库和表和触发器
1、创建数据库
图6.1数据库创建脚本
图6.2数据库效果图
2、创建表的脚本部分截图
图6.3权限表的创建脚本
图6.4权限表的结构
3、创建触发器
图6.5触发器创建脚本
图6.6触发器效果图
4、创建视图
图6.7权限视图的结构
图6.8权限视图数据来源
图6.9菜系——菜品视图数据来源
6、数据库整体结构图
图6.10数据库完整结构图
(1)
图6.11数据库完整结构图
(2)
6.2载入数据
1、向订单表中插入两条信息:
insertintotb_order_form(num,desk_num,consume_date,expenditure,record_num)values('20130104002','1001','2013-1-410:
59:
47',2,'121220001')
insertintotb_order_form(num,desk_num,consume_date,expenditure,record_num)values('20130104003','1001','2013-1-411:
00:
18',110,'121220001')
2、向订单项表中插入四条数据
insertintotb_order_item(order_form_num,menu_num,amount,total)values('20130104002','080604001',1,2)
insertintotb_order_item(order_form_num,menu_num,amount,total)values('20130104003','121213001',1,99)
insertintotb_order_item(order_form_num,menu_num,amount,total)values('20130104003','121220001',1,10)
insertintotb_order_item(order_form_num,menu_num,amount,total)values('20130104003','080604002',1,1)
3、向档案表中插入两条记录
insertintotb_record(num,name