仓库管理系统.docx

上传人:b****6 文档编号:4989248 上传时间:2022-12-12 格式:DOCX 页数:19 大小:21.98KB
下载 相关 举报
仓库管理系统.docx_第1页
第1页 / 共19页
仓库管理系统.docx_第2页
第2页 / 共19页
仓库管理系统.docx_第3页
第3页 / 共19页
仓库管理系统.docx_第4页
第4页 / 共19页
仓库管理系统.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

仓库管理系统.docx

《仓库管理系统.docx》由会员分享,可在线阅读,更多相关《仓库管理系统.docx(19页珍藏版)》请在冰豆网上搜索。

仓库管理系统.docx

仓库管理系统

 

东方学院

 

实验(实训)报告

 

项目名称仓库系统数据库分析与设计

 

所属课程名称数据库原理及应用

 

项目类型设计、综合型

 

实验(实训)日期2012.11.24—2010.12.16

 

班级09信息1班

 

学号0920400124

 

姓名张佳妮

 

指导教师严素蓉

 

仓库管理系统的数据库设计

 

1、问题背景及描述

 

随着科学技术的发展,社会进步,计算机迅速的发展,仓库管理的方法也日新月异,以前全是由人管理的方法现存在很多的缺点:

管理效率低,劳动强度大,信息处理速度低而且准确率也不够令人满意。

为了提高仓库管理效率,减轻劳动强度提高,信息处理速度和准确性;为仓库管理员提供更方便、科学的服务项目。

为仓库管理员提供的一种更先进、科学的服务系统。

于是我们便选择了由计算机来设计一个仓库管理系统的方案。

让计算机对仓库进行自动管理,仓库管理员可以直接在计算机上实现仓库的信息管理,并能在一定程度上实现自动化。

我们在现行系统初步调查的基础上提出了新系统目标,即新系统建立后所要求达到的运行指标,这是系统开发和评价的依据。

 

2需求分析

 

2.1系统功能分析

 

通过初步分析,“仓库管理系统”应该具备以下主要功能:

⒈仓库各种信息的输入,包括入库,出库,还原,需求信息的输入等。

⒉仓库管理的各种信息查询,修改和维护。

⒊操作日志的管理。

⒋仓库管理系统的使用帮助。

 

2.2数据流程图

 

在仔细调查企业仓库物资设备管理过程的基础上,得到本系统所处理的流程图:

图1(大致数据流程图)

 

图2(整体数据流程图)

 

2.3建立数据字典

 

数据字典是关于数据的信息的集合,也就是对数据流图中包含的元素的定义

的集合。

它的作用是在软件分析和设计过程中提供关于数据的描述信息。

数据字典和数据流图共同构成系统的逻辑模型。

数据字典定义数据的方法就是对数据自顶向下地分解,当分解到不需要进一

步定义,每个和工程有关的人员都清楚其含义的元素时,这种分解过程就结束了。

本仓库管理系统根据划分的模块定义了如下数据字典:

①数据项的定义

数据项编号:

1-01

数据项名称:

商品编号

 

别名:

简述:

某种商品的编号

类型:

字符型

长度:

8字节

取值范围:

数字+英文字母

 

数据项编号:

1-02

数据项名称:

单价

名:

购入单价

述:

某种商品的购入单价

型:

数值型

度:

10位,小数位

2位

取值范围:

0.00-9999

999.99

 

数据项编号:

1-03

数据项名称:

库存数量

别名:

实际库存数量

简述:

某种商品的库存数量

类型:

数值型

长度:

5位整数

取值范围:

0-99999

 

②数据流的定义

数据流名称:

入库单

编号:

F1

简述:

采购人员填写的商品入库凭单

 

数据流来源:

采购人员

数据流去向:

登记库存台账

数据流组成:

日期+入库单编号+商品编号+购入数量

流通量:

25份/天

高峰流通量:

50份/天

 

数据流名称:

发货单

编号:

F2

简述:

供应商填写的商品发货凭单

数据流来源:

供应商

数据流去向:

登记合同台账

数据流组成:

日期+发货单编号+供应商编号+商品编号+发货数量

流通量:

25份/天

高峰流通量:

50份/天

 

数据流名称:

取货单

编号:

F3

简述:

库管员填写的要求车间取货凭单

数据流来源:

库管员

数据流去向:

车间

数据流组成:

日期+车间编号+商品编号+数量

流通量:

25份/天

高峰流通量:

50份/天

 

③数据存储的定义

数据存储的名称:

库存台账

 

数据存储编号:

D1

简述:

记录商品的编号、名称、单价与库存数量等信息

数据存储组成:

商品编号+购入单价+库存数量

关键字:

商品编号

 

数据存储的名称:

合同台账

数据存储编号:

D2

简述:

记录合同的编号、供应商编号、货物编号、单价与购入数

量等信息

数据存储组成:

合同编号+供应商编号+商品编号+单价+购入数量

+日期+合同状态

关键字:

合同编号

 

数据存储的名称:

计划台账

数据存储编号:

D3

简述:

记录计划的编号、车间编号、商品编号、数量等信息

数据存储组成:

计划编号+供应商编号+商品编号+数量+日期+计划状态

 

关键字:

计划编号

 

数据存储的名称:

供应商信息

数据存储编号:

D4

简述:

记录供应商的编号,名称,地址,电话,传真,银行帐号

数据存储组成:

供应商编号+名称+地址+电话+传真+银行帐号

关键字:

供应商编号

 

数据存储的名称:

商品信息

数据存储编号:

D5

简述:

记录库存商品的编号,类别,名称,规格,单价,单位,

存放位置,用途

数据存储组成:

商品编号+名称+类别+规格+单价+单位+

位置+用途

关键字:

商品编号

 

存放

 

数据存储的名称:

车间信息

数据存储编号:

D6

简述:

记录车间的编号,名称,联系人,电话

数据存储组成:

车间编号+名称+联系人+电话

关键字:

车间编号

 

数据存储的名称:

职员信息

数据存储编号:

D7

简述:

记录用户名称、密码和权限

数据存储组成:

用户名+密码+权限

关键字:

用户名

 

④处理逻辑的定义

处理名:

库存检查

编号:

P1

输入:

数据流F5

输出:

数据流F6

 

描述:

当车间将计划单发给库管员后,库管员要将计划单与库存台账进行比较,看是否需要订货。

 

处理名:

验货处理

编号:

P2

输入:

数据流F2,数据流F5

输出:

数据流F1,数据流F4

描述:

采购员要检验货物的质量。

 

处理名:

出入库检查

编号:

P3

输入:

数据流F1

输出:

数据流F3

描述:

当验货处理后,库管员将货物入库,并发取货单到订货单位。

3.概念结构设计

 

这一设计阶段是在需求分析的基础上,设计出能过满足用户需求的各种实现,

以及它们之间的关系,为后面的逻辑结构设计打下基础。

图3(总体系统E-R图)

 

图4(产品实体E-R图)

 

图5(仓库实体E-R图)

 

图6(供应商实体E-R图)

 

图7(顾客实体E-R图)

 

图8(用户实体E-R图)

 

4.逻辑结构设计

 

4.1关系模型

 

供应商表(供应商编号,公司名称,联系人,地址,电话)主玛为供应商编号,符合三范式。

产品表(产品编号,名称,规格,型号,数量,标准价格,货物重量,销售价格)

主玛为产品编号,符合BC式。

顾客表(顾客编号,名称,联系人,地址,电话,手机)主玛为顾客编号,符合三范式。

仓库表(仓库编号,名称,面积,类型,管理员,地址,电话,用户号)主玛为仓库编号,符合三范式。

用户表(用户编号,姓名,职位,权限,用户名,密码)主玛为用户编号,符合三范式。

供应表(产品号,供应商号,货物数量)主玛为货物号,供应商号,符合三范式。

取货表(客户号,产品号,取货数量)主玛为客户号,产品号,符合三范式。

储存表(货物号,仓库号,存储数量)主玛为货物号,仓库号,符合三范式。

 

4.2表的建立

表1(供应商表supply)

列名

含义

长度

类型

NULL

DEFAULT

SID

供应商编号

8

int

no

no

Sname

公司名称

20

Char()

no

no

Scon

联系人

6

Char()

no

no

Sdr

地址

30

Char()

no

no

Stele

电话

15

int

no

no

 

表2(产品表goods)

列名

含义

长度

类型

NULL

DEFAULT

GID

货物编号

8

int

no

no

Gname

名称

20

Char()

no

no

Gsta

规格

8

Char()

no

no

Gtype

型号

8

Char()

no

no

Gqty

数量

8

int

no

no

 

GSP

销售价格

8

int

no

no

GDP

标准价格

8

int

yes

No

 

表3(顾客表custom)

列名

含义

长度

类型

NULL

DEFAULT

CID

顾客编号

8

int

no

no

Cname

名称

8

Char()

no

no

Ccon

联系人

6

Char()

no

no

Cdr

地址

20

Char()

no

no

Ctele

电话

15

int

no

no

Chand

手机

15

int

yes

No

 

表4(用户表users)

列名

含义

长度

类型

NULL

DEFAULT

UID

用户编号

8

int

no

no

Uname

姓名

8

Char()

no

no

Upos

职位

10

Char()

yes

no

Ula

权限

8

Char()

no

no

Usub

用户名

15

Char()

no

no

Ukey

密码

15

int

No

No

 

表5(仓库表warchouse)

列名

含义

长度

类型

NULL

DEFAULT

WID

仓库编号

8

int

no

no

Wname

名称

20

Char()

no

no

Wsq

面积

6

int

yes

no

Wtype

类型

8

Char()

no

no

Wad

管理员

6

Char()

no

no

 

Wdr

地址

20

Char()

no

no

Wtele

电话

15

int

no

no

UID

编号

8

int

no

no

 

表6(供应表accommdate)

列名

含义

长度

类型

NULL

DEFAULT

GID

货物编号

8

int

no

no

SID

供应商编号

8

int

no

no

GS

货物数量

8

int

no

no

 

表7(取货表)

列名

含义

长度

类型

NULL

DEFAULT

WID

仓库编号

8

int

no

no

CID

顾客编号

8

int

no

no

UID

用户编号

8

int

no

no

SU

取货数量

8

int

no

no

 

表8(存储表)

列名

含义

长度

类型

NULL

DEFAULT

GID

货物编号

8

int

no

no

WID

仓库编号

8

int

no

no

CU

存储数量

8

int

no

no

红色字为主码。

 

5物理结构设计

 

5.1数据库及基本表

 

Createtablesupply

SIDintprimarykeynotnull,

 

Snamechar(20)notnull,

Sconchar(6)notnull,

Semailchar(20),

Spintnotnull,

Sdrchar(30),

Steleint,

 

Createtablegoods

GIDintprimarykeynotnull,

Gnamechar(20)notnull,

Gstachar(8)notnull,

Gtypechar(8)notnull,

Gptyintnotnull,

GSPintnotnull,

GDPint,

Gweiintnotnull,

 

Createtablecostom

CIDintprimarykeynotnull,

Ccrechar(6),

Cconchar(6)notnull,

Cdrchar(20)notnull,

Cteleintnotnull,

Chandintnotnull,

CODchar(15),

Ccardintnotnull,

 

Ccomchar(20)notnull,

Cemailchar(20),

 

Createtablewarehouse

WIDintprimarykeynotnull,

Wnamechar(20)notnull,

Wsqint,

Wtypechar(8)notnull,

Wadchar(6)notnull,

Wdrchar(20)notnull,

Wptyint,

Wteleintnotnull,

 

Createtableusers

UIDintprimarykeynotnull,

Unamechar(8)notnull,

Uposchar(10)notnull,

Ulachar(8)notnull,

Usubchar(15)notnull,

Ukeyintnotnull,

 

Createtableaccommodate

GIDintnotnull,

SIDintnotnull,

 

GSintnotnull,

primarykey(GID,SID),

Foreignkey(GID)referencesgoods(GID),

Foreignkey(SID)referencessupply(SID)

 

Createtablewcu

WIDintnotnull,

CIDintnotnull,

UIDintnotnull,

SUintnotnull,

primarykey(WID,CID,UID),

Foreignkey(WID)referenceswarehouse(WID),

Foreignkey(UID)referencesusers(UID),

Foreignkey(CID)referencescostom(CID),

 

 

CreatetableGW

GIDintnotnull,

WIDintnotnull,

CUintnotnull,

primarykey(WID,GID),

Foreignkey(GID)referencesgoods(GID),

Foreignkey(WID)referenceswarehouse(WID),

 

 

5.2索引的建立

createindexsupply_SID_indexonsupply(SID)

createindexgoods_GID_indexongoods(GID)

createindexcostom_CID_indexoncostom(CID)

createindexusers_UID_indexonusers(UID)

createindexwarchouse_WID_indexwarchouseon(WID)

 

5.3视图

Createview出售as

SELECTdbo.GW.GID,dbo.supply.SID,dbo.GW.WID,dbo.GW.CUFROMdbo.accommodateINNERJOIN

dbo.goodsONdbo.accommodate.GID=dbo.goods.GIDINNER

JOIN

dbo.GWONdbo.goods.GID=dbo.GW.GIDINNERJOINdbo.supplyONdbo.accommodate.SID=dbo.supply.SIDINNER

JOIN

dbo.warehouseONdbo.GW.WID=dbo.warehouse.WIDINNER

JOIN

dbo.wcuONdbo.warehouse.WID=dbo.wcu.WIDINNERJOINdbo.usersONdbo.wcu.UID=dbo.users.UIDINNERJOINdbo.costomONdbo.wcu.CID=dbo.costom.CID

 

5.4关系图

 

6数据库运行和维护

数据库设计并试运行后,如试运行结果符合设计目标,数据库就可以真正投

入运行了,同时也标志着开发任务的基本结束和维护工作的开始;

6.1维护工作包括:

(1)数据库的转储与恢复;

(2)数据库安全性和完整性控制;

 

(3)数据库性能的检测与改善;

(4)数据库的重组和重构。

6.2空间管理

1、在数据库运行过程中,对数据库空间使用情况,特别是空间的增长情况进

行监控,并采取相应的措施对空间进行管理非常重要;

2、空间管理主要包括:

创建数据库空间,更改空间大小,删除空间,修改空

间状态,新建、移动、关联数据文件等;

6.3参数调整

1、外部调整:

(1)CPU:

当数据库操作对CPU的要求超过数据库服务器的CPU性能时,数据库性能就受到CPU的限制,使数据库操作变慢;如业务高峰时,CPU的使用量仍然很低,说明服务器CPU资源充足;

(2)网络:

大量的SQL数据在网络上传输会导致网速变慢,调整网络设备,也可以一定程度上提高数据库的性能;

2、调整内存分配

3、调整磁盘I/O

4、调整竞争:

(1)修改参数以控制连接到数据库的最大进程数;

(2)减少调试进程的竞争;

(3)减少多线程服务进程的竞争;

(4)减少重做日志缓冲区竞争;

(5)减少回滚段竞争。

6.4查询优化

1、合理使用索引:

索引是数据库中重要的数据结构,根本目的就是为了提高

查询效率,使用原则如下:

(1)经常在索引中作为条件被使用的列,应为其建立索引;

(2)频繁进行排序或分组(即进行groupby或orderby操作)的列,应为其建立索引;

(3)一个列的值域很大时,应为其建立索引;

 

(4)如果待排列的列有多个,应在这些列上建立复合索引;

(5)可以使用系统工具来检查索引的完整性,必要时进行修复。

2、避免或简化排序:

因为磁盘排序的开销很大,当能够利用索引自动以适当

的次序产生输出时,优化器就可以避免不必要的排序步骤,以下是一些影响因素:

(1)由于现有的索引不足,导致排序时索引中不包括一个或几个等待排序的列;

(2)groupby或orderby子句中列的次序与索引的次序不一样;

(3)排序的列来自不同的表。

为了避免不必要的排序,就要正确地增建索引,合理地合并数据库表。

如排序不可避免,那么应试图简化它。

3、消除对大型表行数据的顺序存取:

在嵌套查询中,对表的顺序存取对查询

效率可能产生致命的影响,解决方法就是对连接的列进行索引。

还可以使用并集

来避免顺序存取。

4、避免相关子查询:

查询嵌套层次越多,效率越低,应尽量避免子查询,如

不可避免,那么要在子查询中过滤尽量多的行;

5、避免困难的正规表达式:

避免含MATCHES和LINK关键字的正规表达式;

6、使用临时表加速查询:

把表的一个子集进行排序并创建临时表,有时能加

速查询;

 

7总结

在这次数据库分析与设计中,我花了很久的时间做需求分析和数据库设计,然后编写程序。

开始时我真的不知道该怎么做,仓库管理系统到底要创建哪些表,表里到底要有哪些数据项,这些都很模糊,于是就找别人的设计作参考,按着设计要求一步一步的设计。

需求分析真的很重要,也不容易,比编程还难。

在需求

设计阶段,把系统的功能勾画出来,分析系统的数据字典、数据流向,画出E-R图,根据E-R图数据库设计关系模型,这样一步步下来,自己对仓库管理系统

有了更多的了解,对后面的程序编程也明朗了。

在数据库设计的时候也花了不少的时间,多次的在数据库关系模型、E-R图和数据字典之间循环修改,重复的修改完整性定义,优化表格。

在定义check完整时发现SQL的check完整性定义失败,翻书发现原来SQL对check的完整性定义还没有强化。

等数据关系模型最终确定了,才开始设计索引和触发子。

之后的编程就简单多了。

在数据库设计期

 

间,我是在设计的过程中就去创建数据库,建表,所以当修改完整性定义和数据

项时显得相当麻烦,因为有主键外键的完整性定义在修改时就不好做了。

最终结

论,我该把数据库设计完后才去创建数据库创建完整性定义等等,还有一点是创

建表时最好也把后面程序功能的需要考虑进来。

在这次数据库程序设计中真的学

到不少。

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

当前位置:首页 > 高等教育 > 军事

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

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