《仓库管理系统设计案例.pdf》由会员分享,可在线阅读,更多相关《仓库管理系统设计案例.pdf(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 北京航空航天大学 机械工程及自动化学院 仓库管理系统数据库设计 数据库原理及应用大作业 班级:学号:姓名:2013-12-27 目录 摘要 随着计算机技术的发展,计算机管理已越来越多地运用到了各个领域。在现代企业的各个环节已离不开计算机了。各种各样的管理软件也应运而生。企业的库存物资管理往往是很复杂、很繁琐的。由于所掌握的物料种类众多,订货、管理、发放的渠道各有差异,各个企业之间的管理体制不尽相同,各类统计报表繁多,如果依旧采取人工管理,手工录入,不但耗费人力,浪费资源,而且效率低下,直接影响企业的生产活动,阻碍的企业发展进程。因此仓库管理必须编制一套仓库管理信息系统,实现计算机化操作,不但
2、提高效率,而且能保证管理的安全性。基于这一问题,开发了仓库管理系统。本文通过作者设计和开发了一个普通企业仓库管理系统的实践,阐述了仓库管理系统所应具有的基本功能和实现。关键字 仓库管理;数据流;关系模式;引言 随着社会生产力的快速发展,企业规模的扩大,竞争的日益激烈化,企业要想在这样的背景下谋求发展壮大,就必须找到一个快速,高效,低成本的生产模式,在竞争中占据上游。仓库管理作为每个企业,工厂的基础组成部分,必须首先对其采取措施,提高管理效率,打好坚实的基础。如今,计算机技术发展迅速,并以其快速,高效,精准的优点逐渐深入到各 个领域。企业仓库的零件数量,种类都极其繁杂,如果人工管理,不仅效率低下
3、,而且容易出错,带来损失。所以,引进计算机技术对企业仓库进行管理十分必要。因此,需要对仓库管理进行总体需求分析,实际考察,采用数据库技术开发生成一套适应现代化高效率生产模式的仓库数据库管理系统。这样能极大的方便管理员对仓库实施管理,减少人力投入,降低成本,提高效率,优化仓库管理环境,实现绿色生产。本文以仓库管理系统的开发过程为背景,全文分为目录、需求分析、概要设计、逻辑设计、物理设计、以及系统的实现等过程。设计过程清晰,过程详细,系统可读性好,易于维护,更新,安全性好。1需求分析 引言 仓库管理主要用来管理客户、供应商、仓库及货物,其中的商品进货、销售和库存管理复杂繁琐,需要耗费大量的时间和人
4、力对这些数据进行统计和分析,这是一项相当大的工程。尤其在当商品种类繁多的情况下,传统的人工管理方式存在基本资料保存与维护困难,管理者需要加强成本管理和收入管理,通过提高服务水平来提升企业形象。他们对仓库管理程序进行了详细的分析和策划,提出了利用计算机管理信息系统对仓库进行管理,从而进行仓库管理系统的开发,以适应今天高速运转的全球经济化的竞争。进行系统设计,首先要对系统的现状进行分析。根据系统的目标、需求和功能,制定和选择一个较好的系统方案,从而达到一个合理的优化系统。需求分析是在于要弄清用户对开发的数据库应用系统的确切要求。数据库设计的第一步是明确数据库的目的和如何使用,也就是说需要从数据库中
5、得到哪些信息。明确目的之后,就可以确定您需要保存哪些主题的信息(表),以及每个主题需要保存哪些信息(表中字段)。在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。这样,就把一个大的系统分解成了几个小系统。这里把系统的层次划分为了五个部分:物品发放、物品出库、货物管理、信息查询、人员管理。能够实现以下功能:1 进行货物入、出库、现有货物信息修改以及删除;能够实现对货物基本信息的查询和编辑管理;能够对入、出库信息进行查询;能够进行货物客户,供应商的查询功能;需求分析阶段的目标与任务 处理对象 仓库信息:仓库编号、仓库名称;供应商信息:供应商编号、供应商名称;入库信
6、息:货物编号、供应商编号、仓库编号、入库编号、入库价格、入库数 量、入库日期;出库信息:货物编号、客户编号、仓库编号、出库编号、出货价格、出货数量、出货日期;客户信息:客户编号、客户名称;货物信息:货物编号、货物名称、货物数量、货物类别、备注;管理员信息:管理员编号,姓名,性别,权限,登录口令,住址,电话 处理功能及要求 1.能够存储一定数量的货物信息,并方便有效的进行货物数据的操作和管理,这主要包括:1)货物信息的录入、删除和修改;2)货物信息的多关键字检索查询;3)货物的出库,入库信息的存储和查询;2.能够对货物供应商、客户、管理员等信息进行修改,查询,这其中包括:1)对供应商、客户的基本
7、信息进行登记、删除和修改;2)管理员信息的增加、删除及修改;3.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。4对查询、统计的结果能够列表显示。安全性和完整性要求 1)安全性要求 系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。2)完整性要求 系统完整性要求系统中数据的正确性以及相容性。可通过建
8、立主、外键,使用 check 约束,或者通过使用触发器和级联更新。需求分析阶段性成果 体会与收获 系统需求分析主要是通过图书馆及上网搜索有关仓库管理系统的知识,了解到了仓库管理的现状,以及在管理中的一些问题。由于是第一次做这样的需求调查,开始总是觉得无从下手,不知道自己该了解、该清楚那些方面的知识,在绘制系统业务流程图时,也遇到了很多的问题,但通过老师的帮助与指导,和自己一遍一遍的分析和完善,才逐步把业务弄清楚,最终顺利完成了需求分析阶段的 任务。仓库管理系统业务流程图 从客户及供应商角度考虑的业务流程图:仓库管理系统数据流程图(1)分析设计顶层数据流图 由于在搜寻指定货物时会因货物量大而加重
9、任务量,在对一些货物及人员就行更新时也会因为复杂而手忙脚乱。这样在交易活动中不断地产生新数据,使得信息量逐渐加大。但使用本系统可以很方便的对所需信息进行查询,也可适时的利用插入功能对相关数据进行更新,这样及时、便捷、高效的得到查询统计结果。因此,设计顶层数据流图如图所示:(3)逐步细化数据流图 根据列出的的仓库管理的主要功能,将仓库管理加工细化分解为仓库管理、供应商管理、入库管理、出库管理、客户管理和货物管理等子加工。在图所示的顶层数据流图的基础之上,进行分解细化,得到如下所示仓库管理的各数据流图:供应商检验入库登记入库信息表入库单入库通知有效入库单货物仓库货物信息表更新供应商信息表入库信息表
10、图 2.3 入库数据流图更新 仓库管理系统数据字典(a)数据项:系统涉及的数据项有 29 项 表 2-1 数据项列表 数据项编号 数据项名 数据项含义 与其它数据项关系 存储结构 别名 DI-1 DI-2 GoodsID GoodsName 货物编号 货物名称 同DI-20 char(10)条码 DI-3 DI-4 DI-5 DI-6 DI-7 DI-8 DI-9 DI-10 DI-11 DI-12 DI-13 DI-1GoodsType GoodsQty GoodsPrize ClientID ClientName SupplierID SupplierName StorageID Stor
11、ageName CliManID InstorGoodsQty InstoreDate InstoreSuplierID 货物类型 货物数量 货物价格 客户编号 客户姓名 供应商编号 供应商姓名 仓库编号 仓库名称 客户管理员编号 入库货物数量 入库日期 货物供应商编号 同DI-8 同DI-20 同DI-20 char(20)char(20)int float char(10)char(20)char(10)char(10)char(10)char(1货名 4 DI-15 DI-16 DI-17 DI-18 DI-19 DI-20 DI-21 DI-22 DI-2SupManID Outsto
12、rGoodsQty OutstoreDate ManagerID ManagerName ManagerSex ManagerAuth Managerpwd ManagerTel ManagerAddre StorageAddre GoodsStorID 供应商管理员编号 出库货物数量 出库日期 管理员编号 管理员姓名 管理员性别 管理员权限 管理员密码 管理员电话 管理员地址 仓库地址 货物仓库编号 仓库管理员0)char(10)int date char(10)char(10)int date char(10)char(20)char(2)3 DI-24 DI-25 DI-26 DI-27
13、 DI-28 StoManID 编号 char(4)char(10)char(15)char(30)char(30)char(10)char(10)(b)数据结构 表 2-2 数据结构列表 数 据 结构编号 数据结构名 数 据 结构含义 组成 DS-1 Goods 货 物 信息 GoodsID、GoodsName、GoodsType、GoodsQty、GoodsPrize、GoodsStorID、GoodsStorID DS-2 Storages 仓 库 信息 StorageID、StorageName、StorageAddre DS-3 Clients 客 户 信息 ClientID、Cli
14、entName DS-4 Suppliers 供 应 商信息 SupplierID、SupplierName 数 据 结构编号 数据结构名 数 据 结构含义 组成 DS-5 Instores 入 库 信InstoreGoodsID、InstorGoodsQty、InstoreDate、息 InstoreSuplierID、InstorStorID DS-6 Outstores 出 库 信息 OutstorGoodsID、OutstorGoodsQty、OutstoreDate、OutstoreClient DS-7 Managers 管 理 员信息 ManagerID、ManagerName、
15、ManagerSex、ManagerAuth、Managerpwd、ManagerTel、ManagerAddre 处理逻辑描述 表 处理逻辑列表 处理编号 处理功能 处理过程 PR-1 判断查询涉及的功能模块 仓库信息模块,货物信息模块,管理员信息模块,客户信息模块,供应商信息模块,入库信息模块,出库信息模块:先确定查询所涉及的信息模块,然后根据查询内容,确定查询数据流向,最后显示查询结果 PR-2 判断信息修改所涉及的模块,同时把修改的信息传到相应的模块之中 仓库信息模块,货物信息模块,管理员信息模块,客户信息模块,供应商信息模块:先确定所涉及的功能模块,然后,把更新的信息传到相应的模块中
16、,最后进行相应的更新操作 3.概念设计阶段 引言 系统开发的总体目标是实现仓库管理的系统化和自动化,缩短入库,出库的等待时间,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高仓库管理效率的目的。主要任务是对客户信息,供应商信息、管理员信息、货物信息、仓库信息、入库信息、出库信息的基本信息的操作及外理。概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键。任务与目标(1)选择中层数据流为切入点,通常选择实际系统中的子系统;(2)设计分 E-R 图,即各子模块的 E-R 图;(3)生成初步 E
17、-R 图,通过合并方法,做到各子系统实体、属性、联系统一;(4)生成全局 E-R 图,通过消除冲突等方面。在本仓库管理系统中,从细化层数据流程图下手。分析各数据流图和数据字典,知道整个系统功能围绕“客户”、“供应商”,“管理员”和“货物”、“仓库”的处理。根据实体与属性间的两条准则:1 作为“属性”,不能再具有需要描述的性质。2“属性”不能与其他实体具有联系。数据流程图、图、图可综合成借阅子系统的分 E-R 图,数据流程图可抽象为分 E-R 图,数据流程图可抽象为分 E-R 图,数据流程图可抽象为分 E-R 图。然后采用逐步集成的方式将各分 E-R 图合并,消除不必要的冗余和冲突后就生成了基本
18、 E-R 图。阶段结果(1)根据不同的对象,从第 3 层数据流程图入手,分别画出各分 ER 图:(a)根据各数据流图抽象出各分 E-R 图:(b)合并各分图,消除属性冲突、命名冲突、结构冲突等三类冲突,得到 初步 E-R 图,再消除不必要冗余,得到的基本 E-R 图如下所示:(3)各 E-R 图实体属性如下:仓库:Storages(StorageID、StorageName、StorageAddre、StoManID);货物:Goods(GoodsID、GoodsName、GoodsType、GoodsQty、GoodsPrize、GoodsStorID);供应商:Suppliers(Supp
19、lierID、SupplierName、SupManID);客户:Clients(ClientID、ClientName、CLiManID);管理员:Managers(ManagerID、ManagerName、ManagerSex、ManagerAuth、Managerpwd、ManagerTel、ManagerAddre);各 E-R 图中联系属性如下:入库信息:Instore(GoodsID、SuplierID、InstorGoodsQty、InstoreDate、InstorStorID);出库信息:Outstore(GoodsID、OutstorGoodsQty、OutstoreDa
20、te、ClientID);4.逻辑设计阶段 逻辑设计的任务与目标 以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与 选用的 DBMS 产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本 E-R 图转换为选用 DBMS 产品所支持的数据模型相符合的逻辑结构。具体内容包括数据组织(将 E-R 图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。数据组织 将 E-R 图转换为关系模型 实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况:一个 m:n 联系转换为一个关
21、系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。一个 1:n 联系可以转换为一个独立的关系模式,也可以与 n 端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为 n 端实体的码。一个 1:1 联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合 具有相同码的关系模式可合并。由于从仓库与货物的联系方式是
22、1:n(一对多),可以将其之间的联系与 n端实体货物合并,管理员与供应商、客户、货物之间的维护联系也是 1:n(一对多),同样也将其之间的联系与 n 端实体合并,而供应商与货物、客户与货物之间的入库和出库联系则是 n:m(多对多),这样要把它们之间的联系转化为独立的关系模式,具体的基本 E-R 图向关系模型的转化如下:仓库:Storages(StorageID、StorageName、StorageAddre、StoManID);货物:Goods(GoodsID、GoodsName、GoodsType、GoodsQty、GoodsPrize、GoodsStorID);供应商:Suppliers
23、(SupplierID、SupplierName、SupManID);客户:Clients(ClientID、ClientName、CLiManID);管理员:Managers(ManagerID、ManagerName、ManagerSex、ManagerAuth、Managerpwd、ManagerTel、ManagerAddre);入库信息:Instore(GoodsID、SupplierID、InstorGoodsQty、InstoreDate、InstorStorID,MID);出库信息:Outstore(GoodsID、OutstorGoodsQty、OutstoreDate、Cl
24、ientID、MID);(注:标有直线下划线的为主属性,标有波浪线下划线的是外键属性,主属性与外键属性一起构成主码)确定实体间关系后,并根据上面所述的数据流图,使用 PowerDesigner 设计 CDM如图 4-1 所示 图 4-1 仓库数据库 CDM 图 将上述 CDM 转化为 PDM:图 4-2 仓库数据库 PDM 图 数据库模式定义 表 4-1 仓库信息表 列名 数据类型 可否为空 说明 StorageID StorageName StorageAddre StoManID Char Char Char Char Not null Not null Not null Not null
25、 仓库编号 仓库名称 仓库地址 仓库管理员编号 表 4-2 货物信息表 列名 数据类型 可否为空 说明 GoodsID GoodsName GoodsType GoodsQty GoodsPrize GoodsStorID Char Char Char int float Char Not null Not null Not null Not null Not null 货物编号 货物名称 货物类型 货物数量 货物价格 存放仓库编号 表 4-3 供应商信息表 列名 数据类型 可否为空 说明 SupplierID SupplierName SupManID Char Char Char Not
26、null Not null Not null 供应商编号 供应商姓名 管理员编号 表 4-4 客户信息表 列名 数据类型 可否为空 说明 ClientID ClientName CLiManID Char Char Char Not null Not null Not null 客户编号 客户姓名 管理员编号 表 4-5 管理员信息表 列名 数据类型 可否为空 说明 ManagerID ManagerName ManagerSex ManagerAuth Managerpwd ManagerTel ManagerAddre Char Char Char Char Char Char Char
27、Not null Not null Not null Not null Not null Not null 管理员编号 管理员姓名 管理员性别 管理员权限 管理员密码 管理员电话 管理员住址 表 4-5 入库信息表 列名 数据类型 可否为空 说明 GoodsID SuplierID InstorGoodsQty InstoreDate StorageID ManagerID Char Char Char Date Char Char Not null Not null Not null Not null Not null 入库货物编号 供应商编号 入库货物数量 入库时间 入库仓库编号 管理员编
28、号 表 4-6 出库信息表 列名 数据类型 可否为空 说明 GoodsID OutstorGoodsQty OutstoreDate Char int date Not null Not null Not null 出库货物编号 出库货物数量 出库时间 ClientID ManagerID Char Char Not null 客户编号 管理员编号 用户子模式的定义 表 4-7 用户子模式定义 编号 用户子模式(view)作用 V-1 V-2 V-3 GoodsView InStoreView OutStoreView 便于查询货物的基本信息 便于查询入库信息 便于查询出库信息 表 4-8 货
29、物基本信息视图 列名 数据类型 可否为空 说明 GoodsID GoodsName GoodsQty Char Char int Not null Not null Not null 货物编号 货物名称 货物数量 GoodsPrize GoodsStorID float Char Not null Not null 货物价格 存放仓库编号 表 4-9 入库基本信息视图 列名 数据类型 可否为空 说明 GoodsID SuplierID InstorGoodsQty InstoreDate StorageID Char Char Char Date Char Not null Not null
30、Not null Not null 入库货物编号 供应商编号 入库货物数量 入库时间 入库仓库编号 表 4-10 出库基本信息视图 列名 数据类型 可否为空 说明 GoodsID OutstorGoodsQty Char int Not null Not null 出库货物编号 出库货物数量 OutstoreDate ClientID date Char Not null 出库时间 客户编号 数据处理 系统功能模块图:5.物理设计阶段 物理设计阶段的目标与任务 数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:(1)确定数据库的物理结构,在关
31、系数据库中主要是存取方法和存储结构;(2)对物理结构进行评价,评价的重点是时间和空间效率。数据存储方面 为数据库中各基本表建立的索引如下:1.由于基本表 Goods 的主码 GoodsID 经常在查询条件和连接操作的连接条件中出现,且它的值唯一,在这个属性上建立唯一性索引;2.由于基本表 Goods 的属性 GoodsName 经常在查询条件中出现在此属性上建立聚簇索引;系统功能模块 货物基本信息的查询与更新模块 将实现对货物基本信息的查询和更新(修改、添加、删除)操作,用于货物登 记 入 库、货 物 查 询 或 更 改 信 息 的 情 况,具 体 的 功 能 模 块 图 如 下:管理员发出查
32、询或更新的命令查询?更新?查询货物信息表更新货物信息表查询的结果是否继续?是否成功?提示信息更新后的货物信息表结束查询更新YNYN图5-1 货物信息查询、更新功能模块图 货物出入库信息更新模块 6.数据库实施阶段 建立数据库、数据表、视图、索引 建立数据库 create database Store;建立数据表(1)创建仓库信息表 Create table Storage(StorageID char(10)primary key,StorageName char(20)not null,StorageAddre char(30)not null,StoManID char(10)not nu
33、ll )(2)创建货物信息表 Create table Goods(GoodsID char(10)primary key,GoodsName cahr(20)not null,GoodsType char(20)not null,GoodsQty int not null,GoodsPrize float not null,GoodsStorID cahr(20)not null (3)创建供应商信息表 Create table Suppliers(SupplierID char(10)primary key,SupplierName char(20)not null,SupManID ch
34、ar(10)not null )(4)创建客户信息表 Create table Clients(ClientID char(10)primary key,ClientName char(20)not null,CliManID char(10)not null,)(5)创建管理员信息表 Create table Managers(ManagerID char(10)primary key,ManagerName char(20)not null,ManagerSex char(2)not null,ManagerAuth char(4)not null,Managerpwd char(10)n
35、ot null,ManagerTel char(15)not null,ManagerAddre char(30)(6)创建入库信息表 Create table InStore(GoodsID char(10),SupplierID cahr(10),InstorGoodsQty int not null,InstoreDate Datetime not null,StorageID char(10),ManagerID char(10)not null,Primary key(GoodsID,SupplierID),Foreign key(ManagerID)references Manag
36、ers(ManagerID),Foreign key(StorageID)references Storages(StorageID),)(7)创建出库信息表 Create table OutStore(GoodsID char(10),ClientID char(10),OutstorGoodsQty int not null,OutstorDate Datetime not null,ManagerID char(10)not null,Primary key(GoodsID,ClientID),Foreign key(ManagerID)references Managers(Manag
37、erID),)建立视图(1)建立货物基本信息视图 Create view GoodsView as select GoodsID,GoodsName,GoodsQty,GoodsPrize,GoodsStorID from Goods;(2)建立入库基本信息视图 Create view InstoreView as select GoodsID,SupplierID,InstorGoodsQty,InstoreDate,StorageID from Instore;(3)建立出库基本信息视图 Create view OutstoreView as select GoodsID,OutstorG
38、oodsQty,OutstoreDate,ClientID form Outstore;建立索引 Create index GoodsID on Goods(GoodsID);Create clustered index GoodsName on Goods(GoodsName);7.心得体会 1.这次课程设计使我熟悉了系统设计的整体步骤。系统设计大体可分为需求分析、概念设计、逻辑设计、物理设计、数据库的实施及调试测试六大步骤。其中,让我感触最深的是需求分析阶段,在这个阶段,必须对所要设计的系统有总体的构思和了解,知道自己要做什么,要实现什么,并且要实际的进行相关的调查,不能凭想象或自己的了解
39、,这样会在后续的工作中遇到很多的问题。2.这次课程设计加深了我对数据库系统概论相关知识和 MYSQL、VISIO、POWERDESIGNER 相关功能的理解。例如对建立基本表、视图、索引等,都比以前更加的熟练。并在解决遇到的各种问题的过程中,学到了很多新的知识。比如在导入导出数据时,由于外键约束的存在,经常会出现错误,这就要注意各个表导入的顺序问题。一般是先导入主键表,后导入外键表,这样可以避免很多的错误。3.我进一步掌握了相关的 SQL 语句方面的知识。不但纠正了以前的错误认识和理 解,而且学会了建立存储过程和触发器。通过查阅资料,我还明白了存储过程是编译后放在服务器端的程序,它可以被别的模块调用,且不需要重新编译,这样就大大减轻了客户端的负担,且有效的提高了系统执行的效率。4.当然,在设计的过程中也存在一些问题。由于需求分析阶段的工作完成的不是很充分,在后面的设计过程中,前后时常会出现矛盾,不一致现象,因此要反复的修改前面的结果,导致整个工作进行的不是很顺利。