1、仓储管理系统设计说明书数据库仓储管理系统设计说明书学院 计算机与信息学院 专业 电子商务 学号 084831397 姓名 谢序钢 班级 08计商A1 目 录一、需求分析 31目标用户 32主要功能 33.数据流图 34.数据字典 7二概念结构设计 81.确定各实体之间的关系以及约束 82.各实体的属性 83.仓库管理总E-R图 84.仓库管理的CDM设计图 9三逻辑结构设计与物理结构设计 101. 仓库管理的PDM设计图 10四仓储管理数据库实施 10五入库数量与仓位数转化的函数设计 11六存储过程 12七. 触发器 131.实现修改现存货物数量的触发器 132. 不准修改的货主姓名的触发器
2、14附录A: 15实习总结: 详 细 程 序 设 计 书一、需求分析1 目标用户仓库管理人员。2 主要功能仓库入库管理:主要是管理员对进入仓库的货物进行登记,包括货物号、货物名、货物数、货物价格、货主、以及仓库号,以便统一管理。当同一货主的同种货物入库时,要进行货物记录的追加,同时也要记录仓库入库的日志信息。仓库提货管理:当货主提走货物时进行该管理在货物出库时进行登记,登记的内容有编号、货物号、货物数、货物价格、货主、仓库号、日期等。仓库货物查询:可按照货物名称查询 、按照货主查询以及按照仓库查询等。这些查询主要是在用户需要得知货物资料时进行。由于只是进行查询操作,所以数据以只读形式出现。货物
3、信息维护功能:主要对货物的基本资料和信息进行维护。其中包括货物价格的变化、货物种类的变化等。3.数据流图 仓储管理0层数据流图 仓储管理1层数据流图货物入库管理1层数据流图货物出库1层数据流图货物库存1层数据流图仓库管理1层数据流图 各类编码1层数据流图4.数据字典分析数据流图,确定数据流的描述:“货物入库”数据流说明:货物入库的货物信息数据流来源:入库货物信息数据流去向:入库货物名单显示组成:入库货号,货名,时间“货物出库“数据流说明:登记出库货物的各种信息数据流来源:出库货物的货号名称数据流去向:出库货物的名单显示组成:出库货号,货名,时间“仓储货物“数据流说明:登记存储货物信息输入:货物
4、名,号码,数量输出:仓储货物表出库,入库的描述处理过程:货物出库,入库说明:货主按所需提走货物,按所需存储货物输入:货物名称输出:提取货物名,存储货物名称二概念结构设计1确定各实体之间的关系以及约束一个仓库可以存放多种货物,一中货物可以存放在多个仓库中一个仓库可以提取多个货物出库,新来的货物可以存入多个仓库中,一个货主可以拥有多种货物,2.各实体的属性仓库(仓库号,仓库名,负责人号,负责人姓名,仓位数,面积)货物(货物号,货物名,货物数量,仓库号,货物类型,单位,参考价格)货主(货主编号,货主姓名)审核(审核人,审核否,备注信息)联系:入库(入库数量,入库时间,入库编号)存储(货主姓名)3.仓
5、库管理总E-R图4.仓库管理的CDM设计图三逻辑结构设计与物理结构设计1. 仓库管理的PDM设计图四仓储管理数据库实施 在PowerDesigner中点击Createbase,Create Test Date,使其生成测试数据库和测试数据,然后在此基础上修改表表中数据,并在SQL Server 2000测试通过。修改过的源程序详见“源程序”文件夹五入库数量与仓位数转化的函数设计功能要求:将入库的货物按照入库的数量转换成所要占据的仓位数的功能。入口参数:入库数量 单位:吨返回:仓位数 单位:个仓位数的转换算法:仓位数=ceiling(入库数量/仓位数)脚本:AmountConvert.sqlcr
6、eate function AmountConvert(inputamount int ,wamount int)-inputmount:入库数量-wamount :仓位数returns intAsbegin return (ceiling(inputamount/10)endtest.sqlselect Good.Gname,dbo.AmountConvert(Intoamount,Wamount) 仓位数, Input.Intoamountfrom Good ,Input ,Warehouse六存储过程1.随机查看任意号码仓库的仓库信息,使用输入参数,创建一个存储过程源程序:Pro_2.t
7、estuse ccgo create procedure pro_2 wno char(2)as select a.Wno ,a.Gno ,a.Gname,c.Oname,b.Gamount,b.Gstyle,b.Gprice,b.Gunite from Warehouse a,Good b,Owner c where a.Gno=b.Gno and b.Oname=c.Oname and a.Gname=b.Gname and a.Wno=wnotest1.sqlexecute pro_2 AA七. 触发器1.实现修改现存货物数量的触发器实现功能:当货物出库时,在货物表中的剩余货物数量可以自
8、动修改。t.sqlalter table Good add Rest int nullthe_rest.sqlcreate trigger the_rest on Outt for insert,update,deleteasdeclare therest intdeclare Gno char(6),Gname varchar(10)-declare insert_cursor cursor for select Gno ,Gname from inserteddeclare delete_cursor cursor for select Gno ,Gname from deletedbeg
9、inopen delete_cursor fetch next from delete_cursor into Gno,Gnamewhile fetch_status=0 begin set therest=(select Good.Gamount-Outt.Oamount from Good,Outt where Good.Gno=Outt.Gno and Outt.Gno=Gno and Good.Gname=Gname ) update Good set Rest=therest where Gname=Gname and Gno=Gno fetch next from delete_c
10、ursor into Gno,Gnameendclose delete_cursordeallocate delete_cursor/*if update(Oamount)beginopen insert_cursorfetch next from insert_cursor into Gno,Gnamewhile fetch_status=0begin set therest=(select Good.Gamount-Outt.Oamount from Good,Outt where Good.Gno=Outt.Gno and Outt.Gno=Gno and Good.Gname=Gnam
11、e )print str(therest)+delete+mmm+Gno+Gnameupdate Good set Rest =therest where Gno=Gno and Gname=Gnamefetch next from insert_cursor into Gno,Gnameend close insert_cursor deallocate insert_cuosorend */endexecute1.sqlupdate Outtset Oamount =70where Wno=CC and Gno=CC2000 and Gname=钢铁execute2.sqlupdate O
12、uttset Oamount =70where Wno=AA and Gno=AA1000 and Gname=水泥2. 不准修改的货主姓名的触发器T2.sql/*不准修改的货主姓名的触发器*/create trigger 修改货主姓名 on Goodfor update asif update(Oname)beginrollback transactionraiserror(不能修改货主姓名,16,10)endtest2.sqlupdate Good set Oname=王五where Gno=AA1000 and Gname=水泥附录A:设计所用结构表1.Warehouse 仓库说明字段名
13、称数据类型约束备注仓库号Wno Char(2)P货物号GnoChar(6)F货物名GnameVarchar(10)F仓库名WnameVarchar(16)仓位数Wamountint面积WareaNumeric(3,1)负责人编号RnoVarchar(8)负责人姓名RnameVarchar(8)2.Goods货物说明字段名称数据类型约束备注货物号GnoChar(6)P前2位为仓库号,后4位物品编号货物名GnameVarchar(10)P审核人CheckerVarchar(8)F货主姓名OnameVarchar(8)F货物数量GamountInt货物类型GstyleVarchar(20)单位Gun
14、iteChar(1)参考价格Gpriceint3.Owner 货主说明字段名称数据类型约束备注货主编号OwnnoChar(4)P货主姓名OnameVarchar(8)4.Input入库说明字段名称数据类型约束备注入库编号IntonoVarchar(8)仓库号WnoChar(2)P F货物号GnoChar(6)P F 货物名GnameVarchar(10)P F 入库时间IntotimeDatetime入库数量IntoamountInt 5. Out货物出库说明字段名称数据类型约束备注出库编号OnoVarchar(8)仓库号WnoChar(2)P F出库时间OtimeDatetime出库数量Oa
15、mountInt货物号GnoChar(6)P F货物名GnameVarchar(10)P F6.Check审核说明字段名称数据类型约束备注审核人CheckerVarchar(8)P审核否IfcheckChar(2)备注信息InfoVarchar(30)实习总结:本次的设计中,用到了很多的知识点。经历了数据库设计的6个阶段,在每个阶段中都有其不同的任务,个人感觉第一阶段,需求分析是最繁琐的,所谓万事开头难,但只有将需求分析把握住了,后面的任务就简单了。这个数据库设计出来后,还要根据要求的功能编写函数,存储过程,触发器,在这部分是有点难度的,但通过仔细的读研书本后,本人编写了一个函数用来解决入库数量与仓位数转化,编写了一个存储过程用来查询仓库表中任意指定的仓库所有的信息,编写了2个触发器,本别用来解决实现修改现存货物数量和限制修改的货主姓名权限。 通过这几天的实习,我深刻的感受到数据库设计的不易与艰辛,它需要不断的调试与编写,才能成功。此次的实习,也为我今后的学习以及工作埋下了铺垫。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2