数据库课程设计餐饮管理系统.doc

上传人:xin****828 文档编号:6701036 上传时间:2020-03-02 格式:DOC 页数:31 大小:662.50KB
返回 下载 相关 举报
数据库课程设计餐饮管理系统.doc_第1页
第1页 / 共31页
数据库课程设计餐饮管理系统.doc_第2页
第2页 / 共31页
数据库课程设计餐饮管理系统.doc_第3页
第3页 / 共31页
点击查看更多>>
资源描述
河南城建学院 数据库原理 课程设计报告 课程名称 数据库原理 课程设计 设计题目 餐饮管理系统 指导教师 班 级 学 号 学生姓名 同组人员 计算机科学与工程学院 2015 年 6 月 成 绩 评 语 目 录 第 1 章 概述 2 1 1 选题的背景与意义 2 1 2 相关技术分析 2 第 2 章 系统功能设计 3 2 1 系统总体结构设计图 3 2 2 系统功能模块 3 1 2 1 模块一 具体模块的名称 3 1 2 2 模块二 3 第 3 章 数据库设计 5 3 1 需求分析 5 3 2 概念结构设计 5 3 3 逻辑结构设计 14 3 4 物理结构设计 16 3 5 数据库实施 18 第 4 章 结束语 29 参考文献 30 第 1 章 概述 1 1 选题的背景与意义 近年来 随着人民的生活水平的不断提高 餐饮业的消费持续增长 竞争愈来愈 激烈 然而 传统餐饮企业的日常运作还是靠人工管理 从原材料入库到客人点单 再到结账基本上由人工完成记录 这样做不仅耗费人力资源而且容易导致记录丢失或 重复等错误 造成管理水平低下 作为传统的餐饮企业更是存在这些问题 进货 库 存有人工管理 客人点单需服务员记录并送至厨房 客人结账由手工记录 人力耗费 大 客人等待时间长 管理效率低下 这就迫切需要标准的 高效率的计算机管理方 式引导其发展 通过计算机管理企业的日常运作 给管理者以决策参考的模型 来不断 完善管理水平 提高工作效率 作为计算机应用的一部分 使用计算机对餐饮企业信息进行管理 具有手工管理所无 法比拟的优点 例如 检索迅速 查找方便 可靠性高 存储量大 保密性好 寿命长 成本低等 这些优点能够极大地提高信息管理的效率 也是企业的科学化 正规化管理 与世界接轨的重要条件 1 2 相关技术分析 经过分析 本系统运用了 Microsoft SQL Server2008 为数据库 系统实现了后台管 理 桌台信息的查询 开台信息 点菜 收银 桌台信息管理 员工管理 菜单维护 消费查询和盈利信息查询等功能 第 2 章 系统功能设计 2 1 系统总体结构设计图 2 2 系统功能模块 1 2 1 模块一 具体模块的名称 桌台数据包括房台编号 座位数 状态 占 空 酒店储存有会员信息 需要折扣信息等 菜品信息有菜品编号 名称 价格和状态等 1 2 2 模块二 具体数据需求如下 点菜阶段需要的数据有 1 菜品信息 包括其名称 所属菜类别等 2 桌台信息 包括其编号 可容人数 使用状态等 3 会员信息 包括会员编号 折扣 历史消费总额等 4 预订信息 包括预订日期 时段 预订菜品等 员工管理需要数据有 1 员工档案 包括其姓名 性别 职位 经理 厨师 服务员 工资 销售统计需要的数据有 1 消费单据 包括金额 日期 项目单编号等数据 2 消费项目单据 消费菜品编号 数量 小计等 会员管理需要的数据有 1 会员档案 会员编号 对应折扣等 3 13 事务需求 数据录入 1 录入房台信息 2 录入菜品信息 3 录入会员信息 4 录入员工档案信息 数据更新 删除 1 更新 删除房台信息 2 更新 删除菜系信息 3 更新 删除菜品信息 4 更新 删除会员信息 5 更新 删除员工档案信息 数据查询 1 查询可用房台信息 2 查询在售菜品信息 3 查询开台信息 4 查询订单信息 5 查询会员折扣信息 6 可查询某时间段的营业额 8 查询可用房台信息 9 查询所有员工档案 第 3 章 数据库设计 3 1 需求分析 3 11 开发背景 从分析饭店的基本情况入手 根据餐饮行业的特点和实际情况 进行系统的可行 性分析 来了解企业的管理特点和存在的问题 酒店管理系统应以餐饮业务为基础 在此基础上 进行详细分析 得出系统功能结构图 本系统主要是用于后台管理 重 视营业数据分析等功能 从专业角度出发 努力为餐饮管理者提供科学有效地管理模 式和数据分析功能 3 12 功能模块 1 数据流图 业务流程图 图 3 12 1 顶层数据流 E1 顾 客 菜 单 处 理 P0 F1 更 变 信 息 E2 收 银 员 明 细 菜 单 VIP用 户 一 般 用 户 图 3 12 2 第一层数据流 P1 E2 1 顾 客 预 定 菜 单 P2 2 直 接 下 单 P2 3 菜 单 处 理 P2 4 后 台 处 理 P2 5 F2 1 更 变 顾 客 信 息 预 定 点 单 点 单 菜 单 菜 单 帐 单 菜 谱 票 据 菜 单 完 成 是 否 预 订 处 理 P2 1顾 客 信 息 E2 2 收 银 员结 账 P2 6 F2 2 VIP用 户 信 息 图 3 12 3 第二层数据流程图 业务数据流程图 点菜业务 E3 1 1顾 客 菜 单 处 理 P3 1 2 F3 1 1 账 单 储 存 后 台 处 理 P3 1 3 更 变 处 理 P3 1 5 判 定 更 变方 式 P3 1 4 顾 客 信 息 菜 谱 更 变 菜 单 加 菜 减 菜 申 请 更 变 更 变 反 馈 账 单 是 否 订 单处 理 P3 1 1 F3 3 2 储 存 定 单 直 接 点 菜 P3 1 1 菜 单 详 明 菜 单 菜 单 P2 1点 菜 预订业务 E3 3 1 顾 客 预 定 处 理 P3 3 1 整 理 预 订 信 息 P3 3 2 F3 3 2 储 存 定 单 F3 3 1 营 业 信 息 预 订 申 请 信 息 是 否 预 定 查 询 结 果 预 订 单信 息 反 馈 P2 2预 定 结帐业务 图 3 12 5 订单业务 图 3 12 4 点菜业务 P2 6结 账 E3 2 1 顾 客 客 户 类 型判 定 P3 2 1 F3 2 2 VIP用 户 信 息 折 扣 处 理 P3 2 3 结 账 处 理 P3 2 2 票 据 账 单 原 价 单 原 价 单 F3 2 1 更 变 顾 客 信息 折 价 单 VIP 流程图 图 3 12 7VIP 升级业务 2 数据字典 数据项 表 1 数据项 编号 数据项名称 代号 数据类型 1 员工号 workerno char 10 2 姓名 workername varchar 10 3 性别 workersex char 4 4 年龄 workerage int 图 3 12 6 结账业务 5 基本工资 workersalary money 6 顾客号 customerno Varchar 10 7 顾客姓名 customername Varchar 10 8 顾客性别 customersex Varchar 4 9 联系电话 customerphoneno Varchar 15 10 VIP 等级折扣率 VIP level int 11 历史消费总额 totalexpend Float 5 12 订单号 oderno varchar 10 13 订单时间 odertime datetime 14 菜品编号 Dishno char 10 15 菜品名 Dishname char 20 16 菜品类别 Dishclass 17 菜品状态 Dishstate char 2 18 价格 Dishprice int 19 桌台号 Foodtableno char 10 20 桌台容量 seatingno int 21 桌台状态 Foodtablestate Varchar 10 22 折扣 discount float 23 消费总额 Saleroom float 24 菜单号 Menuno Varchar 10 25 数量 amount int 26 折扣后总额 after discount float 27 开票时间 billtime time 28 备注 note char 20 29 支付方式 payway char 10 30 账单编号 Bellno int 31 发票号 Invono char 20 数据结构 表 2 数据结构 编号 数据结构名 属性 1 员工信息 员工号 姓名 性别 年龄 职务 工资 2 菜谱 菜品 菜品号 价格 菜类别 3 桌台信息 桌台号 容纳人数 使用状态 4 菜单 菜单编号 桌台号 点菜时间 顾客号 5 点单 菜单编号 菜品号 菜品名 数量 5 销售账单 销售账单号 时间 销售总额 6 顾客信息 顾客编号 姓名 性别 联系方式消费等级 会员等级 累计消费 额 7 折扣规则 VIP 等级 折扣 8 订单 订单编号 顾客编号 分配桌台 订单时间 数据流 表 3 数据流 编号 数据流名 输入 输出 1 菜品信息 增加菜品 菜谱 2 房台信息 增加房台 房台 3 参考菜谱 菜谱 点菜 4 空闲房台 房台 点菜 5 消费项目 点菜 菜单 6 预订菜单 预订 菜单 7 修改菜单 加菜退菜 菜单 8 记入账单 菜单 结账 9 结账 折扣方式 结账 10 销售统计 结账 销售账单 数据储存 表 4 数据储存 编号 数据存储名 输入 输出 1 菜谱更新 增加菜品 菜谱 2 房台更新 增加房台 房台 3 顾客信息更新 顾客新信息 顾客信息 4 销售统计 销售账单 销售统计 5 订单储存 订单 订单信息 处理过程 表 5 处理过程 编号 处理过程名 输入数据流 输出数据流 1 顾客点菜 终端 菜单 2 结账 菜单 发票 3 销售统计 销售账单 销售统计表 3 2 概念结构设计 3 2 1 局部 E R 图 1 菜单 菜品 图 3 12 8 菜单 菜品 菜单 菜单号 桌台号 订单号 顾客号 负责员工 时间 菜品 菜品号 名称 菜系号 价格 状态 菜单 菜品 菜单号 菜品号 数量 2 订单 菜单 图 3 12 9 订单 菜单 菜单 菜单号 桌台号 订单号 顾客号 负责员工 时间 订单 订单号 顾客号 订单时间 桌台号 3 菜单 员工 图 3 12 10 菜单 员工 员工 员工号 姓名 性别 年龄 工资 菜单 菜单号 桌台号 订单号 顾客号 负责员工 时间 4 发票 账单 图 3 12 11 发票 账单 5 订单 顾客 图 3 12 12 订单 顾客 顾客 顾客号 姓名 年龄 性别 联系方式 等级 订单 订单号 顾客号 订单时间 桌台号 6 菜单顾客 图 3 12 13 菜单顾客 菜单 菜单号 桌台号 订单号 顾客号 负责员工 时间 顾客 顾客号 姓名 年龄 性别 联系方式 等级 3 2 2 整体 E R 图 菜单 菜品员工 发票 顾客订单 桌号 位置 对应 生成 点菜 负责 包含 预定 销售账单 付款方式 对应 工资 包含1 1 m 1 1 1 1 1 1 1 1 1 生成 1 1 1 1 1 n1 m n 图 3 12 14 整体 E R 图 3 3 逻辑结构设计 1 E R 图向关系模式转换原则 根据以上关系模型的转换 首先个关系模式都满足第一范式 因为每个属性都是不 可分割的基本数据项 而且非主属性完全函数依赖于候选码 符合第二范式 而且非 主属性不存在传递符合第三范式要求 2 图转换成关系模式如下 下划线的属性为主码 销售账单 账单编号 发票号 销售额 备注 桌台 房台号 使用状态 座位数 订单 订单号 顾客号 订单时间 桌台号 菜单 菜单号 桌台号 订单号 顾客号 负责员工 时间 顾客 顾客号 姓名 年龄 性别 联系方式 等级 折扣规则 等级 折扣 员工 员工号 姓名 性别 年龄 工资 菜品 菜品号 名称 菜系号 价格 状态 菜单 菜品 菜单号 菜品号 数量 3 子模式的设计 视图 create view 凉菜 as select Dishname Dishprice from Dish where Dishclass 凉 with check option 3 13 1 凉菜表 create view 热菜 as select Dishname Dishprice from Dish where Dishclass 热 with check option 3 13 2 热菜 create view 空桌台 as select Foodtableno from Foodtable where Foodtablestate 空 with check option 3 13 3 空桌 3 4 物理结构设计 1 存储结构与存取方法 数据库在物理设备上的存储结构与存取方法就是数据库的物理结构 它依赖于选定的数据库管理 系统 为一个给定的逻辑数据模型选取一个最合适的应用环境的物理结构的过程 就是数据库的物 理设计 这一阶段主要的任务是确定数据库的物理结构 并不断的进行优化处理 主要建立索引 触发器 存储过程 2 数据库 表建立的代码 create database Restaurant Management drop table Dish create table Dish 菜谱 Dishno varchar 10 primary key Dishname varchar 10 Dishclass varchar 10 Dishprice float Dishstate varchar 6 check Dishstate 有 or Dishstate 无 drop table Oder create table Oder 订单 Oderno varchar 10 primary key Customerno varchar 10 not null Odertime datetime not null Foodtableno varchar 10 not null foreign key Customerno references Customer Customerno foreign key Foodtableno references Foodtable Foodtableno drop table Foodtable create table Foodtable 桌台信息 Foodtableno varchar 10 primary key seatingno int not null Foodtablestate varchar 6 check Foodtablestate 空 or Foodtablestate 占 drop table Menus create table Menus 菜单 Menuno varchar 10 primary key Foodtableno varchar 10 not null Customerno varchar 10 not null Oderno varchar 10 Workerno varchar 10 not null consumetime datetime foreign key Foodtableno references Foodtable Foodtableno foreign key Customerno references Customer Customerno drop table Menus Dish create table Menus Dish 菜单 菜品 Menuno varchar 10 Dishno varchar 10 Dishname varchar 20 not null Amount int not null primary key Menuno Dishno foreign key Dishno references Dish Dishno alter table Menus Dish add check Amount 0 drop table Customer create table Customer 顾客 Customerno varchar 10 primary key Customername varchar 10 not null Customersex varchar 4 check Customersex 男 or Customersex 女 not null Custoemrphoneno varchar 20 unique not null VIP level int totalexpend float alter table customer alter column totalexpend float 5 drop table Discount rules create table Discount rules 折扣规则 VIP level int primary key Discount float drop table worker create table worker 员工 Workerno varchar 10 primary key Workername varchar 10 Workersex varchar 4 check Workersex 男 or Workersex 女 Workerage int Workersalary int drop table Sales bill create table Sales bill 销售账 Menuno varchar 10 Saleroom float 5 Billtime datetime 3 5 数据库实施 3 5 1 插入新顾客信息 drop proc 插入新顾客信息 create proc 插入新顾客信息 Customerno varchar 10 Customername varchar 10 Customersex varchar 4 Custoemrphoneno varchar 20 as Insert into customer values Customerno Customername Customersex Custoemrphoneno 0 0 测验 exec 插入新顾客信息 C 035 杨涛 男 18700809052 3 14 1插入新顾客信息 create proc 桌台 Foodtableno varchar 10 seatingno int Foodtablestate varchar 6 as Insert into Foodtable values Foodtableno seatingno Foodtablestate exec 桌台 O 005 20 空 3 14 2插入桌台信息 drop proc 预定 create procedure 预定 oderno varchar 10 Customerno varchar 10 odertime datetime Foodtableno varchar 10 as insert into Oder values oderno Customerno odertime Foodtableno exec 预定 O 005 C 035 2012 6 16 TB 8 3 14 3预订 查询预订 drop proc 查询预订 create proc 查询预订 Customerno varchar 10 Oderno varchar 10 output as if exists select from oder where customerno Customerno begin print 已预订 select Oderno oderno from oder where customerno Customerno print 预定号为 Oderno end else print 未预定 declare Oderno varchar 10 exec 查询预订 C 002 Oderno output 3 14 4预订 declare Oderno varchar 10 exec 查询预订 C 035 Oderno output 3 14 5预订 开台信息 drop proc 开台 create proc 开台 Menuno varchar 10 Foodtableno varchar 10 customerno varchar 10 Oderno varchar 10 workerno varchar 10 Customertime datetime as insert into Menus values Menuno Foodtableno customerno Oderno workerno Customertime update Foodtable set Foodtablestate 占 where Foodtableno Foodtableno exec 开台 M 010 TB 8 C 035 O 005 W 002 2012 6 11 3 14 6开台 3 14 7开台 create proc 菜品 Dishno varchar 10 Dishname varchar 10 Dishclass varchar 10 Dishprice float Dishstate varchar 6 as insert into Dish values Dishno Dishname Dishclass Dishprice Dishstate exec 菜品 D 10 蒜泥黄瓜 凉 10 有 exec 菜品 D 23 麻婆豆腐 热 15 有 exec 菜品 D 11 西芹杏仁 热 15 有 exec 菜品 D 39 樟茶鸭子 热 45 有 exec 菜品 D 57 小炒腊肉 热 23 有 exec 菜品 D 72 小炒河虾 热 40 有 3 14 7菜品 顾客点餐 create proc 点菜 Menuno varchar 10 Dishno varchar 20 Dishname varchar 10 Amount int as insert into menus dish values Menuno Dishno Dishname Amount 点菜 exec 点菜 M 010 D 10 蒜泥黄瓜 2 exec 点菜 M 010 D 23 麻婆豆腐 1 exec 点菜 M 010 D 11 西芹杏仁 1 exec 点菜 M 010 D 39 樟茶鸭子 1 exec 点菜 M 010 D 57 小炒腊肉 2 exec 点菜 M 010 D 72 小炒河虾 1 3 14 8点菜 计算总消费额 drop proc 消费总额 create proc 消费总额 customerno varchar 10 Saleroom float output as select Saleroom SUM Dishprice Amount from menus dish Dish Menus where Customerno customerno and Menus Menuno Menus Dish Menuno and Dish Dishno menus dish Dishno 测验 declare Saleroom float customerno varchar 10 c 035 exec 消费总额 customerno Saleroom output select Customername Saleroom 总费用 from Customer where Customerno customerno 3 14 9查询消费额 查询客户点菜信息 drop proc 查询客户点菜 create proc 查询客户点菜 customerno varchar 10 as select Dish Dishname Amount from Dish menus dish menus where menus Customerno customerno and menus dish Menuno menus Menuno and Dish Dishno menus dish Dishno 测验 exec 查询客户点菜 c 035 exec 查询客户点菜 c 001 3 14 10查询顾客信息 3 14 11查询顾客信息 菜品的删除 drop proc 修改菜单 create proc 修改菜单 Menuno varchar 10 Dishname varchar 20 as delete from menus dish where Menuno Menuno and Dishname Dishname 测验 exec 修改菜单 M 010 小炒腊肉 3 14 12查询菜单 发票信息 create proc 发票信息 customerno varchar 10 Actuallypay1 float Menuno varchar 10 output Actuallypay2 float output customername varchar 10 output Saleroom float output after discount float output Billtime datetime output as select Saleroom SUM Dishprice Amount from menus dish Dish Menus where Customerno customerno and Menus Menuno Menus Dish Menuno and Dish Dishno menus dish Dishno select customername customername from customer where customerno customerno select Menuno Menuno from Menus where Customerno customerno set Billtime getdate set Actuallypay2 Actuallypay1 select after discount Saleroom 0 1 Discount from customer Discount rules where customer VIP level Discount rules VIP level print 用户名 customername print 实 付 str Actuallypay2 10 2 print 应 付 str Saleroom 10 2 print 折扣后 str after discount 10 2 print 应 找 str Actuallypay2 after discount 10 2 print 时 间 cast Billtime as varchar 20 update customer set totalexpend totalexpend after discount where customerno customerno delete from menus dish where Menuno select Menuno from Menus where customerno customerno update Foodtable set Foodtablestate 空 where Foodtableno select Foodtableno from Menus where customerno customerno delete from Menus where customerno customerno insert into sales bill values Menuno after discount Billtime 测验 declare customername varchar 10 Actuallypay2 float Saleroom float Menuno varchar 10 after discount float Billtime datetime exec 发票信息 c 002 200 customername output Actuallypay2 output Saleroom output Menuno output after discount output Billtime output 3 14 10打印发票 查询某一时间段的营业额 drop proc 查询营业额 create proc 查询营业额 begintime datetime endtime datetime sum of turnover float 5 output As select sum of turnover sum Saleroom from Sales bill where Billtime begintime and Billtime endtime print 从时间 cast begintime as varchar 20 到时间 cast endtime as varchar 20 的营业总额为 str sum of turnover 10 2 测验 declare sum of turnover float 5 exec 查询营业额 2015 6 13 2015 9 113 sum of turnover output select sum of turnover 3 14 11查询营业额 VIP升级 create trigger trig Upgrade of VIP level on Customer after update as declare no varchar 20 expend float level int select no Customerno expend totalexpend level VIP level from inserted if expend 500 and expend 1000 and expend 1800 and expend 2500 and expend 3500 set level 4 else set level 5 update Customer set VIP level level where Customerno no drop trigger trig Upgrade of VIP level 删除触发器 3 5 2数据库备份与还原的原则 1 备份类型的选择和还原模式的确定都应遵循这样的原则 尽最大可能 以最快速度 减少或消灭数据丢失 2 数据库备份和还原过程中应注意的问题 1 如果只进行数据库备份 那么将无法还原自最近一次数据库备份以来数据库中所 发生的所有事务 2 如果进行数据库备份时也进行事务日志备份 那么可以将数据库还原到失败点 那些在失败之前为提交的事务将无法还原 但如果您在数据库失败后立即对当前处于 活动状态的事务进行备份 则为提交的事务也可以还原 3 数据库的备份计划 1 有规律地进行数据库备份 例如没玩进行备份 2 以较小的时间进行差异备份 比如每隔3小时或4小时 3 在相邻的两次差异备份之间进行事务日志备份 可以每20分钟或30分备份一次 4 数据库的还原计划 如果采用上述的备份方案 在进行还原的时候 我们可以先还原最近一次的数据库备 份 接着进行差异备份的还原 最后进行事务日志备份的还原 但是 在更多情况下我们希望还原到数据库失败的那一刻 此时我们只需按照下面的 方法就可以达到目的了 首先 如果能访问数据库的事务日志文件 则应备份当前正处于活动状态的事务日志 其次 还原最近一次数据库备份 接着 还原最近一次差异备份 最后 按顺序还原自差异备份以来进行的事务日志备 第 4 章 结束语 本次数据库课程设计已经基本上完成 在这次实习中 感觉很有收获 虽然上课 很认真的听讲 实验课感觉挺简单的 但真正到实践的时候 还是困难重重 这次实 习让我初步了解了关于数据库开发的基本步骤 了解如何开发数据库 为以后的职业 生涯肯定会有很大帮助 在这次实习中 了解并比较熟悉了如何运用 SQL Server2008 数据库开发数据库系 统 让我感觉收获很大 在此要感谢辅导老师对我热情的指导 还要感谢许多同学的帮助 是他们在程序 调试中帮我改正错误 提出合理化的建议 增强程序的功能 借阅各种书籍 在你们 的帮助下 我及时纠正自己的错误 修改方案 才完成了这次实习 否则这一周就白 白浪费了 参考文献 1 杨涛 基于 DEB 和 XML 签名的电子证据管理 计算机工程 2012 2 王珊 萨师煊 数据库系统概论 高等教育出版社 2010 3 何宗耀 吴孝丽 数据库原理及应用 中国矿业大学出版社 2014
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 中学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!