当前位置:文档之家› 企业仓库管理系统数据库设计

企业仓库管理系统数据库设计

山东建筑大学计算机科学与技术学院课程设计说明书题目:企业仓库管理系统设计-提货管理及用户登录模块课程:数据库原理及应用课程设计院(部):计算机学院山东建筑大学计算机科学与技术学院课程设计任务书指导教师(签字):教研室主任(签字):目录1. 系统概述32.需求分析42.1、数据流图:42.2、数据字典62.2.1数据项62.2.2数据结构 (7)2.2.3数据流 (7)2.2.4数据存储72.2.5处理过程83. 数据库概念结构设计93.1、标识仓库管理系统中的实体和属性93.2、确定实体间的联系104. 数据库逻辑结构设计114.1、关系模型114.2、表与视图的设计115.数据库物理设计及实施145.1 创建数据库145.2 创建表146. 功能实现196.1 用户注册登录功能模块196.2 仓库提货功能模块217. 总结23参考文献241. 系统概述本作品完成的是企业仓库管理系统,前期主要是需求分析,包括数据与处理,并对有关企业仓库管理系统的管理员需求进行了综合、归纳和抽象,形成了一个独立于DBMS的概念模型,画出了E—R图,然后本组在数据库中将概念模型转换成了数据模型,建了客户信息表Users,用到了仓库基本信息表Storage,仓库库存信息表Repertory,然后本小组分工实现了用户登录、采购管理、提货管理、入库管理、出库管理。

本人实现的:(企业仓库管理系统设计—提货管理及用户登录模块)1.未注册的客户先进行注册,注册后登录,注册的客户可直接登录系统。

2.当客户提出提货请求时,产生一个提货单3.首先根据数据库客户信息表审核提货单中客户是否存在。

4.若客户存在,则审核货物,查看货物数量是否充足。

5.审核成功后进行货物出库登记,登记的内容有货物号、客户号、货物数量、日期。

在OutS表中插入登记的此条出库记录。

2.需求分析现要开发企业仓库管理系统。

经过可行性分析和初步的需求调查,确定了系统的功能边界,该系统应能完成下面的功能:(1)用户的注册,登录。

(2)货物采购管理(3)仓库入库管理。

(4)仓库提货管理。

(5)仓库出库管理。

2.1、数据流图:图2.1 企业仓库管理系统顶层数据流图图2.2 企业仓库管理系统0层数据流图图2.3 用户登录注册数据流图图2.4 仓库提货管理数据流图2.2、数据字典2.2.1数据项2.2.2数据结构(1)名称:客户含义说明:定义了一个客户有关的信息组成结构:客户号+客户密码(2)名称:货物含义说明:定义了一个货物有关的信息组成结构:货物号+货物名+货物价格+货物型号+货物类别(3)名称:仓库含义说明:定义了一个仓库的有关信息组成结构:仓库号+仓库总容量+仓库剩余容量2.2.3数据流(1)数据流名称:入库单含义:客户入库时需要填写的信息来源:客户去向:审核客户数据流量:50份/天组成:客户号+货物名+货物数量 (2)数据流名称:出库单含义:客户出库时需要填写的信息来源:客户去向:审核客户数据流量:50份/天组成:客户号+货物名+货物数量(3)数据流名称:提货单含义:客户提货时需要填写的信息来源:客户去向:审核客户数据流量:50份/天组成:客户号+货物号+货物数量(4)数据流名称:违规单含义:如果无法提出所需货物,会给出一个反馈来源:系统管理员去向:反馈给客户数据流量:50份/天组成:无法提货原因2.2.4数据存储(1)数据存储名称:管理员信息表含义说明:存放管理员的注册信息组成结构:管理员账号+管理员密码说明:用来存储管理员信息,管理员账号号是管理员的主属性(2)数据存储名称:客户信息表含义说明:存放客户的注册信息组成结构:客户号+客户密码说明:用来存储客户信息,客户号是客户的主属性(3)数据存储名称:货物信息表含义说明:存放货物的注册信息组成结构:货物号+货物名+货物价格说明:货物号为其主属性,货物价格为当前该货物的入库价格(4)数据存储名称:仓库信息表含义说明:存放仓库的相关信息组成结构:仓库号+仓库总容量+仓库剩余容量说明:仓库号为其主码,要求能根据审核仓库的剩余容量查询货物的存放与否。

(5)数据存储名称:出库信息表含义说明:存放货物出库信息组成结构:出库编号+货物号+客户号+货物数量+货物价格+仓库号+出库日期说明:出库编号为其主码(6)数据存储名称:仓库库存信息表含义说明:用来存储当前仓库存储信息组成结构:仓库号+货物号+客户号+货物数量说明:仓库号,货物号,客户号是其主码,货物数量为当前仓库中该客户的该货物的数量。

(7)数据存储名称:提货单信息表含义说明:存放客户提货时所需的提货单组成结构:客户号+货物号+货物量说明:仓库号,货物号,客户号是其主码,货物数量为当前仓库中该客户的该货物的数量。

2.2.5处理过程3. 数据库概念结构设计3.1、标识仓库管理系统中的实体和属性参照数据字典中对数据存储的描述,可初步确定实体和属性为:管理员{管理员账号,管理员密码}货物{货物号,货物名,货物价格,货物型号,货物类别}客户{客户号,客户密码 }供应商{供应商编号,供应商名}仓库{仓库号,仓库的总容量,仓库的剩余容量}入库信息{入库编号,货物号,客户号,货物数量,仓库号,入库日期}出库信息{货物号,客户号,货物数量,出库日期}仓库存信息{仓库号,货物号,客户号,货物数量}提货单信息{货物号,客户号,货物数量}其中有下划线的属性为实体的码。

3.2、确定实体间的联系图3.1 企业仓库管理系统总E-R图图3.2 仓库提货管理E-R图4. 数据库逻辑结构设计4.1、关系模型表4.1 关系模式表将在概念结构阶段得到的基本E-R图转换成关系模型,如下表所示:4.2、表与视图的设计表4.2 Users(客户表)函数依赖有:Uid→Upassword可以看出非主属性Upassword完全函数依赖于Uid,并且此表绝不会存在传递函数依赖和部分函数依赖问题,所以Users属于3NF甚至于更高的级别。

表4.3 Goods(货物表)函数依赖有:Gid→Gname,Gid→Gprice,Gid→Gmodel,Gid→Gsort可以看出非主属性Gname,Gprice,Gmodel,Gsort完全函数依赖于Gid,并且此表绝不会存在传递函数依赖和部分函数依赖问题,所以Users属于3NF甚至于更高的级别。

表4.4 Storage(仓库信息表)函数依赖有:Sid →Sstocks ,Sid →Ssstock可以看出非主属性Sstocks、Ssstock完全函数依赖于Sid,并且Storage表中没有传递函数依赖,即每一个非主属性既不部分依赖于码也不传递依赖于码,所以Storage属于3NF。

表4.5 Lading(提货单信息表)函数依赖有:(Uid,Gid)→Lnumber可以看出非主属性Lnumber完全函数依赖于(Uid,Gid),并且Lading表中没有传递函数依赖,即每一个非主属性既不部分依赖于码也不传递依赖于码,所以Lading属于3NF。

表4.6 OutS(出库信息表)函数依赖有:(Gid,Uid)→ Gnumber,MODIFYDATE非主属性Gnumber,MODIFYDATE完全函数依赖于(Gid,Uid),且不存在传递函数依赖,即属于3NF。

表4.7 Repertory(仓库库存信息表)函数依赖有:(Sid,Gid)→Gnumber可以看出非主属性Gnumber对(Sid,Gid)是完全函数依赖,并且不存在传递依赖,即每一个非主属性既不部分依赖于码也不传递依赖于码,所以Repertory属于3NF。

5.数据库物理设计及实施5.1 创建数据库createdatabase企业仓库系统;5.2 创建表创建Users表:createtable Users(Uidvarchar(20)notnull primarykey, Upassword varchar(20)notnull);创建Goods表:createtable Goods(Gid varchar(20)notnull primarykey, Gname varchar(20)notnull,Gprice int notnull,Gmodel varchar(20)notnull,Gsort varchar(20)notnull);创建Storage表:createtable Storage(Sidvarchar(20)notnull primarykey, Sstocks int notnull,Ssstock int notnull);创建Lading表:createtable Lading(Lid varchar(20)primarykey,Uidvarchar(20),Gid varchar(20),Lnumber int);创建Reterpory表:createtable Reterpory(Sidvarchar(20)notnull,Gid varchar(20)notnull,Gnumber int notnull,primarykey(Sid,Gid),foreignkey(Sid)references Storage(Sid), foreignkey(Gid)references Goods(Gid), );创建OutS表:createtable OutS(Gid varchar(20),Uidvarchar(20),Gnumber int,MODIFYDATE datetime,foreignkey(Gid)references goods(Gid),foreignkey(Uid)references users(Uid));向Users表中插入数据:insertinto Users(Uid,Upassword)values('U1','aaa'); insertinto Users(Uid,Upassword)values('U2','bbb'); insertinto Users(Uid,Upassword)values('U3','ccc'); insertinto Users(Uid,Upassword)values('U4','ddd'); insertinto Users(Uid,Upassword)values('U5','eee'); insertinto Users(Uid,Upassword)values('U6','fff'); insertinto Users(Uid,Upassword)values('U7','ggg'); insertinto Users(Uid,Upassword)values('U8','hhh'); insertinto Users(Uid,Upassword)values('U9','jjj'); insertinto Users(Uid,Upassword)values('U10','kkk'); select*from Users;向Goods表中插入数据:insertinto Goods(Gid,Gname,Gprice,Gmodel,Gsort)values('G1','a',20,'A','一级'); insertinto Goods(Gid,Gname,Gprice,Gmodel,Gsort)values('G2','b',10,'B','二级'); insertinto Goods(Gid,Gname,Gprice,Gmodel,Gsort)values('G3','c',50,'C','一级'); insertinto Goods(Gid,Gname,Gprice,Gmodel,Gsort)values('G4','d',70,'D','三级'); insertinto Goods(Gid,Gname,Gprice,Gmodel,Gsort)values('G5','e',20,'E','二级'); insertinto Goods(Gid,Gname,Gprice,Gmodel,Gsort)values('G6','f',100,'F','一级'); insertinto Goods(Gid,Gname,Gprice,Gmodel,Gsort)values('G7','g',140,'G','三级'); insertinto Goods(Gid,Gname,Gprice,Gmodel,Gsort)values('G8','h',60,'H','一级'); insertinto Goods(Gid,Gname,Gprice,Gmodel,Gsort)values('G9','i',80,'I','二级'); insertinto Goods(Gid,Gname,Gprice,Gmodel,Gsort)values('G10','j',90,'J','一级'); select*from Goods;向Reterpory表中插入数据:insertinto Reterpory values('S1','G1',600);insertinto Reterpory values('S2','G2',800);insertinto Reterpory values('S3','G3',1000);insertinto Reterpory values('S4','G4',900);insertinto Reterpory values('S5','G6',800);insertinto Reterpory values('S6','G7',700);insertinto Reterpory values('S7','G8',600);insertinto Reterpory values('S8','G5',950);insertinto Reterpory values('S9','G10',500);insertinto Reterpory values('S10','G9',1100);select*from Reterpory;6. 功能实现6.1 用户注册登录功能模块1.用户注册时,输出客户号和密码,如果客户号不存在则注册成功,若客户号已存在则用户存在,不能注册。

相关主题