《食品消费管理系统数据库设计与实现.doc》由会员分享,可在线阅读,更多相关《食品消费管理系统数据库设计与实现.doc(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date食品消费管理系统数据库设计与实现西安建筑科技大学课程设计(论文)课程名称: 数据库系统分析与设计 题 目:食品消费管理系统数据库设计与实现院 (系): 管理学院 专业班级: XXXXX 姓 名: XXXX 学 号: XXX 指导教师: XXXXX 2012年 12 月 4 日-XXX大学课程设计(论文)任务书专业班级: 学生姓名: 指导教师(签名): 一、课程设计(论
2、文)题目 食品消费管理系统数据库设计与实现二、本次课程设计(论文)应达到的目的 数据库系统分析与设计课程设计是信息管理与信息系统专业集中实践性环节之一,是学习完数据库数据库系统原理及技术及数据库系统分析与设计课程后进行的一次全面的综合练习。其目的在与加深对数据库基础理论和基本知识的理解,掌握借助PowerDesigner开发和设计一个小型数据库系统时设计数据库系统模型的基本方法,提高运用数据库解决实际问题的能力。 三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等) 要求学生能独立完成一个数据库模型的设计与实现,包括:1) 数据库系统需求分析;2) 数据库概念模型
3、设计;3) 数据库逻辑模型设计;4) 数据库物理模型的实现;5) 完成不少于6000字的课程设计报告撰写。四、应收集的资料及主要参考文献: 1 王珊, 萨师煊. 数据库系统概论(第4版). 北京:高教出版社,2006年5月.2 赵韶平等.PowerDesigner系统分析与建模(第2版). 北京:清华大学出版社,2010.3 Data Modeling and Relational Database Design. Oracle Inc. 2001.五、审核批准意见教研室主任(签字) 设计总说明随着高校学生的增多,食堂的管理工作变得越来越复杂,食品管理,消费管理等均成为了学校食堂需要解决的问题
4、。很多用人工管理已经无法很好的解决,需要一整套的梳理才能使学生和食堂里以及食堂的管理者感觉到高效和统一。为便于管理的方便性和可行性。根据现阶段的应用需求的开发目标设计食品消费数据库管理系统。完成具有食品管理、消费管理、餐厅管理等相关功能的小型数据库管理应用系统。本文简要介绍了利用PowerDesigner设计食品消费管理系统数据库设计与实现的过程,着重阐述了该系统开发的实现过程数据库设计部分,从系统的需求分析、概念模型设计、逻辑模型设计到物理数据库模型设计与实现等各环节都进行了较为详尽的分析与描述。关键字:食品消费管理系统,PowerDesigner,数据库设计目 录1 绪论11.1系统简介1
5、1.2设计目的11.3设计内容22 需求分析22.1 .需求分析的任务22.2 系统数据流程分析32.3 数据字典43 概念模型设计63.1 概念模型设计的方法和步骤63.2 系统概念模型94 逻辑模型设计104.1 逻辑模型设计的方法104.2 逻辑模型实现144.3 数据完整性约束定义145 物理数据库模型设计与实现155.1 物理数据库模型的图示155.2 物理数据库模型的详细表示185.3 物理数据库模型的实现18总结23参考文献361 绪论1.1系统简介该系统主要有人员管理、餐厅管理、食品管理、消费管理、用户管理等主要功能。分别主要有以下功能:1)人员信息管理:按条件查询人员的基本信
6、息,以及添加一个人员的基本信息,包括编号,姓名职务,对人员的信息进行更改和删除功能。 2)餐厅管理:查询餐厅的基本信息,以及插入新开餐厅的基本信息,包括餐厅编号,餐厅名称,日销售额,餐厅职工人数。还能对餐厅的基本信息进行更改及删除功能。3)食品管理:查询食品的基本信息,以及插入新的食品的基本信息,包括食品编号,食品名称,食品类别,食品单价。 4)消费管理:按人员、时间、餐厅统计计算消费总额,同时还能按食品类别、时间、餐厅消费总额。 5)消费记录管理:生成消费记录。6) 用户管理:用于管理进入这个系统的用户,包括新增用户,删除用户,以及修改用户信息。 1.2设计目的依据现阶段食堂食品的实际业务情
7、况,通过对整个系统的需求分析、概念模型设计、逻辑模型设计到物理数据库模型设计与实现等各环节进行分析与描述。从而以此为基础,建立起科学、高效的药店药品进销存管理系统,实现食品管理,餐厅管理以及消费管理的功能。最终达到方便管理人员对食品,消费等的管理,实现食堂管理的高效化和统一化,和提高管理方便性及可行性的目的。1.3设计内容本课程设计简要内容为利用PowerDesigner设计对食堂食品消费等管理系统数据库的过程,着重阐述了该系统开发的实现过程,从系统的需求分析、概念模型设计、逻辑模型设计到物理数据库模型设计与实现等各环节都进行了较为详尽的分析与描述。2 需求分析2.1 .需求分析的任务2.1.
8、1信息需求系统主要信息需求有:食品信息:食品编号,菜名,菜价,食品类型等。员工信息:员工编号,员工姓名,员工职位,所在餐厅等。餐厅信息:餐厅编号,餐厅名称,日销售额,职工人数等。学生信息:学号,姓名等。消费者信息:餐厅号,学号,菜编号,菜数量,消费时间,消费额,菜类型等。管理员信息:管理员名字,管理员密码等。2.1.2处理要求系统主要处理要求有如下几点:1)对基本信息管理:食品信息、员工信息、餐厅信息、消费者信息等;2) 对菜品管理:菜品登记、菜品查询、菜品销售等; 3) 对销售管理:销售登记、销售记录查询、销售报表等。2.2 系统数据流程分析1)基本业务调查对业务进行调查,得到其基本功能和业
9、务处理流程如图2.2-1所示。图2.21食品管理系统业务流程图2)数据流程图根据了解和调查结果,得到系统业务数据流程图如图2.2.2所示图2.22 药店进销存管理系统数据流程图2.3 数据字典在数据流程图中,数据信息和处理过程需要通过数据字典才能描述清楚,因此在数据字典中主要对数据流程图中的数据流、数据存储和处理过程给出更详细、更准确的说明。1)数据流定义可以通过表格的形式给出数据流程图的主要数据流,如表2.1所示。表2.1 XX系统主要数据流定义序号名称位置结构定义最大数据流量1食品信息2.21食品编号,菜名,菜价1000次/天2员工信息2.21员工编号,员工姓名,员工职位,1000次/天3
10、餐厅信息2.21餐厅编号,餐厅名称,1000次/天4学生信息2.21学号,姓名等。1000次/天5消费者信息2.21餐厅号,学号,菜编号,1000次/天2)数据存储定义可以采用如下表格的形式给出系统的主要数据定义,如表2.2所示。表2.2 XX系统主要数据存储定义编号名称输入输出数据量存取频度存取方式说明D1销售/退款销售清单销售登记表25000条1000次/天检索查询处理对于数据库的检索D2售出商品销售记录售出登记表2500 0条1000次/天检索查询处理对于数据库的检索D3录入系统售出登记表食品信息登记表25000条1000次/天检索查询处理对于数据库的检索D4制定菜单销售登记表菜单食品2
11、5000条1000次/天检索查询处理对于数据库的检索3)处理过程可以采用如下表格的形式给出系统的主要处理过程定义,如表2.3所示。表2.3 XX系统主要处理过程定义序号处理过程名称输入输出处理说明P1.1登记食品菜品制作菜单制作食品清单进行制作菜品汇总P1.2销售食品销售食品单销售登记表对销售进行汇总P1.3存储操作菜品销售基本信息销售清单对所有的数据进行汇总,存储3 概念模型设计3.1 概念模型设计的方法和步骤概念模型设计的过程及结果如下:1)选择File New Model命令,弹出如图3.11窗口,在窗口选择要建立的Concept Data Model。图3.112)单击确定按钮,如图3
12、.12所示的CDM工作区。图3.123)单击工具窗口中的“实体”图标,再设计窗口的适当位置单击,在淡季的位置上将出现一个实体符号,如图3.13所示。图3.134)在设计窗口中的空白区域右击使得光标变为箭头形状,然后选中该实体并双击,得到实体属性窗口,如图3.14所示。图3.145)在name文档中输入实体姓名,在code文本框中输入实体代码,在Attributes选项卡中定义实体属性,如图3.15所示。图3.15注:其他实体建立方式同上,此处略过。3.2 系统概念模型CDM模型如下:4 逻辑模型设计4.1 逻辑模型设计的方法由概念模型转化为逻辑模型的基本方法步骤如下:1)打开CDM模型,选择T
13、ools Generate Logic Data Model.命令,打开的LDM Generate Options,如图4.11所示。图4.112)选择Detail选项卡,进行其他选项的设置,如图4.12所示。图4.123)选择Selection选项卡,可以选择CDM、实体,如图4.13所示。图4.134)单击“Tagert Model ”按钮可得到如图4.14窗口。图4.145)单击“确定”按钮,开始生成LDM。4.2 逻辑模型实现4.3 数据完整性约束定义根据上面的关系模式,数据库的完整性约束如下所示:1) 实体完整性约束食品信息(食品编号,菜名,菜价,食品类型)员工信息(员工编号,员工姓
14、名,员工职位,所在餐厅)餐厅信息(餐厅编号,餐厅名称,日销售额,职工人数)学生信息(学号,姓名)消费者信息(餐厅号,学号,菜编号,菜数量,消费时间,消费额,菜类型)管理员信息(管理员名字,管理员密码)2)参照完整性约束食品信息(食品编号,菜名,菜价,食品类型)员工信息(员工编号,员工姓名,员工职位,所在餐厅,餐厅编号)餐厅信息(餐厅编号,餐厅名称,日销售额,职工人数)学生信息(学号,姓名,餐厅编号)消费者信息(餐厅号,学号,菜编号,菜数量,消费时间,消费额,菜类型)管理员信息(管理员名字,管理员密码)3)用户自定义完整性约束用户自定义约束如下:学生姓名、菜名等均不能为空。5 物理数据库模型设计
15、与实现5.1 物理数据库模型的图示1)打开CDM模型,选择选择Tools Generate Physical Data Model.命令,打开的PDM Generate Options,如图5.11所示。图5.112)选择Detail选项卡,进行其他选项的设置,如图5.12所示。图5.123)选择“selection”选项卡,选择要转换为PDM的实体,如图5.13。图5.134)点击“确定”按钮,开始生成PDM。5)根据提示对出现的警告和错误进行修改。PDM模型如下5.2 物理数据库模型的详细表示5.3 物理数据库模型的实现下面给出了在SQL Server中调试正确的数据库及表和相关定义的SQ
16、L语句。生成数据库的步骤及结果:(1) 定义数据源图5.3.1(2)图5.32(3)图5.33(4)生成物理数据库的设置选项图5.34图5.35图5.36生成表结构如下图5.37OOM模型如下SQL语句如下:/*=*/* DBMS name: Microsoft SQL Server 2005 */* Created on: 2013/1/4 9:26:00 */*=*/if exists (select 1 from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = F) where r.f
17、keyid = object_id(Relationship_1) and o.name = FK_RELATION_RELATIONS_消费者信息)alter table Relationship_1 drop constraint FK_RELATION_RELATIONS_消费者信息goif exists (select 1 from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(Relationship_1) and o.
18、name = FK_RELATION_RELATIONS_食品信息)alter table Relationship_1 drop constraint FK_RELATION_RELATIONS_食品信息goif exists (select 1 from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(Relationship_2) and o.name = FK_RELATION_RELATIONS_餐厅信息)alter ta
19、ble Relationship_2 drop constraint FK_RELATION_RELATIONS_餐厅信息goif exists (select 1 from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(Relationship_2) and o.name = FK_RELATION_RELATIONS_食品信息)alter table Relationship_2 drop constraint FK_RELA
20、TION_RELATIONS_食品信息goif exists (select 1 from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(Relationship_4) and o.name = FK_RELATION_RELATIONS_食品信息)alter table Relationship_4 drop constraint FK_RELATION_RELATIONS_食品信息goif exists (select 1 f
21、rom sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(Relationship_4) and o.name = FK_RELATION_RELATIONS_学生信息)alter table Relationship_4 drop constraint FK_RELATION_RELATIONS_学生信息goif exists (select 1 from sys.sysreferences r join sys.sysobject
22、s o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(员工信息) and o.name = FK_员工信息_RELATIONS_餐厅信息)alter table 员工信息 drop constraint FK_员工信息_RELATIONS_餐厅信息goif exists (select 1 from sys.sysreferences r join sys.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(学生
23、信息) and o.name = FK_学生信息_RELATIONS_餐厅信息)alter table 学生信息 drop constraint FK_学生信息_RELATIONS_餐厅信息goif exists (select 1 from sysindexes where id = object_id(Relationship_1) and name = Relationship_1_FK and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and i
24、ndid 255) drop index 学生信息.Relationship_5_FKgoif exists (select 1 from sysobjects where id = object_id(学生信息) and type = U) drop table 学生信息goif exists (select 1 from sysobjects where id = object_id(消费者信息) and type = U) drop table 消费者信息goif exists (select 1 from sysobjects where id = object_id(管理员信息) a
25、nd type = U) drop table 管理员信息goif exists (select 1 from sysobjects where id = object_id(食品信息) and type = U) drop table 食品信息goif exists (select 1 from sysobjects where id = object_id(餐厅信息) and type = U) drop table 餐厅信息go/*=*/* Table: Relationship_1 */*=*/create table Relationship_1 ( 餐厅号 char(10) not
26、 null, 食品编号 char(8) not null, constraint PK_RELATIONSHIP_1 primary key nonclustered (餐厅号, 食品编号)go/*=*/* Index: Relationship_6_FK */*=*/create index Relationship_6_FK on Relationship_1 (食品编号 ASC)go/*=*/* Index: Relationship_1_FK */*=*/create index Relationship_1_FK on Relationship_1 (餐厅号 ASC)go/*=*/*
27、 Table: Relationship_2 */*=*/create table Relationship_2 ( 餐厅编号 char(10) not null, 食品编号 char(8) not null, constraint PK_RELATIONSHIP_2 primary key nonclustered (餐厅编号, 食品编号)go/*=*/* Index: Relationship_7_FK */*=*/create index Relationship_7_FK on Relationship_2 (食品编号 ASC)go/*=*/* Index: Relationship_
28、2_FK */*=*/create index Relationship_2_FK on Relationship_2 (餐厅编号 ASC)go/*=*/* Table: Relationship_4 */*=*/create table Relationship_4 ( 食品编号 char(8) not null, 学号 char(10) not null, constraint PK_RELATIONSHIP_4 primary key nonclustered (食品编号, 学号)go/*=*/* Index: Relationship_8_FK */*=*/create index Relationship_8_FK on Relationship_4 (学号 ASC)go/*=*/* Index: Relationship_4_FK */*=*/create index Relationship_4_FK on Relationship_4 (食品编号 ASC)go/*=*/* Table: 员工信息 */*=*/create table 员工信息 ( 员工编号 char(10)