食品消费管理系统数据库设计与实现.docx

上传人:b****5 文档编号:5928198 上传时间:2023-01-02 格式:DOCX 页数:34 大小:1,015.44KB
下载 相关 举报
食品消费管理系统数据库设计与实现.docx_第1页
第1页 / 共34页
食品消费管理系统数据库设计与实现.docx_第2页
第2页 / 共34页
食品消费管理系统数据库设计与实现.docx_第3页
第3页 / 共34页
食品消费管理系统数据库设计与实现.docx_第4页
第4页 / 共34页
食品消费管理系统数据库设计与实现.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

食品消费管理系统数据库设计与实现.docx

《食品消费管理系统数据库设计与实现.docx》由会员分享,可在线阅读,更多相关《食品消费管理系统数据库设计与实现.docx(34页珍藏版)》请在冰豆网上搜索。

食品消费管理系统数据库设计与实现.docx

食品消费管理系统数据库设计与实现

 

课程设计(论文)

 

课程名称:

数据库系统分析与设计

题目:

食品消费管理系统数据库设计与实现

院(系):

管理学院

专业班级:

XXXXX

姓名:

XXXX

学号:

XXX

指导教师:

XXXXX

2012年12月4日

XXX大学课程设计(论文)任务书

专业班级:

学生姓名:

指导教师(签名):

一、课程设计(论文)题目

食品消费管理系统数据库设计与实现

二、本次课程设计(论文)应达到的目的

数据库系统分析与设计课程设计是信息管理与信息系统专业集中实践性环节之一,是学习完《数据库数据库系统原理及技术》及《数据库系统分析与设计》课程后进行的一次全面的综合练习。

其目的在与加深对数据库基础理论和基本知识的理解,掌握借助PowerDesigner开发和设计一个小型数据库系统时设计数据库系统模型的基本方法,提高运用数据库解决实际问题的能力.

三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)

要求学生能独立完成一个数据库模型的设计与实现,包括:

1)数据库系统需求分析;

2)数据库概念模型设计;

3)数据库逻辑模型设计;

4)数据库物理模型的实现;

5)完成不少于6000字的课程设计报告撰写.

四、应收集的资料及主要参考文献:

[1]王珊,萨师煊.数据库系统概论(第4版).北京:

高教出版社,2006年5月。

[2]赵韶平等。

PowerDesigner系统分析与建模(第2版)。

北京:

清华大学出版社,2010。

[3]DataModelingandRelationalDatabaseDesign.OracleInc。

2001。

五、审核批准意见

教研室主任(签字)

设计总说明

随着高校学生的增多,食堂的管理工作变得越来越复杂,食品管理,消费管理等均成为了学校食堂需要解决的问题。

很多用人工管理已经无法很好的解决,需要一整套的梳理才能使学生和食堂里以及食堂的管理者感觉到高效和统一。

为便于管理的方便性和可行性.根据现阶段的应用需求的开发目标设计食品消费数据库管理系统。

完成具有食品管理、消费管理、餐厅管理等相关功能的小型数据库管理应用系统。

本文简要介绍了利用PowerDesigner设计食品消费管理系统数据库设计与实现的过程,着重阐述了该系统开发的实现过程数据库设计部分,从系统的需求分析、概念模型设计、逻辑模型设计到物理数据库模型设计与实现等各环节都进行了较为详尽的分析与描述。

关键字:

食品消费管理系统,PowerDesigner,数据库设计

 

1绪论

1。

1系统简介

该系统主要有人员管理、餐厅管理、食品管理、消费管理、用户管理等主要功能。

分别主要有以下功能:

1)人员信息管理:

按条件查询人员的基本信息,以及添加一个人员的基本信息,包括编号,姓名职务,对人员的信息进行更改和删除功能.

2)餐厅管理:

查询餐厅的基本信息,以及插入新开餐厅的基本信息,包括餐厅编号,餐厅名称,日销售额,餐厅职工人数.还能对餐厅的基本信息进行更改及删除功能.

3)食品管理:

查询食品的基本信息,以及插入新的食品的基本信息,包括食品编号,食品名称,食品类别,食品单价.

4)消费管理:

按人员、时间、餐厅统计计算消费总额,同时还能按食品类别、时间、餐厅消费总额。

5)消费记录管理:

生成消费记录。

6)用户管理:

用于管理进入这个系统的用户,包括新增用户,删除用户,以及修改用户信息.

1。

2设计目的

依据现阶段食堂食品的实际业务情况,通过对整个系统的需求分析、概念模型设计、逻辑模型设计到物理数据库模型设计与实现等各环节进行分析与描述.从而以此为基础,建立起科学、高效的药店药品进销存管理系统,实现食品管理,餐厅管理以及消费管理的功能。

最终达到方便管理人员对食品,消费等的管理,实现食堂管理的高效化和统一化,和提高管理方便性及可行性的目的。

1。

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。

2—1

员工编号,员工姓名,员工职位,

1000次/天

3

餐厅信息

2.2-1

餐厅编号,餐厅名称,

1000次/天

4

学生信息

2。

2—1

学号,姓名等.

1000次/天

5

消费者信息

2.2—1

餐厅号,学号,菜编号,

1000次/天

2)数据存储定义

可以采用如下表格的形式给出系统的主要数据定义,如表2。

2所示。

表2。

2XX系统主要数据存储定义

编号

名称

输入

输出

数据量

存取频度

存取方式

说明

D1

销售/退款

销售清单

销售登记表

25000条

1000次/天

检索查询处理

对于数据库的检索

D2

售出商品

销售记录

售出登记表

25000条

1000次/天

检索查询处理

对于数据库的检索

D3

录入系统

售出登记表

食品信息登记表

25000条

1000次/天

检索查询处理

对于数据库的检索

D4

制定菜单

销售登记表

菜单食品

25000条

1000次/天

检索查询处理

对于数据库的检索

3)处理过程

可以采用如下表格的形式给出系统的主要处理过程定义,如表2.3所示.

表2。

3XX系统主要处理过程定义

序号

处理过程名称

输入

输出

处理说明

P1。

1

登记食品

菜品制作菜单

制作食品清单

进行制作菜品汇总

P1.2

销售食品

销售食品单

销售登记表

对销售进行汇总

P1.3

存储操作

菜品销售基本信息

销售清单

对所有的数据进行汇总,存储

3概念模型设计

3。

1概念模型设计的方法和步骤

概念模型设计的过程及结果如下:

1)选择FileNewModel命令,弹出如图3.1-1窗口,在窗口选

择要建立的ConceptDataModel。

图3。

1-1

2)单击确定按钮,如图3.1-2所示的CDM工作区。

图3。

1—2

3)单击工具窗口中的“实体"图标,再设计窗口的适当位置单击,在淡季的位置上将出现一个实体符号,如图3。

1-3所示。

图3。

1—3

4)在设计窗口中的空白区域右击使得光标变为箭头形状,然后选中该实体并双击,得到实体属性窗口,如图3。

1—4所示。

图3.1—4

5)在name文档中输入实体姓名,在code文本框中输入实体代码,在Attributes选项卡中定义实体属性,如图3.1-5所示。

图3.1—5

注:

其他实体建立方式同上,此处略过。

3。

2系统概念模型

CDM模型如下:

4逻辑模型设计

4.1逻辑模型设计的方法

由概念模型转化为逻辑模型的基本方法步骤如下:

1)打开CDM模型,选择ToolsGenerateLogicDataModel.命令,打开的LDMGenerateOptions,如图4.1—1所示.

图4。

1-1

2)选择Detail选项卡,进行其他选项的设置,如图4.1—2所示。

图4。

1-2

3)选择Selection选项卡,可以选择CDM、实体,如图4。

1-3所示。

图4.1—3

4)单击“TagertModel"按钮可得到如图4。

1—4窗口。

图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。

3。

—1

(2)

图5。

3—2

(3)

图5。

3—3

(4)生成物理数据库的设置选项

 

图5.3—4

 

图5。

3-5

 

图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

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

ifexists(select1

fromsys.sysreferencesrjoinsys.sysobjectsoon(o。

id=r。

constidando.type='F')

wherer.fkeyid=object_id(’Relationship_2')ando.name=’FK_RELATION_RELATIONS_餐厅信息')

altertableRelationship_2

dropconstraintFK_RELATION_RELATIONS_餐厅信息

go

ifexists(select1

fromsys.sysreferencesrjoinsys.sysobjectsoon(o。

id=r.constidando.type=’F')

wherer。

fkeyid=object_id(’Relationship_2’)ando。

name=’FK_RELATION_RELATIONS_食品信息’)

altertableRelationship_2

dropconstraintFK_RELATION_RELATIONS_食品信息

go

ifexists(select1

fromsys。

sysreferencesrjoinsys.sysobjectsoon(o.id=r。

constidando。

type='F')

wherer.fkeyid=object_id(’Relationship_4')ando。

name='FK_RELATION_RELATIONS_食品信息')

altertableRelationship_4

dropconstraintFK_RELATION_RELATIONS_食品信息

go

ifexists(select1

fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidando.type='F’)

wherer。

fkeyid=object_id(’Relationship_4')ando.name=’FK_RELATION_RELATIONS_学生信息')

altertableRelationship_4

dropconstraintFK_RELATION_RELATIONS_学生信息

go

ifexists(select1

fromsys.sysreferencesrjoinsys.sysobjectsoon(o。

id=r。

constidando。

type=’F’)

wherer。

fkeyid=object_id('员工信息')ando。

name='FK_员工信息_RELATIONS_餐厅信息')

altertable员工信息

dropconstraintFK_员工信息_RELATIONS_餐厅信息

go

ifexists(select1

fromsys。

sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidando。

type=’F')

wherer。

fkeyid=object_id(’学生信息')ando。

name=’FK_学生信息_RELATIONS_餐厅信息')

altertable学生信息

dropconstraintFK_学生信息_RELATIONS_餐厅信息

go

ifexists(select1

fromsysindexes

whereid=object_id('Relationship_1’)

andname=’Relationship_1_FK’

andindid〉0

andindid〈255)

dropindexRelationship_1.Relationship_1_FK

go

ifexists(select1

fromsysindexes

whereid=object_id('Relationship_1’)

andname='Relationship_6_FK'

andindid>0

andindid〈255)

dropindexRelationship_1.Relationship_6_FK

go

ifexists(select1

fromsysobjects

whereid=object_id(’Relationship_1')

andtype=’U')

droptableRelationship_1

go

ifexists(select1

fromsysindexes

whereid=object_id('Relationship_2')

andname=’Relationship_2_FK’

andindid〉0

andindid<255)

dropindexRelationship_2.Relationship_2_FK

go

ifexists(select1

fromsysindexes

whereid=object_id(’Relationship_2’)

andname='Relationship_7_FK’

andindid〉0

andindid<255)

dropindexRelationship_2.Relationship_7_FK

go

ifexists(select1

fromsysobjects

whereid=object_id('Relationship_2')

andtype=’U')

droptableRelationship_2

go

ifexists(select1

fromsysindexes

whereid=object_id('Relationship_4')

andname=’Relationship_4_FK'

andindid>0

andindid〈255)

dropindexRelationship_4.Relationship_4_FK

go

ifexists(select1

fromsysindexes

whereid=object_id('Relationship_4')

andname=’Relationship_8_FK’

andindid〉0

andindid〈255)

dropindexRelationship_4.Relationship_8_FK

go

ifexists(select1

fromsysobjects

whereid=object_id(’Relationship_4')

andtype='U’)

droptableRelationship_4

go

ifexists(select1

fromsysindexes

whereid=object_id('员工信息')

andname=’Relationship_3_FK’

andindid〉0

andindid<255)

dropindex员工信息.Relationship_3_FK

go

ifexists(select1

fromsysobjects

whereid=object_id('员工信息’)

andtype=’U')

droptable员工信息

go

ifexists(select1

fromsysindexes

whereid=object_id('学生信息')

andname='Relationship_5_FK'

andindid>0

andindid<255)

dropindex学生信息.Relationship_5_FK

go

ifexists(select1

fromsysobjects

whereid=object_id(’学生信息')

andtype=’U’)

droptable学生信息

go

ifexists(select1

fromsysobjects

whereid=object_id('消费者信息’)

andtype=’U’)

droptable消费者信息

go

ifexists(select1

fromsysobjects

whereid=object_id('管理员信息’)

andtype=’U’)

droptable管理员信息

go

ifexists(select1

fromsysobjects

whereid=object_id(’食品信息’)

andtype=’U')

droptable食品信息

go

ifexists(select1

fromsysobjects

whereid=object_id('餐厅信息')

andtype=’U’)

droptable餐厅信息

go

/*==============================================================*/

/*Table:

Relationship_1*/

/*

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1