食品消费管理系统数据库设计与实现Word下载.docx
《食品消费管理系统数据库设计与实现Word下载.docx》由会员分享,可在线阅读,更多相关《食品消费管理系统数据库设计与实现Word下载.docx(34页珍藏版)》请在冰豆网上搜索。
PowerDesigner系统分析与建模(第2版)。
北京:
清华大学出版社,2010。
[3]DataModelingandRelationalDatabaseDesign.OracleInc。
2001。
五、审核批准意见
教研室主任(签字)
设计总说明
随着高校学生的增多,食堂的管理工作变得越来越复杂,食品管理,消费管理等均成为了学校食堂需要解决的问题。
很多用人工管理已经无法很好的解决,需要一整套的梳理才能使学生和食堂里以及食堂的管理者感觉到高效和统一。
为便于管理的方便性和可行性.根据现阶段的应用需求的开发目标设计食品消费数据库管理系统。
完成具有食品管理、消费管理、餐厅管理等相关功能的小型数据库管理应用系统。
本文简要介绍了利用PowerDesigner设计食品消费管理系统数据库设计与实现的过程,着重阐述了该系统开发的实现过程数据库设计部分,从系统的需求分析、概念模型设计、逻辑模型设计到物理数据库模型设计与实现等各环节都进行了较为详尽的分析与描述。
关键字:
食品消费管理系统,PowerDesigner,数据库设计
1绪论
1。
1系统简介
该系统主要有人员管理、餐厅管理、食品管理、消费管理、用户管理等主要功能。
分别主要有以下功能:
1)人员信息管理:
按条件查询人员的基本信息,以及添加一个人员的基本信息,包括编号,姓名职务,对人员的信息进行更改和删除功能.
2)餐厅管理:
查询餐厅的基本信息,以及插入新开餐厅的基本信息,包括餐厅编号,餐厅名称,日销售额,餐厅职工人数.还能对餐厅的基本信息进行更改及删除功能.
3)食品管理:
查询食品的基本信息,以及插入新的食品的基本信息,包括食品编号,食品名称,食品类别,食品单价.
4)消费管理:
按人员、时间、餐厅统计计算消费总额,同时还能按食品类别、时间、餐厅消费总额。
5)消费记录管理:
生成消费记录。
6)用户管理:
用于管理进入这个系统的用户,包括新增用户,删除用户,以及修改用户信息.
2设计目的
依据现阶段食堂食品的实际业务情况,通过对整个系统的需求分析、概念模型设计、逻辑模型设计到物理数据库模型设计与实现等各环节进行分析与描述.从而以此为基础,建立起科学、高效的药店药品进销存管理系统,实现食品管理,餐厅管理以及消费管理的功能。
最终达到方便管理人员对食品,消费等的管理,实现食堂管理的高效化和统一化,和提高管理方便性及可行性的目的。
3设计内容
本课程设计简要内容为利用PowerDesigner设计对食堂食品消费等管理系统数据库的过程,着重阐述了该系统开发的实现过程,从系统的需求分析、概念模型设计、逻辑模型设计到物理数据库模型设计与实现等各环节都进行了较为详尽的分析与描述.
2需求分析
2.1.需求分析的任务
2.1.1信息需求
系统主要信息需求有:
食品信息:
食品编号,菜名,菜价,食品类型等。
员工信息:
员工编号,员工姓名,员工职位,所在餐厅等。
餐厅信息:
餐厅编号,餐厅名称,日销售额,职工人数等。
学生信息:
学号,姓名等。
消费者信息:
餐厅号,学号,菜编号,菜数量,消费时间,消费额,菜类型等。
管理员信息:
管理员名字,管理员密码等.
2。
1.2处理要求
系统主要处理要求有如下几点:
1)对基本信息管理:
食品信息、员工信息、餐厅信息、消费者信息等;
2)对菜品管理:
菜品登记、菜品查询、菜品销售等;
3)对销售管理:
销售登记、销售记录查询、销售报表等.
2.2系统数据流程分析
1)基本业务调查
对业务进行调查,得到其基本功能和业务处理流程如图2.2—1所示。
图2。
2-1食品管理系统业务流程图
2)数据流程图
根据了解和调查结果,得到系统业务数据流程图如图2。
2.2所示
图2.2—2药店进销存管理系统数据流程图
2.3数据字典
在数据流程图中,数据信息和处理过程需要通过数据字典才能描述清楚,因此在数据字典中主要对数据流程图中的数据流、数据存储和处理过程给出更详细、更准确的说明。
1)数据流定义
可以通过表格的形式给出数据流程图的主要数据流,如表2.1所示.
表2.1XX系统主要数据流定义
序号
名称
位置
结构定义
最大数据流量
1
食品信息
2.2—1
食品编号,菜名,菜价
1000次/天
2
员工信息
2—1
员工编号,员工姓名,员工职位,
3
餐厅信息
2.2-1
餐厅编号,餐厅名称,
4
学生信息
学号,姓名等.
5
消费者信息
餐厅号,学号,菜编号,
2)数据存储定义
可以采用如下表格的形式给出系统的主要数据定义,如表2。
2所示。
表2。
2XX系统主要数据存储定义
编号
输入
输出
数据量
存取频度
存取方式
说明
D1
销售/退款
销售清单
销售登记表
25000条
检索查询处理
对于数据库的检索
D2
售出商品
销售记录
售出登记表
25000条
D3
录入系统
食品信息登记表
D4
制定菜单
菜单食品
3)处理过程
可以采用如下表格的形式给出系统的主要处理过程定义,如表2.3所示.
3XX系统主要处理过程定义
处理过程名称
处理说明
P1。
登记食品
菜品制作菜单
制作食品清单
进行制作菜品汇总
P1.2
销售食品
销售食品单
对销售进行汇总
P1.3
存储操作
菜品销售基本信息
对所有的数据进行汇总,存储
3概念模型设计
3。
1概念模型设计的方法和步骤
概念模型设计的过程及结果如下:
1)选择FileNewModel命令,弹出如图3.1-1窗口,在窗口选
择要建立的ConceptDataModel。
图3。
1-1
2)单击确定按钮,如图3.1-2所示的CDM工作区。
1—2
3)单击工具窗口中的“实体"
图标,再设计窗口的适当位置单击,在淡季的位置上将出现一个实体符号,如图3。
1-3所示。
1—3
4)在设计窗口中的空白区域右击使得光标变为箭头形状,然后选中该实体并双击,得到实体属性窗口,如图3。
1—4所示。
图3.1—4
5)在name文档中输入实体姓名,在code文本框中输入实体代码,在Attributes选项卡中定义实体属性,如图3.1-5所示。
图3.1—5
注:
其他实体建立方式同上,此处略过。
2系统概念模型
CDM模型如下:
4逻辑模型设计
4.1逻辑模型设计的方法
由概念模型转化为逻辑模型的基本方法步骤如下:
1)打开CDM模型,选择ToolsGenerateLogicDataModel.命令,打开的LDMGenerateOptions,如图4.1—1所示.
图4。
2)选择Detail选项卡,进行其他选项的设置,如图4.1—2所示。
1-2
3)选择Selection选项卡,可以选择CDM、实体,如图4。
图4.1—3
4)单击“TagertModel"
按钮可得到如图4。
1—4窗口。
1—4
5)单击“确定"
按钮,开始生成LDM。
4.2逻辑模型实现
4。
3数据完整性约束定义
根据上面的关系模式,数据库的完整性约束如下所示:
1)实体完整性约束
食品信息(食品编号,菜名,菜价,食品类型)
员工信息(员工编号,员工姓名,员工职位,所在餐厅)
餐厅信息(餐厅编号,餐厅名称,日销售额,职工人数)
学生信息(学号,姓名)
消费者信息(餐厅号,学号,菜编号,菜数量,消费时间,消费额,菜类型)
管理员信息(管理员名字,管理员密码)
2)参照完整性约束
员工信息(员工编号,员工姓名,员工职位,所在餐厅,餐厅编号)
餐厅信息(餐厅编号,餐厅名称,日销售额,职工人数)
学生信息(学号,姓名,餐厅编号)
消费者信息(餐厅号,学号,菜编号,菜数量,消费时间,消费额,菜类型)
3)用户自定义完整性约束
用户自定义约束如下:
学生姓名、菜名等均不能为空.
5物理数据库模型设计与实现
5.1物理数据库模型的图示
1)打开CDM模型,选择选择ToolsGeneratePhysicalDataModel.命令,打开的PDMGenerateOptions,如图5.1—1所示。
图5.1—1
2)选择Detail选项卡,进行其他选项的设置,如图5。
1—2所示。
图5.1—2
3)选择“selection”选项卡,选择要转换为PDM的实体,如图5。
1—3。
图5.1-3
4)点击“确定”按钮,开始生成PDM.
5)根据提示对出现的警告和错误进行修改。
PDM模型如下
5.2物理数据库模型的详细表示
5。
3物理数据库模型的实现
下面给出了在SQLServer中调试正确的数据库及表和相关定义的SQL语句。
生成数据库的步骤及结果:
(1)定义数据源
图5。
—1
(2)
3—2
(3)
3—3
(4)生成物理数据库的设置选项
图5.3—4
3-5
3—6
生成表结构如下
图5.3—7
OOM模型如下
SQL语句如下:
/*==============================================================*/
/*DBMSname:
MicrosoftSQLServer2005*/
/*Createdon:
2013/1/49:
26:
00*/
/*==============================================================*/
ifexists(select1
fromsys.sysreferencesrjoinsys。
sysobjectsoon(o。
id=r.constidando.type=’F'
)
wherer。
fkeyid=object_id(’Relationship_1'
)ando。
name='
FK_RELATION_RELATIONS_消费者信息’)
altertableRelationship_1
dropconstraintFK_RELATION_RELATIONS_消费者信息
go
id=r。
constidando。
type='
F'
)ando.name=’FK_RELATION_RELATIONS_食品信息’)
dropconstraintFK_RELATION_RELATIONS_食品信息
fromsys.sysreferencesrjoinsys.sysobjectsoon(o。
constidando.type='
wherer.fkeyid=object_id(’Relationship_2'
)ando.name=’FK_RELATION_RELATIONS_餐厅信息'
altertableRelationship_2
dropconstraintFK_RELATION_RELATIONS_餐厅信息
fkeyid=object_id(’Relationship_2’)ando。
name=’FK_RELATION_RELATIONS_食品信息’)
fromsys。
sysreferencesrjoinsys.sysobjectsoon(o.id=r。
wherer.fkeyid=object_id(’Relationship_4'
FK_RELATION_RELATIONS_食品信息'
altertableRelationship_4
fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidando.type='
F’)
fkeyid=object_id(’Relationship_4'
)ando.name=’FK_RELATION_RELATIONS_学生信息'
dropconstraintFK_RELATION_RELATIONS_学生信息
type=’F’)
fkeyid=object_id('
员工信息'
FK_员工信息_RELATIONS_餐厅信息'
altertable员工信息
dropconstraintFK_员工信息_RELATIONS_餐厅信息
sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidando。
type=’F'
fkeyid=object_id(’学生信息'
name=’FK_学生信息_RELATIONS_餐厅信息'
altertable学生信息
dropconstraintFK_学生信息_RELATIONS_餐厅信息
fromsysindexes
whereid=object_id('
Relationship_1’)
andname=’Relationship_1_FK’
andindid〉0
andindid〈255)
dropindexRelationship_1.Relationship_1_FK
andname='
Relationship_6_FK'
andindid>
0
dropindexRelationship_1.Relationship_6_FK
fromsysobjects
whereid=object_id(’Relationship_1'
andtype=’U'
droptableRelationship_1
Relationship_2'
andname=’Relationship_2_FK’
andindid<
255)
dropindexRelationship_2.Relationship_2_FK
whereid=object_id(’Relationship_2’)
Relationship_7_FK’
dropindexRelationship_2.Relationship_7_FK
droptableRelationship_2
Relationship_4'
andname=’Relationship_4_FK'
dropindexRelationship_4.Relationship_4_FK
andname=’Relationship_8_FK’
dropindexRelationship_4.Relationship_8_FK
whereid=object_id(’Relationship_4'
andtype='
U’)
droptableRelationship_4
andname=’Relationship_3_FK’
dropindex员工信息.Relationship_3_FK
员工信息’)
droptable员工信息
学生信息'
Relationship_5_FK'
dropindex学生信息.Relationship_5_FK
whereid=object_id(’学生信息'
andtype=’U’)
droptable学生信息
消费者信息’)
droptable消费者信息
管理员信息’)
droptable管理员信息
whereid=object_id(’食品信息’)
droptable食品信息
餐厅信息'
droptable餐厅信息
/*==============================================================*/
/*Table:
Relationship_1*/
/*