您的当前位置:首页餐饮连锁店数据库概念模型设计

餐饮连锁店数据库概念模型设计

来源:小侦探旅游网
基于oracle 的数据库概念模型设计

——以餐饮连锁店系统为例

贺亚茹① (西安外事学院 工学院 陕西 西安 710077)

摘 要:按照数据库概念模型设计的过程和步骤,以餐饮连锁店系统为例,分析了该系统的业务需求。以实现此业务需求为目的,详细论述了基于oracle的系统数据库概念模型设计过程,讨论了数据库概念模型设计的基本技术和方法。该设计模式已在实际项目中使用,证明是适用的和可靠的。

关键词:餐饮连锁店;数据库;概念模型;设计 中图法分类号:TP311.5 文献标识码:A

Design of conceptual data model for database based on Oracle

——The restaurant chain system as an example

HE Ya-ru

(Engineering Institute,Xi’an International University, Xi’an,Shaanxi 710077)

Abstract:According to the model of the database design process and steps,the restaurant chain system as an example,analysis of the system of business.In order to achieve the business needs for the purpose, discussed in detail the system based on Oracle conceptual data model for database design process, discussed the model of the database design of the basic techniques and methods.The design pattern has been used in real projects, proved to be applicable and reliable. Key word:restaurant chain; database; conceptual model; design 0 前言

数据库设计是建立数据库及其应用系统的核心和基础,它要求对于指定的应用环境,构造出较优的数据库模式,建立起数据库应用系统,并使系统能有效地存储数据,满足用户的各种应用需求。一般按照规范化的设计方法,常将数据库设计分为若干阶段即:系统规划阶段、需求分析阶段、概念模型设计阶段、逻辑模型设计阶段、物理模型设计阶段和系统实施阶段。其中,概念模型设计是在系统规划和需求分析的基础上,抽取出系统中的实体,建立实体及其之间的关系模型,为后续的逻辑模型设计和物理模型设计奠定基础,是整个数据库设计中最关键的一个阶段。本文以典型的餐饮连锁店系统为例,介绍数据库概念模型设计的方法和技术。 1 系统需求陈述 1.1业务需求

本文所讲的餐饮连锁店可以是任意一家连锁快餐店。每家餐饮连锁店都会有一定的特色,以提供某种食品为主,每个餐饮连锁店都会有一定数量的员工,有厨师,有管理本店所有员工和业务的经理,当然必定有一些在柜台工作,专门受理订单。一般订单接收者不可转移,订单负责人将订单交由厨师处理。顾客点菜后会形成一份订单,一份订单可包括一种或多种食品。

假定该餐饮连锁店需要对相关人员、工作班次、订单和食品进行跟踪,生成业务报表,

统计一天中最忙的时段、最努力的员工、最受欢迎的食品以及光临次数最多的顾客等。主要包含以下业务:

(1)员工管理:连锁店一般有厨师、订单受理人、经理几类雇员,也可能有其它类型的雇员。对于厨师要记录其接受过的培训情况,如职业学校、自学、学徒工等;对于订单受理人,需要在标准薪金的基础上为其支付加班费。经理负责监督所有雇员,还要提供所负责餐馆的费用预算和目标收入设定。所有雇员都按班次分配,一般采用的是早班和中班,每个班次只使用一张签到表。

(2)订单管理:含基本信息,对本店的预算及投资提供参考数据,同时要能够根据订单统计公司一天中那个时间内最忙。

(3)顾客管理:顾客可以用就餐卡就餐,也可以没有就餐卡。顾客使用就餐卡可享受打折。顾客购买就餐卡,须留下姓名、住址、电话。每位顾客可以拥有一张就餐卡,而且每张卡仅限一位顾客使用。一份订单只能使用一张就餐卡。

(4)食品管理:一份订单可包括一种或多种食品,一种食品可以出现在多份订单上。同时,根据食品价格随着时间的推移会发生变动的情况,跟踪价格变化情况。

(5)菜单管理:菜单有促销菜单和常规菜单。其中促销菜单中包含了在常规菜单中没有的特色食品,每个促销菜单都有一个名称,促销菜单只是在给定时段才推出的,因此它具有开始日期和结束日期。在给定时间段内只会推出一种促销食品。

1.2约束与限制

(1)假设该公司只有一种就餐卡,享受相同的折扣,并且是免费赠送的。

(2)作为一家快餐店,顾客是不能指定厨师的,厨师由店里自己安排,因此在订单里不体现厨师的信息。

(3)公司分为两级,即总公司和分公司,总公司负责管理所有的分公司。在筹备公司的时候,在确定了公司名称以后,地址和电话有可能还没有落实。

(4).经理人的费用预算情况是按月为单位进行费用预算和目标收入设定。 2 数据库概念模型设计过程

2.1 数据库概念模型设计的基本过程和步骤

数据库概念模式设计一般要经过以下几个步骤。(1)需求分析。即了解用户的数据需求、处理需求、安全性及完整性的要求。(2)分析用户的业务需求,通过数据抽象,抽象出系统中的实体,并分析实体之间的联系。(3)设计系统概念模型,一般为E-R模型。 2.2 餐饮连锁店系统数据库概念模型设计过程

(1)根据对上述需求 陈述的分析得知,该系统需 要对相关人员、工作班次、 顾客和食品进行跟踪,由此 可以抽象出雇员、班次、顾 客、食品等实体,这些实体、 实体的属性及结构层次的划 分见后续叙述。

(2)为了统计一天中

最忙的时段,创建时段实体, 并与订单进行联系。为了统 计光临次数最多的顾客,通 过建立顾客与订单之间的联系实现。(见图1)

顾客

订单 # 订单编号 *订单状态

属于

包含 时段 #时段编号 *时段名称 *开始时间

属于

下定

# 顾客编号 * 顾客姓名 * 顾客电

图1 顾客与订单、订单与时段之间的关系模型

(3)为了统计最努力的员工,通过 (见图 建立员工与订单之间的联系实现。2,假定当顾客向任意一位订单受理员下 订单后,该订单受理人将负责监督该订 单,确保厨师收到该订单,同时收集该订 单上的食品,后负责收款;如果顾客需要更改订单或对订单有疑问,都必须通过受 理订单的那个人进行办理。订单受理人不 能要求另一位员工来处理该订单。关系线 中的菱形表示订单只能被一位雇员处理) 监督 雇员 #编号 *名字 *姓氏 *年龄 *电话号码 º薪金 厨师 *培训方式 经理 *费用预算 *目标收入 受监督

订单 # 订单编号 *订单状态 被处理 订单受理人 处理 º 小时加班薪金 其他 图2 订单与雇员之间的关系模型

(4)为了.统计最受欢迎的

食品,通过建立食品、订单、订单明细之间的联系实现。为了跟踪食品价格变化情况,需要对食品价格历史数据建模。(见图3)

订单明细 # 订单明细id * 数量 属于 包含 订单 # 订单编号 *订单状态 显示 出现 食品 #食品编号 *名称 具有 属于 价格 # 开始日期 o 结束日期 * 价格 图3 订单明细与食品、订单与订单明细以及订单价格历史数据模型

(5)对于订单受理人,需要在标准薪金的基础上为其支付加班费。因此需要记录为额外工作时数而按小时支付的薪金。经理负责监督所有雇员,还要提供所负责餐馆的费用预算和目标收入。建立图4所示实体模型。

(6)为了了解哪些员工超负荷工作、哪些员工利用不足。因此需要跟踪谁在两班内连续工作,谁的工作班次不足等等。此外,如果在某个班次出现了问题,需要立即知道在该时间内是哪些雇员在工作,建立雇员、排班、班次实体之间的联系。(见图5)

(7)对菜单的管理,菜单包括常规菜单和促销菜单,促销菜单只在特定的时间段内有效。如果需要跟踪每种菜单的开始日期和结束日期,则需要在菜单实体中加入开始日期和结

束日期属性(参见图6中菜单实体)。

(8)由于是连锁店经营,就存在总公司与分公司管理的问题,需要建立公司实体进行管理。(参见图6中公司实体)

图5 雇员班次及排班实体关系模型

班次 #班次编号 拥有 排班 *班次名称 #排班日期 属于 *开始时间 。备注 *结束时间 拥有 订单受理人加班情况 #加班编号 *加班日期 *开始时间 属于 拥有 费用预算情况 #年份 #月份 *费用预算 *目标收入 。预算日期 被创建 创建 雇员 #编号 *名字 *姓氏 *年龄 *电话号码 º薪金 厨师 *培训方式 订单受理人 º 小时加班薪金 其他 监督 经理 *费用预算 *目标收入 受监督 图4 经理与费用预算情况、订单受理人与其加班情况的关系模型

监督 雇员 #编号 *名字 *姓氏 *年龄 *电话号码 经理 *费用预算 *目标收入 受监督 属于 º薪金 厨师 *培训方式 订单受理人 º 小时加班薪金 其他 2.3 根据上述各实体及其关系,画出系统总ERD。见图6。 包含 #时段编号 *时段名称 *开始时间 处理 订单受理人加班情况 #加班编号 *加班日期 *开始时间 *结束时间 图6 餐饮连锁店系统ERD 属于 拥有 其他 时段 价格 订单明细 # 订单明细id * 数量 属于 包含 订单 # 订单编号 * 订单状态 出现 食品 #食品编号 *名称 显示 # 开始日期 ° 结束日期 * 价格 属于 具有 出现 包含 显示 菜单明细 #菜单明细id °备注 属于 菜单 # 菜单编号 * 菜单名称 。开始日期 。结束日期 促销菜单 * 促销开始日期 * 促销结束日期 ° 赠品 其他 下定单 属于 顾客 # 顾客编号 * 顾客姓名 * 顾客电话 * 地址 ° 就餐卡号 费用预算情况 #年份 #月份 *费用预算 *目标收入 °预算日期 属于 被处理 排班 #排班日期 °备注 拥有 属于 班次 #班次编号 *班次名称 *开始时间 *结束时间 属于 雇员 #编号 *名字 拥有 *姓氏 *年龄 *电话号码 º薪金 厨师 *培训方式 订单受理人 创建 经理 被创建 监督 *费用预算 *目标收入 受监督 管理 公司 #公司编雇佣 属于 号 *名称 ° 地址 ° 电话 被管理 ° 小时加班薪金 3 分析与总结

按照数据库概念模型设计的方法和步骤,以餐饮连锁店系统为例,设计了系统的概念模型,由于设计方法的多样性,对以下问题进一步讨论。

(1)ER图没有标准答案。由于系统的业务需求有不同的实现方法,因此系统的ER图没有标准答案,只要它覆盖了系统需求的业务范围和功能内容,就是可行的。如上述对于雇员实体的处理,采用了递归结构设计方法,当然也可以全部雇员用一个实体实现,只要在该实体中加入雇员类型及各种雇员的属性,也可以实现所需要的功能。

(2)数据库概念设计应尽量满足3NF,但是,满足3NF的数据库设计,往往不一定是最好的设计。为了提高数据库的运行效率,常常需要降低范式标准,适当增加冗余,达到以空间换时间的目的。具体做法是,在概念数据模型设计时遵守3NF,降低范式标准的工作放到物理数据模型设计时考虑。本设计按照正是按照这样的方法进行概念模型设计。

餐饮连锁店系统是一个典型的管理信息系统,掌握了该系统数据库概念模型的设计方法,可以类推到其他类似的各种系统数据库概念模型设计上。

参考文献:

[1][美]Rud stphens.Beginning Database Design Solutions[M].北京:清华大学出版社,2010:7-16.

[2]陆云帆.Oracle数据库设计与实现[M].北京:机械工业出版社,2011:121-130.

[2]何玉洁等译.数据库设计[M].北京:机械工业出版社,2001:96-109. [3]曾强聪.软件工程原理与应用[M]北京:清华大学出版社,2011:85-100.

[4]Thomas M.Connolly.数据库设计教程(第2版)[M].北京:机械工业出版社,2004:157-165

①作者简介:贺亚茹(1963-),女,陕西蓝田人,硕士,副教授,研究方向为数据库理论与技术、软件工程。

因篇幅问题不能全部显示,请点此查看更多更全内容