当前位置:首页 » 操作系统 » 仓库数据库设计

仓库数据库设计

发布时间: 2023-06-14 06:15:30

A. 求数据库课程设计----仓库管理系统

开发背景及意义
在市场竞争的微利时代,建立科学、规范、高效管理制度成为了企业管理的当务之急。一个企业在市场中是否具有强有力的竞争力,除了要看企业的人才、资金、技术、产品之外,更重要的一项,就是要看企业是否有一个良好的管理体制。在企业管理中,仓库管理更是管理中的重中之重。通过对企业仓库信息的管理与统计,为企业积累真实、有效的数据,通过对这些数据的分析与研究,对企业各方面做出相应的调整,以提高企业的管理效率,使企业走上良性发展道路。

系统目标
通过对企业仓库管理过程的分析与研究,要求仓库管理系统实现如下目标:

l 实现商品的入库、入库退货管理。

l 实现商品的库存盘点管理。

l 实现商品的库存调拨、出库管理。

l 实现商品的库存上、下限管理。

l 实现入库、入库退货、商品出库等查询管理。

系统规划
1.系统目标
利用计算机系统实现企业商品的库存管理。

2.系统处理范围
l 基础信息管理。

l 入库管理。

l 库存管理。

l 查询管理。

3.系统功能
l 基础信息管理。

在基础信息管理中需要实现操作员、商品、仓库、供应商的信息管理,包括信息的添加、修改、删除、浏览。

l 入库管理

在入库管理中需要实现商品的入库、入库退货管理,记录入库、入库退货信息。

l 库存管理。

在库存管理中需要实现库存商品打印、库存盘点、库存调拨、商品出库、库存上下限管理。

l 查询管理。

在查询管理中需要实现入库查询、入库退货查询、报损、报益查询、库存调拨查询、商品出库查询。

数据库逻辑结构设计
仓库管理系统共使用了11张数据表,分别为操作员信息表(tb_operator)、供应商信息表(tb_providerinfo)、库存盘点明细表(tb_check_sub)、库存盘点主表(tb_check_main)、库存信息表(tb_storageinfo)、入库明细表(tb_instock_sub)、入库退货明细表(tb_cancelinstock_sub)、入库退货主表(tb_cancelinstock_main)、商品库存表(tb_merchandisestorage)、商品入库主表(tb_instore_main)、商品信息表(tb_merchandiseinfo)

具体的这里也写不了
而且这些不是只要数据库就完成的吧
得用前台设计语言比如c++什么的吧
而设计体会和致谢这些不该自己写吗~~~

B. 仓库管理系统 数据库课程设计

发了一个,看看行不行

C. 课程设计仓库管理系统的数据库制作

数据库原理及应用课程设计
一、课程设计的目的
《数据库原理及应用》课程设计是计算机科学与技术专业集中实践性环节之一,是学习完《数据库原理及应用》课程后进行的一次全面的综合练习。本课程设计主要在于加深学生对数据库基础理论和基本知识的理解,掌握数据库应用系统设计开发的基本方法,达到进一步使学生综合运用所学知识和增强实际动手能力的目的。

二、课程设计的任务与要求
要求学生根据自身对题目的理解情况,从给定的设计题目中选择一个,以MS sql Server作为后台数据库平台,以PowerBuilder作为前台开发工具,完成一个小型数据库应用系统的系统的分析、设计和开发。

三、课程设计说明书
仓储管理系统
对于一个以生产或经营产品为主要业务的单位来说,仓库管理系统至关重要。高效方便的仓库管理系统,可以为生产经营提供坚强的后盾和有力的支持。效率低下甚至是混乱不堪的仓库管理系统,无疑会成为企业健康发展的拖累甚至是枷锁。使企业发展动力不足。本次数据库设计实现了仓库管理的高效化、电子化。通过本系统可以方便地实现仓库管理中的货物登记、出库入库等操作,使仓库管理井井有条。
1系统需求分析
1.1系统功能需求分析

仓库管理系统主要实现对库存商品的管理,对商品出库、入库的管理,和对仓库管理系统维护的功能。具体要实现的功能包括:
1)库存商品管理
查看数据库中商品的名称、编号、单价等信息。
2)商品出库、入库管理
入库、出库单纪录本次入库、出库的货物名称、数量,入库、出库的时间、商品单价以及总价,入库、出库的经手人等。
3)商品的查询
输入商品的编号或者商品的名称查询信息
4)用户管理
用户可以修改登录密码

1. 2数据需求分析
1.员工(ID ,姓名,密码,权限)
2.商品(商品名,商品编号,所属类,单价)
3.出货表(商品名,商品编号,数量,总价,经手人)
4.入货表(商品名,商品编号,数量,总价,经手人)
5.查询(商品名,商品编号,数量,单价)
根据上面的关系我们需要的数据基本上就上面所列出的数据。

2 系统总体设计
1)库存商品管理
查看数据库中商品的名称、编号、单价等信息。
2)商品出库、入库管理
入库、出库单纪录本次入库、出库的货物名称、数量,入库、出库的时间、商品单价以及总价,入库、出库的经手人等。
3)商品的查询
输入商品的编号或者商品的名称查询信息
4)用户管理
用户可以修改登录密码

2.1系统总体结构设计

2.2.1 E-R图

2.2.2 关系模式

1.员工(ID ,姓名,密码,权限)
2.商品(商品名,商品编号,所属类,单价)
3.出货表(商品名,商品编号,数量,总价,经手人)
4.入货表(商品名,商品编号,数量,总价,经手人)
5.查询(商品名,商品编号,数量,单价)

2.2.3 数据表

“员工信息表”“商品信息表”“出货单”“进货单”的主键分别是:ID、商品编号、商品编号、商品编号。

员工信息表

商品信息表

出货单

进货单

3.系统实施

工作界面PB9.0,以下是我制作过程和运行中的一些截图:
首先建立PB与SQL的数据链接:如果链接不成功,返回对以话框“数据库连接错误,经检查后再试!”

然后点Preview选项会弹出如下窗口:

一、 工作界面截图:

分别建有:workspace、application、windows、dw_、da_等。

工作时检测连接数据库是否正常的程序代码:
// Profile q
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=仓库;UID=;PWD='"

connect;
open(w_enter)

二、 运行结果的截图:
这个是我运行后的第一个用户界面,在界面中输入管理员ID和密码。我的管理员ID 和密码分别为 1,123.点击确定进入menu下一界面。

若ID和密码分别输入1,1234,则跳出以下界面:

确定按钮所对应的代码如下:
//定义两个变量
string password,userid
password=sle_2.text
//检索用户名和密码记录
SELECT "员工信息表". "ID",
"员工信息表"."密码"
INTO :userid,
:password
FROM "员工信息表"
WHERE "员工信息表"."ID" =:sle_1.text and "员工信息表"."密码" =:sle_2.text;

//判断用户输入的用户名是否正确
if sqlca.sqlcode<>0 then
messagebox("错误!","ID或密码错误,请重新输入!",exclamation!,ok!,2)
else
messagebox("通过验证!","ID和密码正确,欢迎您使用本系统!",Information!,ok!,2)
open(w_main)
close(w_enter)
end if

取消按钮所对应的代码如下:
close(parent)
//关闭登录窗口

三、 menu界面的截图:
在本界面中我们通过点击菜单栏上的不同管理按钮来实现管理和操作的功能。
进货—进货单
出货—出货单
库存—蔬菜类
—水产类
—肉类
系统维护—修改密码
查询

四、 进货的截图如下:
在本界面中,操作员可以输入进货信息

五、 进货的截图如下:
在本界面中,操作员可以输入出货信息

六、本界面是实现用户更改自己的密码的界面
用户在登陆后根据上面的提示可以更改自己的密码。

程序代码如下:
string oldid
string oldp
string newp1
string newp2
oldid=trim(sle_1.text)
oldp=trim(sle_2.text)
newp1=trim(sle_3.text)
newp2=trim(sle_4.text)

if len(oldp)=0 or isnull(oldp) then
oldp=space(10)
end if
if len(newp1)=0 or isnull(newp1) then
newp1=space(10)
end if
if len(newp2)=0 or isnull(newp2) then
newp2=space(10)
end if
select "operator"."password"
into :oldp
from "operator"
where "operator"."password"=:oldp;
if sqlca.sqlcode<>0 then
messagebox("提示","原密码不正确!")
sle_2.text=""
sle_2.setfocus()
return
end if
if newp1<>newp2 then
messagebox("提示","两次新密码输入不同!")
sle_4.text=""
sle_4.setfocus()
return
end if
Update "operator"
set "password"=:newp1
where "operator"."operator_id"=:oldid;
if sqlca.sqlcode<>0 then
rollback;
messagebox("提示","密码更正错误! 请重设!")
return
end if
gs_password=newp1
commit;
messagebox("提示","密码修改成功!")

七、本操作可以看仓库里的商品并可对其进行插入和删除

八、从仓库查询所需要的商品

4 系统评价
系统的功能基本上已经实现,但是还是不够完善。但是在使用的时候还是能给用户带来一定的方便的。仓库的进货和出货在本系统中能直观的以表格形式反映出来,便于操作员的使用和决策者的管理。
4.1 系统特色
本系统要求用户进行验证之后才能进入相应的界面。有利于保护数据库的安全,不被非法登陆使用。对于仓库内货物的进出管理要求严格,即进出货时必须填写相应的进出货单据。便于企业管理查看账目,保障了企业的稳定运行。通过本系统可以方便地实现仓库管理中的货物登记、出库入库等操作,使仓库管理井井有条。在查看数据库时可以方便的删除数据库中冗余的信息和添加新的信息。
4.2 系统不足及改进
这个系统基本上实现了一些简单的对系统所涉及表的更新、增加和删除的功能。也实现对用户登陆的安全上有了一定的限制,只有在正确输入ID和密码的时候才能进入系统。远没有达到大型公司的仓储物资管理的要求,所创建的数据库框架比较简单,各表之间的联系也过于简单,没有添加外键相互约束,用POWER BUILDER做出来的系统过于简单、单调,需要进一步深入的调整优化,将各表之间的关系紧密联系起来,相互制约,保证数据库中数据的添加、删除、更新,安全有序。操作窗口还需要进一步的进行美化,使用户在使用中更赏心悦目。

5 课程设计心得
这次课程设计的主要目的是掌握数据库应用系统分析设计的基本方法,基本掌握PowerBuilder,进一步提高分析解决问题的综合能力。通过这次课程设计,我基本掌握了以上要求。但只有两周的课程设计时间,时间比较仓促,所以开发的系统不是很完善,有一些功能未实现,但是仓库管理的基本功能均已实现。以前对数据库的很多知识认识都不深刻,做过这次课程设计之后,我对数据库的知识有了一个比较系统的了解;比如:对表内一些字段的约束,关系等的运用已经比较熟练。这个课程设计使我巩固了数据库的知识。
对于PowerBuilder也有了一定的了解,由于用的不多,所以运用的不是很熟练。刚开始的时候,对于PowerBuilder的语法,用法等一系列知识都不熟悉。当我基本完成此系统开发的时候,我发现其实也没有那么难,在未做之前我还害怕做不出来。经过对这个系统的开发,在开发过程中遇到但也解决了很多问题,所以说我们不能惧怕有困难而不去接触认识它,我们要知难而上,只有这样我们才能成长,才能有所发展。
这认为最难的一部分是用户查看数据库时通过插入删除按钮对数据库的更改,因为我们在文本框中输入的数字是被默认为字符型的,我在其中使用了integer(string)这个函数把字符型的进行了转换,但是在使用的过程中并不能像我所想象的那样有用。因为时间有限,所以这个问题还没有完全的解决。
通过这次数据库课程设计加深我对数据库基础理论和基本知识的理解,掌握数据库应用系统设计开发的基本方法,达到进一步使我综合运用所学知识和增强实际动手能力的目的。
我会继续学习数据库的知识,学习PowerBuilder的知识,只有通过不断的学习充实自己,才能让自己有所得。只有了知识的积淀,才能为自己的发展铺平道路!

可以参考一下啊,最终还是要自己做的吧。。仅供参考。

D. 数据库的规范化设计方法~

第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。

例如,如下的数据库表是符合第一范式的:

字段1 字段2 字段3 字段4

而这样的数据库表是不符合第一范式的:

字段1 字段2 字段3 字段4
字段3.1 字段3.2

很显然,在当前的任何关系数据库管理系统(DBMS)中,傻瓜也不可能做出不符合第一范式的数据库,因为这些DBMS不允许你把数据库表的一列再分成二列或多列。因此,你想在现有的DBMS中设计出不符合第一范式的数据库都是不可能的。

第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。

假定选课关系表为SelectCourse(学号, 姓名, 年龄, 课程名称, 成绩, 学分),关键字为组合关键字(学号, 课程名称),因为存在如下决定关系:

(学号, 课程名称) → (姓名, 年龄, 成绩, 学分)

这个数据库表不满足第二范式,因为存在如下决定关系:

(课程名称) → (学分)

(学号) → (姓名, 年龄)

即存在组合关键字中的字段决定非关键字的情况。

由于不符合2NF,这个选课关系表会存在如下问题:

(1) 数据冗余:

同一门课程由n个学生选修,"学分"就重复n-1次;同一个学生选修了m门课程,姓名和年龄就重复了m-1次。

(2) 更新异常:

若调整了某门课程的学分,数据表中所有行的"学分"值都要更新,否则会出现同一门课程学分不同的情况。

(3) 插入异常:

假设要开设一门新的课程,暂时还没有人选修。这样,由于还没有"学号"关键字,课程名称和学分也无法记录入数据库。

(4) 删除异常:

假设一批学生已经完成课程的选修,这些选修记录就应该从数据库表中删除。但是,与此同时,课程名称和学分信息也被删除了。很显然,这也会导致插入异常。

把选课关系表SelectCourse改为如下三个表:

学生:Student(学号, 姓名, 年龄);

课程:Course(课程名称, 学分);

选课关系:SelectCourse(学号, 课程名称, 成绩)。

这样的数据库表是符合第二范式的, 消除了数据冗余、更新异常、插入异常和删除异常。

另外,所有单关键字的数据库表都符合第二范式,因为不可能存在组合关键字。

第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指的是如果存在"A → B → C"的决定关系,则C传递函数依赖于A。因此,满足第三范式的数据库表应该不存在如下依赖关系:

关键字段 → 非关键字段x → 非关键字段y

假定学生关系表为Student(学号, 姓名, 年龄, 所在学院, 学院地点, 学院电话),关键字为单一关键字"学号",因为存在如下决定关系:

(学号) → (姓名, 年龄, 所在学院, 学院地点, 学院电话)

这个数据库是符合2NF的,但是不符合3NF,因为存在如下决定关系:

(学号) → (所在学院) → (学院地点, 学院电话)

即存在非关键字段"学院地点"、"学院电话"对关键字段"学号"的传递函数依赖。

它也会存在数据冗余、更新异常、插入异常和删除异常的情况,读者可自行分析得知。

把学生关系表分为如下两个表:

学生:(学号, 姓名, 年龄, 所在学院);

学院:(学院, 地点, 电话)。

这样的数据库表是符合第三范式的,消除了数据冗余、更新异常、插入异常和删除异常。

鲍依斯-科得范式(BCNF):在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合第三范式。

假设仓库管理关系表为StorehouseManage(仓库ID, 存储物品ID, 管理员ID, 数量),且有一个管理员只在一个仓库工作;一个仓库可以存储多种物品。这个数据库表中存在如下决定关系:

(仓库ID, 存储物品ID) →(管理员ID, 数量)

(管理员ID, 存储物品ID) → (仓库ID, 数量)

所以,(仓库ID, 存储物品ID)和(管理员ID, 存储物品ID)都是StorehouseManage的候选关键字,表中的唯一非关键字段为数量,它是符合第三范式的。但是,由于存在如下决定关系:

(仓库ID) → (管理员ID)

(管理员ID) → (仓库ID)

即存在关键字段决定关键字段的情况,所以其不符合BCNF范式。它会出现如下异常情况:

(1) 删除异常:

当仓库被清空后,所有"存储物品ID"和"数量"信息被删除的同时,"仓库ID"和"管理员ID"信息也被删除了。

(2) 插入异常:

当仓库没有存储任何物品时,无法给仓库分配管理员。

(3) 更新异常:

如果仓库换了管理员,则表中所有行的管理员ID都要修改。

把仓库管理关系表分解为二个关系表:

仓库管理:StorehouseManage(仓库ID, 管理员ID);

仓库:Storehouse(仓库ID, 存储物品ID, 数量)。

这样的数据库表是符合BCNF范式的,消除了删除异常、插入异常和更新异常。

范式应用

我们来逐步搞定一个论坛的数据库,有如下信息:

(1) 用户:用户名,email,主页,电话,联系地址

(2) 帖子:发帖标题,发帖内容,回复标题,回复内容

第一次我们将数据库设计为仅仅存在表:

用户名 email 主页 电话 联系地址 发帖标题 发帖内容 回复标题 回复内容

这个数据库表符合第一范式,但是没有任何一组候选关键字能决定数据库表的整行,唯一的关键字段用户名也不能完全决定整个元组。我们需要增加"发帖ID"、"回复ID"字段,即将表修改为:

用户名 email 主页 电话 联系地址 发帖ID 发帖标题 发帖内容 回复ID 回复标题 回复内容

这样数据表中的关键字(用户名,发帖ID,回复ID)能决定整行:

(用户名,发帖ID,回复ID) → (email,主页,电话,联系地址,发帖标题,发帖内容,回复标题,回复内容)

E. 如何用Access数据库创建一个简单的仓库管理数据库主要步骤是什么,交作业,有现成的最好。

你好
1、用access建一空数据库。
2、如果已经有excel形式的,在access文件栏用“获取外部数据(导入表)”即可,没有的话建立一个表。字段名自己根据需要定。
3、用sql语句(或在查询的设计视图中)建立需要的查询。
4、建立一个界面窗体,来管理或调用查询(可以用“宏”、也可用VBA),再建立需要格式的报表。
其它的,根据实际需要而定。
满意请采纳

F. 求数据库课程设计 仓库管理系统 要求用java

可以使用网络Hi示意我
有时间可以解决你的问题
差不多的要求也可以示意我

ES:\\

G. 数据库和数据仓库在设计上有哪些不同

可以针对不同的数据特点进行数据表的重新设计。一切为了计算服务就是数据仓库(其实应该叫数据挖掘)的区别。比如,可以在数据后加上已用判断项。已经计算过的就可以跳过这条记录。
还可以针对不同的特点加索引。为了分析也可以加些计数器。然后把高频使用的条目誊写到别的表里。

热点内容
安卓版本和高低有什么区别 发布:2025-04-01 14:33:31 浏览:837
nuttx编译 发布:2025-04-01 14:26:20 浏览:683
看视频软件苹果和安卓哪个好 发布:2025-04-01 14:21:55 浏览:631
我的世界服务器地址用公网ip可以吗 发布:2025-04-01 14:18:22 浏览:101
电脑外接网络服务器 发布:2025-04-01 14:17:08 浏览:694
一体机玩魔兽世界哪个配置好 发布:2025-04-01 13:47:20 浏览:502
c异或加密 发布:2025-04-01 13:40:20 浏览:243
c语言编译器推荐mac版 发布:2025-04-01 13:35:08 浏览:345
matlab与数据库连接 发布:2025-04-01 13:30:01 浏览:397
数据库平均值 发布:2025-04-01 13:28:00 浏览:532