辽宁工业大学《SQL server数据库设计实训》报告题目:餐饮管理系统院(系): 软件学院专业班级:电子商务(国际)学号:学生姓名:指导教师:翟宝峰教师职称:副教授起止时间:2011.09.03-2011.09.14设计任务及评语目录第1章设计目的与要求 (1)1.1设计目的 (1)1.2设计环境 (1)1.3主要参考资料 (1)1.4设计内容及要求 (1)第2章设计内容 (2)2.1数据库设计 (2)2.1.1需求分析 (2)2.1.2概念设计 (5)2.1.3逻辑设计 (6)2.1.4物理设计 (7)2.1.5 数据库实现 (7)2.2程序设计 (11)2.2.1概要设计 (11)2.2.2程序实现 (11)第3章设计总结 (14)参考文献 (15)第1章设计目的与要求1.1设计目的本设计专题是软件工程类专业的有关管理信息系统设计开发的一个重要环节,是本专业学生必须学习和掌握的综合实践课程。
本实践课的主要目的是:(1)、掌握运用管理系统及数据库原理知识进行系统分析和设计的方法;(2)掌握关系数据库的设计方法;(3)掌握SQL Server 2000技术应用;(4)掌握简单的数据库应用程序编写方法;(5)理解C/S模式结构。
1.2设计环境硬件:处理器,Intel Pentium 166 MHz以上,内存:512M 以上,硬盘空间:8G 以上软件:Windows XP需要软件:Microsoft Visual Basic 6.0,Microsoft SQL Server 2000 1.3主要参考资料1.《管理信息系统》黄梯云高等教育出版社2.《数据库系统概论》萨师煊高等教育出版社3.《SQL Server 2000 数据库应用系统开发技术》朱如龙编,机械工业出版社。
4.《SQL Server 2000 数据库应用系统开发技术实验指导》朱如龙编,机械工业出版社1.4设计内容及要求一、内容1.要求根据管理信息系统及数据库设计原理,按照数据库系统设计的步骤和规范,完成各阶段的设计内容。
2.需求分析具体实际,数据流图、数据字典、关系模型要正确规范3.在sql server2000 上实现设计的数据库模型。
4.对应用程序进行概要设计。
5.用VB实现简单的应用程序编写。
二、要求设计过程中,要严格遵守课程设计的时间安排,听从指导教师的指导。
正确地完成上述内容,规范完整地撰写出课程设计报告。
第2章设计内容2.1数据库设计本数据库系统通过之前的需求分析,以SQL为后台,VB为前台设计了一个简单的餐饮管理系统。
通过概念设计,逻辑设计和物理设计的转换来实现了数据库文件。
2.1.1需求分析本系统介绍了一般的计算机管理的餐饮服务程序,首先从各种相关的软件入手,分析了这类软件的特点、发展历程,并对发展缓慢的原因进行了初步的调研。
从以前的相关软件的软肋着手,介绍了餐饮服务计算机软件的编程思路和基本方法。
重点介绍了前台营业,从第三者的角度即消费者的角度介绍了前台营业的操作流程在酒店里建立一个餐饮服务系统对提高酒店的工作效率和增加酒店的效益都是有好处的,它影响了酒店经营业绩,也使酒店的竞争能力提升。
它的优势主要在于有效展示酒店形象和服务,建立与客户良好的互动关系,高效管理销售过程,而且显著降低销售成本、提高经济效益和管理水平,提高营业收入,使得利润最大化,如此可见餐饮服务系统给酒店带来了可观的收入。
本餐饮管理系统主要实现对餐饮系统相关信息的管理,其中以日点单为中心,其中还包括员工信息管理,员工所属部门信息的管理,房间台号以及房间类型的相关信息管理,还包含了最基础的商品信息表和供应商基础信息。
1.餐饮管理需求分析数据项和数据结构如下:(1)日点单信息表:房台编号,房台类型,商品编号,商品名称,数量,单价,金额,点单日期,员工编号,员工名称。
(2)商品基础信息表:商品编号,商品名称,单价,供应商,单价,供应商,联系人,联系电话。
(3)供应商信息表:供应商名称,地址,联系人,联系电话。
2.业务流程图图2.1餐饮管理系统业务流程图3.数据流程图图2.2餐饮管理系统数据流程图4.数据字典(1)数据项数据项名称数据项含义说明数据类型长度房台编号为房间台号设置的一个代号字符型10 房台名称房间的名称字符型10 商品编号为商品(菜)设置的一个代号字符型20(2)数据结构的定义(4)数据存储数据存储名:日点单信息输入数据流:商品基本信息,供应商基本信息输出数据流:顾客点单信息2.1.2概念设计概念模型是对信息世界的建模,所以概念模型应该能够方便、准确的表示出信息世界中的常用概念。
实体------关系模型(Entity-Relationship Module,简称E-R图)是数据库结构设计常用的方法。
得到了数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体以及它们之间的关系,为后面逻辑结构设计打下基础。
这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。
系统E-R图设计1.日点单信息实体E-R图:图2.3日点单信息E-R图2.商品基础信息实体E-R图:图2.4商品基础信息E-R图3.供应商信息实体E-R图:图2.5供应商信息E-R图4.餐饮管理系统信息实体E-R图:图2.6餐饮管理系统信息实体E-R图2.1.3逻辑设计逻辑结构设计的任务就是将概念结构设计阶段设计好的基本E-R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。
本系统逻辑结构设计的任务有:1.初始关系模型设计,即将概念结构向一般的关系模型转化。
日点单信息管理(房台编号,房台类型,商品编号,商品名称,数量,单价,金额,点单日期,员工编号,员工名称)商品基础信息(商品编号,商品名称,单价,供应商,联系人,联系电话)供应商信息(供应商名称,地址,联系人,联系电话)2.规范化处理,从E-R图向数据模型转化的过程中,用模式合并和分解方法达到规范化级别。
根据上面的系统E-R图我们得知日点单信息表和商品基础信息表之间是多对多的关系,而商品基础信息和供应商之间也是多对多的关系。
供应商信息和商品基础信息存在传递依赖,所以可以将供应商信息和基础信息合并为:商品基础信息(商品编号,商品名称,单价,供应商,供应商名称,地址,联系人,联系电话)2.1.4物理设计1.存储结构:存储结构是建立一种由逻辑结构到存储空间的映射。
存储结构是把一组结点存放在按地址相邻的存储单元里,结点间的逻辑关系用存储单元的自然顺序关系来表达的,即用一块存储区域存储线性数据结构,为使用整数编码访问数据结点提供了便利。
存储的路径是C:\Program Files\Microsoft SQL Server\MSSQL\data\餐饮管理系统_Data.MDF。
2.存取方法存取方法是快速存取数据库中数据的技术。
索引法是为了加速对表中的数据行的检索而创建的一种分散的存储结构。
是针对一个表而建立的,它能够以一列或多列的值为关键字,迅速查找/存取表中行数据加快了数据检索。
例如在本数据库日点单信息表(房台编号,房台类型,商品编号,商品名称,数量,单价,金额,点单日期,员工编号,员工名称)里的房台编号是主键,在room_id上创建了一个唯一聚簇性索引,为了加快数据库的检索速度。
在商品基础信息表上创建一个以商品编号为索引项的聚簇索引。
2.1.5 数据库实现1.表(1)日点单信息表:房台编号,房台类型,商品编号,商品名称,数量,单价,金额,点单日期,员工编号,员工名称。
表2.6日点单信息表(2)商品基础信息表:商品编号,商品名称,单价,供应商,联系人,联系电话。
表2.7商品基础信息表(3)供应商信息表:供应商名称,地址,联系人,联系电话。
表2.8供应商信息表2.关系图餐饮管理系统包括员工信息表,日点单信息表,商品基础信息表,房间台号信息表,供应商信息表,房间台号类型表,部门信息表,利用各个表的主键把各个表连接到一起。
利用关系图表现出来。
如图2.7所示:图2.7餐饮管理系统关系图3.存储过程(1)为数据库CYGLXT创建一个查询日点单信息的存储过程。
CREATE PROCEDURE menu_select@troom_id char(10),@troomtyper char(10),@tgoods_id char(20)ASselect *from menuGO(2)为数据库CYGLXT创建一个删除日点单信息的存储过程。
CREATE PROCEDURE menu_delete@roomid char(10)ASdelete from menuwhere room_id=@roomidGO(3)为数据库CYGLXT创建一个添加日点单信息的存储过程。
REATE PROCEDURE menu_insert@room_id char(10),@roomtype char(10),@goods_id char(20),@goodsname char(50),@amount numeric(9),@price money,@jine money,@menudate datetime,@staff_id char(10),@staffname char(12)ASinsert into menu(room_id,roomtype,goods_id,goodsname,amount,price,jine,menudate,staff_id ,staffname)values(@room_id,@roomtype,@goods_id,@goodsname,@amount,@price,@jine,@menudate, @staff_id,@staffname)GO4.触发器CREATE TRIGGER 商品数量_insert ON 日点单表FOR INSERTASDECLARE @NumOf商品数量 TINYINTSELECT @NumOf商品数量= c.商品编号 _num FROM 商品基础信息 c ,inserted i WHERE c. 商品编号 = i. 商品编号IF (@NumOf商品数量 > 0)BEGINUPDATE 商品信息 SET 商品数数_num = 商品数数t_num + 1FROM 商品信息c ,inserted i WHERE c. 商品数 = i. 商品数ENDELSEBEGINUPDATE 商品信息 SET 为序人_num = (SELECT COUNT(s. 商品编号) FROM商品信息 s ,inserted iWHERE s. 商品编号 = i. 商品编号)FROM 商品信息c, inserted i WHERE c. 商品编号 = i. 商品编号ENDGO2.2程序设计2.2.1概要设计本程序实现餐饮服务内部和正常营业业务以及扩展业务的自动化电算管理。