中小企业仓库管理系统数据库设计与编码设计大学本科毕业论文.docx
《中小企业仓库管理系统数据库设计与编码设计大学本科毕业论文.docx》由会员分享,可在线阅读,更多相关《中小企业仓库管理系统数据库设计与编码设计大学本科毕业论文.docx(28页珍藏版)》请在冰点文库上搜索。
中小企业仓库管理系统数据库设计与编码设计大学本科毕业论文
摘要
在市场经济中,仓库管理是企业正常而完善运作的重要环节之一。
这大大减少了工作人员管理的工作量,降低了企业管理的成本,加快了工作效率,并且提高了数据的安全性和准确性。
本系统基于多层架构,C/S模式,从中小型企业的实际情况出发,在了解用户需求的基础上,提出了中小型企业仓库管理系统的基本目标,并且详细阐述了数据库设计与多层中的数据链接层的设计。
主要包括数据库概念模型设计、逻辑结构设计、数据库实施、数据库运营与维护;数据链接层的的设计与实现方法。
关键字:
仓库管理系统,多层架构,数据链接层,数据库设计
Abstract
Underthemarketeconomy,warehousemanagementisoneoftheimportantlinksofenterpriseandimproveoperation.Thisgreatlyreducestheworkloadofstaffmanagement,reducethemanagementcost,speeduptheworkefficiency,andimprovethesafetyandaccuracyofthedata.Thesystemisbasedonmulti-layerarchitecture,C/Smode,startingfromtheactualsituationofsmallandmedium-sizedenterprises,basedontheuserrequirement,putforwardthebasicgoalofthewarehousemanagementsystemofsmallandmedium-sizedenterprises,andexpoundsthedesignofdatalinklayerinthemultilayerdatabasedesignand.Mainlyincludesthedatabaseconceptualmodeldesign,logicstructuredesign,databaseimplementation,databaseoperationmaintenance;andtheimplementationmethodofthedatalinklayerdesign.
Keywords:
WarehouseManagementInformationSystem,multi-layerArchitecture,Datalinklayer,databasedesign
目录
1引言1
1.1课题研究意义1
1.2技术简介1
1.3开发工具选择2
2系统分析4
2.1需求概述4
2.2需求分析4
3系统设计7
3.1系统总体框架设计7
3.2功能模块设计8
3.3数据库设计8
3.3.1数据库设计原则9
3.3.2 概念模型设计9
3.3.3 逻辑结构设计10
3.3.4 存储过程设计14
3.3.5数据库的实施16
3.3.6数据库运行与维护18
4数据链接层设计20
5结束语22
6致谢23
7参考文献24
1引言
1.1课题研究意义
随着经济的发展,科学技术水平的不断提高,人们的生活物质水平也有了显著地变化。
在市场经济中,仓库管理是企业正常而完善运作的重要环节之一,建立一个规范的,高效的,安全可靠的仓库管理系统,是提高企业在市场竞争中的一个有效的方法。
在企业的仓库管理中,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。
这大大减少了企业中的工作人员管理的工作量,降低了企业管理的成本,加快了工作效率,并且最重要的是提高了数据的安全性和准确性,实时性。
通过仓库管理系统软件,可以在最快的时间内,查找所需要查找的相关仓库数据信息,提炼一些相关信息,汇总后,方便企业管理者对这些数据进行分析整合并且做出相应的决策。
数据库技术是现代信息科学与技术的重要组成部分是计算机数据处理与信息管理系统的核心。
数据库技术研究和解决了计算机信息处理过程中大量数据有效地组织和存储的问题在数据库技系统中减少数据存储冗余、实现数据共享、保障数据安全以及高效地检索数据和处理数据。
本文从中小型企业的实际情况出发,在了解用户需求和系统总体需求的基础上,提出了中小型企业仓库管理系统的基本目标,并且详细阐述了系统的数据库总体设计以及各个阶段的设计过程以及结果。
1.2技术简介
在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。
我们设计了单一功能分层架构。
从下至上分别为:
数据链接层、错误检验层、业务逻辑层(又或称为领域层)、用户接口层。
用户接口层负责和用户的交互,包括用户的输入、控件的触发事件和数据的显示;
业务逻辑层负责传送数据,并清晰展示所有调用的函数,方便对功能的控制;
错误检验层负责检查用户输入的合法性;
数据链接层负责对数据库进行增删改查;
几个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。
所谓多层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。
这里所说的多层体系,不是指物理上的多层,不是简单地放置三台机器就是多层体系结构,也不仅仅有B/S应用才是多层体系结构,多层是指逻辑上的多层,即使这几个层放置到一台机器上。
多层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。
通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。
总而言之,使用多层架构,开发人员可以只关注整个结构中的其中某一层,可以很容易的用新的实现来替换原有层次的实现,以降低层与层之间的依赖;有利于标准化,有利于各层逻辑的复用,并且结构更加的明确,在后期维护的时候,极大地降低了维护成本和维护时间。
1.3开发工具选择
本平台选用VisualStudio2010作为开发工具。
VisualStudio2010是微软公司推出的一个软件开发环境,可以支持多种编程语言,用来编写创建Windows平台下的Windows应用程序和网络应用程序、网络服务、智能设备应用程序和Office插件。
利用它的可视化设计器,可以快速地创建页面而无需编写任何代码。
在数据库方面,选用与Microsoft紧密集成的SQLServer2005数据库。
相较于桌面型的小数据库ACCESS数据库而言SQL在功能上比较完善,其安全性、并发控制能力、数据挖掘和联机操作等方面都是ACCESS无法超越的。
不过在创建和配置上,SQLServer数据库都要比ACCESS数据库难。
SQLServer所使用的数据库查询语言是Transact-SQL,它强化了原有的SQL关键字以进行数据的存取,储存及处理等功能,同时扩充了流程控制指定,可以使用户方便的编写功能强大的存储过程。
由于SQLServer将数据存放在服务器端,并预先编译过,所以它的执行速度非常块。
在开发语言方面,选择C#程序开发语言。
C#是.NETwindows网络框架的主要开发语言,与COM(组件对象模型)直接集成。
C#可以通过内置的服务,使组件可以转化为XML网络服务,这样代码就可以被其他程序调用,实现了重复利用的高效开发模式。
更重要的是C#具有自动资源回收功能,不用像使用C++那样分析内存泄露。
2系统分析
2.1需求概述
本系统作为一款中小企业仓库管理系统,主要完成材料出库管理、入库管理、账目管理、供货单位管理、产品耗材管理和一些数据汇总报表功能。
以及日后对这些记录的查询、处理和汇总,并且要导出相应的入库单、出库单、保管明细账单、材料入/出库分类汇总账单等。
仓库管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
2.2需求分析
结合仓库管理系统的实际情况,根据仓库管理系统的需求,分析出主要实现以下几个功能:
A)添加入库信息
1.需要添加的信息包括:
入库单编号、入库日期、供货单位、供货单号、制单人、入库材料类别、入库材料名称、入库材料规格、入库数目、入库金额。
2.可以修改和删除入库信息。
B)管理入库信息
1.可以根据入库单编号、入库日期、供货单位、供货单号中的任意条件组合查询入库单信息。
2.可以更改和删除入库单信息。
C)添加出库信息
1.需要添加的信息包括:
出库单编号、出库日期、领用班组、生产计划号、产品名、经领人、批准人、制单人、出库材料类别、出库材料名称、出库材料规格、出库数目、出库金额。
2.可以更改和删除出库信息。
D)管理出库信息
1.可以根据出库单编号、出库日期、领用班组、生产计划号、产品名中的任意条件组合查询出库单信息。
2.可以更改和删除出库单信息。
E)建账管理
从无到有地将库存的初始数据导入数据库,数据包括材料类别、材料名称、材料规格、材料数目、材料金额。
F)保管明细账管理
汇总在某一时间段内,某种特定规格的材料的出入库和结存情况,反馈的数据包括日期、入库单编号、入库数量、入库单价、入库金额、出库单编号、出库数量、出库单价、出库金额、结存数量、结存单价、结存金额。
G)供货单位供货汇总
汇总在某一时间段内,某一特定的供货单位的供货情况,反馈的数据包括日期、材料类别、材料名称、材料规格、数目、单价、金额。
H)产品耗材汇总
汇总在某一时间段内,某一特定产品消耗材料的情况,反馈的数据包括材料编号、材料类别、材料名称、材料规格、数目、单价、金额。
I)材料入库汇总
1.全部材料入库明细表,汇总在某一时间段内的全部材料入库情况,反馈的数据包括日期、材料类别、材料名称、材料规格、供货单位、数目、单价、金额。
2.材料入库分类汇总表,汇总在某一时间段内,某一特定类别的材料的入库情况,反馈的数据包括日期、材料名称、材料规格、供货单位、数目、单价、金额。
J)材料出库汇总
1.全部材料出库明细表,汇总在某一时间段内的全部材料出库情况,反馈的数据包括日期、生产计划号、产品名、材料类别、材料名称、材料规格、数目、单价、金额。
2.材料出库分类汇总表,汇总在具体某一天的材料出库与产品生产的对应情况,反馈的数据包括材料类别、产品名、对应的出库金额。
3系统设计
3.1系统总体框架设计
随着面向对象技术的发展,层次之间的数据耦合逐渐由原来的较细粒度的据变量逐渐转化为较粗粒度的数据业务对象,即实例化的类对象,这样更加减少了各个层次之间耦合,并且为数据持久化提供对象,更加提高了数据持久化的安全。
因此整体分为多层,分别是:
表现层(PresentationLayer)、业务逻辑层(BusinessLogicLayer)、错误检验层(ErrorCheck)、数据链接层(DataAccessLayer)。
具体关系结构如图3-1多层架构关系图。
通过分层,可以降低系统各部分之间的耦合程度,有利于开发人员的分工,增加系统的可维护性及可扩展性。
图3-1多层架构关系图
3.2功能模块设计
系统中的主要功能模块及其结构关系如图3-2仓库管理系统模块分解图。
图3-2仓库管理系统模块分解图
3.3数据库设计
由于仓库管理过程中涉及到大量的材料以及订单数据信息,因此依托于一个高性能的数据库软件,并设计出一个良好的数据库结构体系显得尤为重要。
本系统采用SQLServer2005商用数据库管理系统实现系统数据库存储和访问,具有标准结构查询语言SQL,支持ODBC。
MSSQLServer2005是MicrosoftWindow数据库产品的领导者,对用户提供标准的查询接口(如SQL)和数据访问接口(如ODBC、JDBC等),并保证系统数据完全性、一致性和完整性等,为数据的共享提供了必要的基础条件。
为了保证数据库的一致性和完整性,往往通过表间关联的方式来尽可能的降低数据的冗余。
表间关联是一种强制性措施,建立后,对父表(ParentTable)和子表(ChildTable)的插入、更新、删除操作均要占用系统的开销。
如果数据冗余低,数据的完整性容易得到保证,但增加了表间连接查询的操作,为了提高系统的响应时间,合理的数据冗余也是必要的。
又由于这种外键关系,许多表的操作也会涉及到另外一些表中的数据的变化,因此又设计了存储过程,保证数据的安全性和一致性。
存储过程在运算时生成执行方式,所以,以后对其再运行时其执行速度很快。
SQLServer2005不仅提供了用户自定义存储过程的功能,而且也提供了许多可作为工具使用的系统存储过程。
使用规则(Rule)和约束(Check)来防止系统操作人员误输入造成数据的错误是设计人员的另一种常用手段,但是,不必要的规则和约束也会占用系统的不必要开销,需要注意的是,约束对数据的有效性验证要比规则快。
所有这些,需要在设计阶段应根据系统操作的类型、频度加以均衡考虑。
3.3.1数据库设计原则
在具体数据库设计过程中,要遵循以下原则:
(1)为了增强数据库程序的可读性和可维护性,按照相应的命名原则规范对数据表、变量、存储过程、视图等进行规范化,并对具体的SQL代码编写规范化。
数据的标准化有助于消除数据库中的数据冗余
(2)在数据表的设计中,满足每个字段必须尽量小,只能包含一个数据项目、必须完全支持主键,而且只支持主键,每条记录必须唯一等。
考虑到哪些数据字段将来可能会发生变更,选择数字类型和文本类型尽量充足。
(3)多使用存储过程实现对数据库的操作,增加访问效率及软件程序修改。
(4)数据的完整性,父表中插入、删除、更新数据时,要级联操作,将所有相关的表项中的数据都进行相关操作,用到存储过程,数据回滚。
(5)采用数据驱动而非硬编码的方式,许多策略变更和维护都会方便得多,大大增强系统的灵活性和扩展性。
3.3.2 概念模型设计
主要采用E-R模型进行设计,本系统的E-R图如图3-3所示。
其中包含四个实体,分别是材料、出库单、入库单、建账;包含三个关系出库、入库、建账。
出库单和材料是多对多的关系,关系出库外键参照材料中的编号和出库单中的编号;入库单和材料是多对多的关系,关系入库外键参照材料中的编号和入库单中的编号;建账和材料是多对一的关系。
图3-3仓库管理系统E—R图
3.3.3 逻辑结构设计
3.3.3.1关系模型
通过将E-R图转换成表,实现从E-R模型到关系模型的转换,转换结果如下,其中材料中的主键为编号,建账中的主键为编号和材料编号,出库单的主键为编号,入库单的主键为编号,出库中的主键为编号、出库单编号、材料编号,入库中的主键为编号、入库单编号、材料编号。
材料(编号,类别,名称,规格,累计数量,累计金额);
建账(编号,材料编号,金额,数量,日期);
出库单(编号,产品名,生产计划号,经领人,批准人,制单人,领用班组,
日期)
入库单(编号,供货单位,供货单号,制单人,日期)
入库(编号,入库单编号,材料编号,数量,金额)
出库(编号,出库单编号,材料编号,数量,金额)
3.3.3.2表结构设计
由关系模式设计数据库中的表包括材料表CL(其表结构如表3-1)、.入库单表RKD(其表结构如表3-2)、入库表RK(其表结构如表3-3)、出库单表CKD(其表结构如表3-4)、出库表CK(其表结构如表3-5)、建账表JZ(其表结构如表3-6)。
表3-1CL材料表
序号
字段名称
字段说明
字段类型
宽度
允
许
空
是
否
主
键
备注
1
CL_bianhao
材料编号
int
否
是
自增1
2
CL_leibie
材料类别
nvarchar
50
否
一级科目
3
CL_mingcheng
材料名称
nvarchar
50
否
二级科目
4
CL_guige
材料规格
nvarchar
50
否
5
CL_leijishumu
材料累计数目
float
否
某种材料的总数目
6
CL_leijijine
材料累计金额
float
否
某种材料的总金额
表3-2RKD入库单表
序号
字段名称
字段说明
字段类型
宽度
允
许
空
是
否
主
键
备注
1
RKD_bianhao
入库单编号
nvarchar
50
否
是
根据年月日加上序号组成。
例如:
201301010003
2
RKD_riqi
入库日期
nvarchar
50
否
入库的日期例:
2013-01-1012:
06:
04
3
RKD_zhidanren
制单人
nvarchar
50
是
4
RKD_gonghuodanwei
供货单位
nvarchar
50
否
5
RKD_gonghuodanhao
供货单号
nvarchar
50
否
表3-3RK入库表
序号
字段名称
字段说明
字段类型
宽度
允
许
空
是
否
主
键
备注
1
RK_bianhao
入库编号
nvarchar
50
否
是
是某入库单中的入库编号自增
2
RK_RKD_bianhao
入库单编号
nvarchar
50
否
是
参照入库单中编号
3
RK_CL_bianhao
入库材料编号
nvarchar
50
否
是
参照材料表中的编号
4
RK_shumu
入库数目
float
否
5
RK_jine
入库金额
float
否
表3-4CKD出库单表
序号
字段名称
字段说明
字段类型
宽度
允
许
空
是
否
主
键
备注
1
CKD_bianhao
出库单编号
nvarchar
50
否
是
根据年月日加上序号组成。
例201301010003
2
CKD_riqi
出库日期
nvarchar
50
否
出库日期例:
2013-01-1012:
06:
04
3
CKD_chanpinming
产品名
nvarchar
50
否
出库后用于制造某产品的名字
4
CKD_shengchanjihuahao
生产计划号
nvarchar
50
否
5
CKD_lingyongbanzu
领用班组
nvarchar
50
否
6
CKD_jinglingren
经领人
nvarchar
50
是
7
CKD_pizhunren
批准人
nvarchar
50
是
8
CKD_zhidanren
制单人
nvarchar
50
是
表3-5CK出库表
序号
字段名称
字段说明
字段类型
宽度
允
许
空
是
否
主
键
备注
1
CK_bianhao
出库编号
nvarchar
50
否
是
是某出库单中的出库编号自增
2
CK_CKD_bianhao
出库单编号
nvarchar
50
否
是
参照出库单中编号
3
CK_CL_bianhao
出库材料编号
nvarchar
50
否
是
参照材料表中的编号
4
CK_shumu
出库数目
float
否
5
CK_jine
出库金额
float
否
表3-6JZ建账表
序号
字段名称
字段说明
字段类型
宽度
允
许
空
是
否
主
键
备注
1
JZ_bianhao
建账编号
nvarchar
50
否
是
根据年月日加上序号组成例201301010003
2
JZ_CL_bianhao
建账材料编号
nvarchar
50
否
是
参照材料表中的编号
3
JZ_riqi
建账日期
nvarchar
50
否
建账的日期例:
2013-01-1012:
06:
04
4
JZ_shumu
建账数目
float
否
5
JZ_jine
建账金额
float
否
3.3.3.3数据库表关系
数据库中的主要表以及表之间的关系如图3-4所示。
图3-4仓库管理系统表关系图
3.3.4 存储过程设计
为了保证数据的一致性和完整性,本系统设置了许多存储过程,使数据库中的数据能更好的体现出实际情况。
包括bgmx、chukuaddItem、deletechuku、deletechukudan、deletejianzhang、deleteruku、deleterukudan、getckdetail、getcldetail、getrkdetail、jianzhangadditem、rukuaddItem、updatechuku、updatechukudan、updatejianzhang、updateruku、updaterukudan。
它们的具体功能描述如表3-7存储过程及其功能。
表3-7存储过程
存储过程名称
输入参数
主要功能
bgmx
@qishiriqi,@jieshuriqi,@leibie,
@mingcheng,@guige
根据开始日期、结束日期、材料类别、名称、规格得到报关明细账单ge______________________________________________________________________________________________________________________________
chukuaddItem
@chukudbh,@chukurq,@lingyongbanzu,@shengchanjihuahao,@chanpinming,@jinglingren,@pizhunren,@zhidanren,@leibie,@mingcheng@guige
根据入库详细信息添加到入库
deletechuku
@chukudbh,@chukubh
根据出库单编号和出库编号删除出库
Deletechukudan
@chukudbh
根据出库单编号删除出库单
Deletejianzhang
@jzbianhao
根据建账编号删除建账
Deleteruku
@rukudbh,@rukubh
根据入库单编号和入库编号删除入库
Deleterukudan
@rukudbh
根据入库单编号删除入库单
Getckdetail
@chukudbh,@chukubh,
根据出库单编号得到出