数据库作业工厂物料管理系统.docx

上传人:b****6 文档编号:15714562 上传时间:2023-07-07 格式:DOCX 页数:14 大小:81.62KB
下载 相关 举报
数据库作业工厂物料管理系统.docx_第1页
第1页 / 共14页
数据库作业工厂物料管理系统.docx_第2页
第2页 / 共14页
数据库作业工厂物料管理系统.docx_第3页
第3页 / 共14页
数据库作业工厂物料管理系统.docx_第4页
第4页 / 共14页
数据库作业工厂物料管理系统.docx_第5页
第5页 / 共14页
数据库作业工厂物料管理系统.docx_第6页
第6页 / 共14页
数据库作业工厂物料管理系统.docx_第7页
第7页 / 共14页
数据库作业工厂物料管理系统.docx_第8页
第8页 / 共14页
数据库作业工厂物料管理系统.docx_第9页
第9页 / 共14页
数据库作业工厂物料管理系统.docx_第10页
第10页 / 共14页
数据库作业工厂物料管理系统.docx_第11页
第11页 / 共14页
数据库作业工厂物料管理系统.docx_第12页
第12页 / 共14页
数据库作业工厂物料管理系统.docx_第13页
第13页 / 共14页
数据库作业工厂物料管理系统.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库作业工厂物料管理系统.docx

《数据库作业工厂物料管理系统.docx》由会员分享,可在线阅读,更多相关《数据库作业工厂物料管理系统.docx(14页珍藏版)》请在冰点文库上搜索。

数据库作业工厂物料管理系统.docx

数据库作业工厂物料管理系统

Documentnumber【SA80SAB-SAA9SYT-SAATC-SA6UT-SA18】

 

数据库作业工厂物料管理系统

数据库课程设计

------某工厂物料管理系统

 

 

摘要

本文运用了数据流图、数据字典等方法对工厂物料管理系统进行了需求分析,运用E-R图进行了概念结构设计,在逻辑结构设计中将E-R图转化为关系模型,在物理结构设计中确定该数据库的存储结构,最后通过SQL语言实现数据库的设计。

在此过程中,我们还详细分析了各个子系统的属性、实体间的联系以及子系统间的关系。

在此基础上,我们没建立了一个相对完善的工厂物料管理系统数据库,并通过金仓数据库软件,运用SQL语言将所建工厂物料管理系统数据库顺利实现。

关键字:

数据字典,E-R图,SQL语言

 

一、系统概述............................................1

二、需求分析............................................1

§信息分析.......................................1

§数据流图.......................................2

§数据字典.......................................2

三、概念结构设计........................................4

§实体列表.......................................4

§E-R图.......................................4

四、逻辑结构设计........................................5

五、物理结构设计........................................6

§关系模式存取方式选择...........................6

§确定数据库的存储结构...........................6

§评价物理结构...................................6

六、数据库的实施........................................6

七、设计总结............................................8

工厂物料管理系统

一、系统概述

实现物料的分类管理,实现部门和员工信息管理;实现物料的入库和领用管理;实现物料的转仓管理;创建触发器,实现物料入库和领用时相应物料库存的自动更新;创建触发器,实现转仓时转入仓库物料增加、转出仓库物料减少;创建存储过程统计数量和领用数量;建立数据库相关表之间的参照完整性约束

二、需求分析

§信息分析

我们根据对工厂物料管理方面的知识和在网络上取得的信息资料,得出系统的信息需求和处理要求,得到设计所需的需求信息。

这些信息是是选择了对数据库设计直接有用的信息。

 

§系统流程图

 

数据库字典

员工表(ygb)

属性名

字段名称

类型

是否为空

备注

员工编号(主键)

ygbh

Char(10)

Notnull

物料编号

员工姓名

ygxm

Char(20)

Notnull

物料名称

员工电话

ygdh

Char(17)

Notnull

规格

职称

zc

Char(20)

Notnull

描述

部门表(bmb)

属性名

字段名称

类型

是否为空

备注

部门号(主键)

bmh

Char(10)

Notnull

部门名

员工编号(主键)

ygxm

Char(10)

Notnull

部门名

bmm

Char(40)

Notnull

部门号

仓库表(ckb)

属性名

字段名称

类型

是否为空

备注

仓库编号(主键)

ckbh

Char(10)

Notnull

仓库编号

物料编号(主键)

wlbh

Char(10)

Notnull

物料数量

wlxl

int

物料表(wlb)

属性名

字段名称

类型

是否为空

备注

物料编号(主键)

wlbh

Char(10)

Notnull

物料编号

物料名称

wlmc

Char(20)

Notnull

物料名称

规格

gg

Char(20)

Notnull

规格

描述

ms

text

描述

仓库管理员表(ckglyb)

属性名

字段名称

类型

是否为空

备注

管理员编号(主键)

glybh

Char(10)

Notnull

物料编号

姓名

xm

Char(20)

Notnull

物料名称

电话

dh

Char(20)

Notnull

规格

员工和部门表(yghbmb)

属性名

字段名称

类型

是否为空

备注

员工编号(主键)

ygbh

Char(10)

Notnull

员工编号

部门号(主键)

bmh

Char(20)

Notnull

部门号

员工和物料表(yghwlb)

属性名

字段名称

类型

是否为空

备注

员工编号(主键)

ygbh

Char(10)

Notnull

员工编号

物料编号(主键)

wlbh

Char(20)

Notnull

领取数量

lqsl

int

出入库表(crkb)

属性名

字段名称

类型

是否为空

备注

物料编号(主键)

wlbh

Char(10)

Notnull

物料编号

管理员编号(主键)

glybh

Char(20)

Notnull

管理员编号

仓库编号(主键)

ckbh

Char(20)

Notnull

仓库编号

出入标志

crbz

Char

(2)

Notnull

时间

数量

sl

int

Notnull

数量

转仓表(zhuanc)

属性名

字段名称

类型

是否为空

备注

动作编号(主键)

dzbh

Char(10)

Notnull

物料编号

wlbh

Char(10)

Notnull

物料编号

管理员编号

glybh

Char(20)

Notnull

管理员编号

仓库编号1

ckbh

Char(20)

Notnull

仓库编号

仓库编号2

sj

date

Notnull

时间

数量

sl

int

Notnull

数量

§概念结构设计(E-R)模型

实体;

部门;部门号,部门名,员工编号

员工;员工编号,姓名,电话,职称

仓库管理员;管理员编号,姓名,电话

仓库;仓库号

物料;物料编号,物料名称,规格,单价

实体联系:

员工和部门;一个员工属于一个部门,一个部门可以有多个员工,属于多对一的关系.

员工和物料;物料由员工领用,一个员工可以领到多种物料,不同的物料也可以有不同的员工来领,它们属于多对多的关系

仓库和仓库管理员;一个仓库可以有多个管理员,一个管理员只在一个仓库工作,属于一对多的关系

仓库管理员和物料;一个管理员在一个仓库工作,一个仓库可以有多个管理员,属于一对多的关系.

 

§全体E-R图

属性名

存储代码

类型

长度

备注

 

§关系模式

部门(部门号,部门名)

员工(员工编号,姓名,电话,职称)

仓库管理员(管理员编号,姓名,电话)

仓库(仓库号)

物料(物料编号,物料名称,规格,单价)

 

四、逻辑结构设计

五、物理结构设计

/*建数据库*/

createdatabasegcwl

onprimary(

name=gcwl,

filename='D:

\',

size=3MB,

maxsize=50MB,

filegrowth=20%

logon(

name=gcwl_log,

filename='D:

\',

size=3MB,

maxsize=200MB,

filegrowth=10MB

go

/*建表及约束、主外键*/

usegcwl

createtableyg(ygbhchar(10)notnullprimarykey,

ygxmchar(20)notnull,

ygdhchar(17)null)

createtablebm(bmhchar(10)notnullprimarykey,

ygbh(ygbhchar(10)notnullprimarykey,

bmmchar(40)null)

createtablewl(wlbhchar(10)notnullprimarykey,

wlmcchar(20)notnull,

ggchar(20)null,

mstextnull)

createtableck(ckbhchar(10)notnull,

wlbhchar(10)notnull,

primarykey(ckbh,wlbh),

wlslintnotnullconstraintdefault_sldefault0)

createtableckgly(glybhchar(10)notnullprimarykey,

xmchar(10)null,

dhchar(20)null)

createtableyglwl(ygbhchar(10)notnull,

wlbhchar(20)notnull,

lqslintnotnull,

primarykey(ygbh,wlbh,lqsl),

foreignkey(ygbh)referencesyg(ygbh),

foreignkey(wlbh)referenceswl(wlbh))

createtablecrk(glybhchar(10)notnull,

ckbhchar(10)notnull,

wlbhchar(10)notnull,

crbzchar

(2)notnull,

sjchar(16)notnullconstraintdefault_sjdefaultconvert(char(16),getdate(),120),

slintnotnull,

primarykey(wlbh,glybh,ckbh,sj),

foreignkey(wlbh)referenceswl(wlbh),

foreignkey(glybh)referencesckgly(glybh),

foreignkey(ckbh)referencesck(ckbh))

createtablezhuanc(dzbhchar(10)primarykey,

glybhchar(10)notnull,

ckbh1char(10)notnull,

ckbh2char(10)notnull,

wlbhchar(10)notnull,

slchar(10)notnull,

foreignkey(glybh)referencesckgly(glybh),

foreignkey(ckbh1)referencesck(ckbh),

foreignkey(ckbh2)referencesck(ckbh),

foreignkey(wlbh)referenceswl(wlbh))

go

/*触发器--出入库管理*/

createtriggertri_crk

oncrkforinsert

as

declare@crbzchar

(2),@wlbhchar(10),@ckbhchar(10),@slint

select@crbz=crbzfrominserted

select@wlbh=wlbhfrominserted

select@sl=slfrominserted

select@ckbh=ckbhfrominserted

if@crbz='入'

begin

if@wlbhnotin(selectwlbhfromck)

insertck(ckbh,wlbh)values(@ckbh,@wlbh)

updatecksetwlsl=wlsl+@slwhereckbh=@ckbhandwlbh=@wlbh

end

else

begin

if(selectslfromckwherewlbh=@wlbhandckbh=@ckbh)<@sl

print'物料不足!

'

rollback

end

updatecksetwlsl=wlsl-@slwhereckbh=@ckbhandwlbh=@wlbh

go

/*触发器--转仓*/

createtriggerzhuanc

onzhuancforinsert

as

declare@ckbh1char(10),@ckbh2char(10),@slint,@wlbhchar(10),@glybhchar(10)

select@ckbh1=ckbh1frominserted

select@ckbh2=ckbh2frominserted

select@wlbh=wlbhfrominserted

select@glybh=glybhfrominserted

select@sl=slfrominserted

if@sl>(selectslfromckwherewlbh=@wlbhandckbh=@ckbh1)

begin

print'notenough!

'

rollback

end

insertcrk(glybh,ckbh,wlbh,crbz,sl)values(@glybh,@ckbh2,@wlbh,'入',@sl)

insertcrk(glybh,ckbh,wlbh,crbz,sl)values(@glybh,@ckbh1,@wlbh,'出',@sl)

go

/*存储过程-查询各仓库各物料现存数量*/

createproceduretjsl

as

selectckbh,wlbh,wlslfromck

go

/*指定时间内出入库数量*/

createprocedurecxcr

@kaishichar(10),@jieshuchar(10)

as

selectwlbh,crbz,slfromcrk

wheresjbetween@kaishiand@jieshu

groupbywlbh,crbz,sl

go

总结:

通过这次课程设计,熟悉了ER模式的图的画法,数据库的操作,以及数据在数据库中的运用模式。

通过SQL语言实现数据库的设计。

学习了分析了各个子系统的属性、实体间的联系以及子系统间的关系。

并且利用SQL语言建立数据库运行并且实现。

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2