工厂物资管理数据库系统.docx
《工厂物资管理数据库系统.docx》由会员分享,可在线阅读,更多相关《工厂物资管理数据库系统.docx(21页珍藏版)》请在冰豆网上搜索。
![工厂物资管理数据库系统.docx](https://file1.bdocx.com/fileroot1/2023-2/24/209fe578-2e1f-458d-8519-281ce1fcc103/209fe578-2e1f-458d-8519-281ce1fcc1031.gif)
工厂物资管理数据库系统
工厂物资管理数据库系统
设计报告
班级:
11级信班
学号:
31112300510
姓名:
贺媛
一、设计任务说明
1.理解数据库应用与工厂物资管理体系;
2.掌握模型设计定义以及如何用数据库实现创建;
3.掌握数据库实现管理以及语句、数据上的修改;
二、需求分析
通过对工厂物资管理工作过程及数据流图的认真分析,得到如下的有用信息:
1.工厂物资管理设计多种零件的存放。
2.每件零件需要记录零件号码、条形码、类别、价格、出厂日期等基本信息。
3.除此之外,还需要记录零件的其他相关信息,如零件供应商的信息,存放的仓库信息、何种项目需要使用何种零件等。
4.同时需要提供对信息的添加、编辑、删除等操作。
5.供应商(supplier)信息,包括的数据项有:
供应商号、姓名、账号、地址、电话号码。
6.项目(project)信息,包括的数据项有:
项目号、预算、开工日期。
7.零件(part)信息,包括的数据项有:
零件号、名称、规格、单价、描述。
8.仓库(warehouse)信息,包括的数据项有:
仓库号、面积、地址、电话号码。
9.职工(staff)信息,包括的数据项有:
职工号、姓名、性别、年龄、职称
三、概念模型设计
1.实体E-R图设计
(1)供应商:
供应商号、姓名、地址、电话号、账号。
图3.1供应商实体E—R图
(2)零件:
编号、名称、仓库号、描述、单价、规格。
、
图3.2零件商实体E—R图
(3)项目:
项目号、预算、开工日期。
图3.3项目实体E—R图
(4)仓库:
仓库号、面积、电话号、管理号、职工号。
图3.4仓库实体E—R图
(5)职工:
姓名、年龄、名称、职工号。
职称
姓名
职工号
年龄
职工
图3.5职工实体E—R图
2.实体联系描述
采购部门与供应商的联系,为多个项目提供多种零件,供应商、项目和零件三者之间具有多对多的联系。
仓库管理部门主要记录零件数量情况,一间仓库可以存放多种零件,一种零件可以存放在多建仓库中,因此仓库和零件之间具有多对多的联系,用数量来表示某种零件在某建仓库中的数量。
人事部门要安排职工的工作任务,一间仓库有多个职工当仓库保管员,一个职工只能在一间仓库工作,因此仓库和职工之间存在一对多的联系。
职工之间具有领导---被领导关系,即仓库主任领导若干保管员,因此直供实体具有一对多的联系。
3.全局概念结构E-R图设计
供应
供应商
供应商号
账号
电话
地址
姓名
供应量
项目
项目号
预算
开工日期
零件
库存
名称
描述
零件号
规格
单价
仓库
面积
仓库号
电话号
职工
姓名
年龄
职工号
库存量
职称
领导
工作
图3.6仓库系统整体E—R图
四、逻辑模型设计
下面是“工厂物资管理”的E-R数据模型转换成关系模型的所有模型
(1)根据规则1,5实体对应以下5个关系模式。
●仓库资料(仓库号、面积、电话号码),主键为仓库号。
●零件资料(零件号,名称,规格,单价,描述),主键为零件号。
●供应商资料(供应商号,姓名,地址,电话,账号),主键为供应商号。
●项目资料(项目号,预算,开工日期),主键为项目号。
●职工资料(职工号,姓名,年龄,职称),主键为职工号。
(2)根据规则2,仓库与零件之间存在多对多的关系,对应关系模式如下。
●库存量(仓库号,零件号,库存量),主键为仓库库与零件号的组合。
(3)根据规则3,仓库与职工实体之间存在一对多的二元联系,对应的关系模式如下。
●工作情况表(职工号、仓库号、工作时间),主键为职工号。
(4)根据规则5,供应商、项目与零件三实体之间的三元联系,对应的关系模式如下。
●供应情况表(供应商号、零件号、项目号供应量),主键为项目号,供应商号与零件号的组合。
(5)根据规则7,将职工实体拆分为普通员工和班长两个子集,两子集之间存在一对多的联系,对应的关系模式如下。
●普通员工(职工号,姓名,年龄),主键为职工号。
●班长(工号,姓名,年龄),主键为工号。
●领导(职工号),主键为职工号。
五、物理模型设计
1.数据库设计
(1)逻辑数据库名称:
goodsManagment
(2)数据文件:
goodsDAT.MDF,始初大小为3MB,最大空间为20MB,增加量为2MB。
(3)日志文件:
goodsLOG.LDF,始初大小为1MB,最大空间为20MB,增加量为2MB。
(4)备份设置名:
BACKUP;goodsbackup.dat。
2.数据表描述:
项目资料表
字段
类型
长度
可否为空
备注
项目号
Int
否
主键
预算
Int
可
开工日期
datetime
否
仓库资料表
字段
类型
长度
可否为空
备注
仓库号
Int
否
主键
面积
Int
否
电话号码
Char
15
否
零件资料表
字段
类型
长度
可否为空
备注
零件号
Int
否
主键
名称
Varchar
30
否
规格
Varchar
20
否
电话号码
Char
15
可
描述
Text
可
单价
int
否
职工资料表
字段
类型
长度
可否为空
备注
职工号
Int
否
主键
姓名
char
8
否
年龄
Int
可
职称
char
8
可
供应商资料表
字段
类型
长度
可否为空
备注
供应商号
Int
否
主键
姓名
char
8
否
地址
Varchar
20
否
电话号码
char
7
账号
Int
库存情况表
字段
类型
长度
可否为空
备注
仓库
Int
否
主键
零件
Int
否
库存量
int
否
供应情况表
字段
类型
长度
可否为空
备注
供应商号
Int
否
主键
零件号
Int
否
项目号
Int
否
供应量
Int
工作情况表
字段
类型
长度
可否为空
备注
职工号
Int
否
主键
仓库号
Int
否
工作时间
datetime
否
3.触发器:
(1)要求供应商资料中的供应商号被修改时,供应情况表中的供应商号也被修改。
名称:
goodsid、
(2)要求零件资料中的零件号被修改时,供应情况表与库存情况表中的零件号也被修改。
名称:
goodsid1、
(3)要求项目资料中的项目号被修改时,供应情况表中的项目号也被修改。
名称:
goodsid2、
(4)要求供应商资料中的供应商号只有在供应情况表中的相应供应商号不存在时,方可删除。
名称:
goodsid3、
(5)要求零件商资料中的零件号只有在供应情况表与库存情况表中的相应零件号不存在时,方可删除。
名称:
goodsid4、
(6)要求项目资料中的项目号只有在供应情况表中的相应项目号不存在时,方可删除。
名称:
goodsid5。
4.视图:
为用户提供包含供应商姓名、零件号、项目号、和零件总价格的视图。
名称:
project
5.存储过程:
根据用户所提交的职工号,为用户提供职工信息。
名称:
lookworker。
六、数据库实施
1.创建数据库:
createdatabasegoodsManagment
on
(
name=goosaDAT,
filename='c:
\SQL\goodsDAT.MDF',
size=3,
maxsize=20,
filegrowth=2
)
LOGon
(
name=物资管理LOG,
filename='c:
\SQL\goodsLOG.ldf',
size=1,
maxsize=20,
filegrowth=2)
2.创建备份文件:
sp_addumpdevice'disk','BACKUP1','D:
\sql\goodsbackup1.dat'
go
backupdatabasegoodsManagmenttoBACKUP1
3.创建数据表文件
createtable仓库资料
(
仓库号intprimarykey,
面积int,
电话号码char(15))
图6.1仓库数据表显示图
createtable零件资料
(
零件号intprimarykey,
名称varchar(30),
规格varchar(20),
电话号码char(15),
描述Text,
单价int)
图6.2零件数据表显示图
createtable项目资料
(
项目号intprimarykey,
预算int,
开工日期datetime)
图6.3项目数据显示图
createtable职工资料
(
职工号intprimarykey,
姓名char(8),
年龄int,
职称char(8))
图6.4职工数据显示图
createtable供应商资料
(
供应商号intprimarykey,
姓名char(8),
地址varchar(20),
电话号码char(7),
账号int)
图6.5供应商数据显示图
createtable库存情况表
(
仓库号int,
零件号int,
库存量int)
图6.6仓库情况表显示图
createtable供应情况表
(
供应商号intreferences供应商资料(供应商号),
零件号intreferences零件资料(零件号),
项目号intreferences项目资料(项目号),
供应量int)
图6.7供应商情况表显示图
createtable工作情况表
(
职工号intreferences职工资料(职工号),
仓库号intreferences仓库资料(仓库号),
工作时间datetime)
图6.8工作情况表显示图
3.创建索引
createnonclustered
indexIX_仓库号on仓库资料(仓库号asc)
createnonclustered
indexIX_零件号on零件资料(零件号asc)
createnonclustered
indexIX_项目号on项目资料(项目号asc)
createnonclustered
indexIX_职工号on职工资料(职工号asc)
createnonclustered
indexIX_供应商号on供应商资料(供应商号asc)
createnonclustered
indexIX_仓库号on库存情况表(仓库号asc)
createnonclustered
indexIX_供应商号on供应情况表(供应商号asc)
createnonclustered
indexIX_职工号on工作情况表(职工号asc)
4.创建触发器:
(1)createtriggergoodidon供应商资料
forupdate
as
begin
if(columns_updated()&01)>0
update供应情况表
set供应情况表.供应商号=(selecta.供应商号frominserteda)
where供应情况表.供应商号=(selectb.供应商号fromdeletedb)
end
(2)createtriggergood_1on零件资料
forupdate
as
begin
if(columns_updated()&01)>0
update供应情况表
set供应情况表.零件号=(select零件号frominserted)
where供应情况表.零件号=(select零件号fromdeleted)
update库存情况表
set库存情况表.零件号=(select零件号frominserted)
where库存情况表.零件号=(select零件号fromdeleted)
end
(3)createtriggergood_2on项目资料
forupdate
as
begin
if(columns_updated()&01)>0
update供应情况表
set供应情况表.项目号=(select项目号frominserted)
where供应情况表.项目号=(select项目号fromdeleted)
end
(4)createtriggergood_3on供应商资料
fordelete
as
ifexists(select供应商号fromdeleteda
wherea.供应商号in(select供应情况表.供应商号from供应情况表)
)
begin
raiserror('因在供应商资料中存在,不得删除此条记录!
',16,1)
rollbacktransaction
end
(5)createtriggergood_5on零件资料
fordelete
as
ifexists(select零件号fromdeleteda
wherea.零件号in(select供应情况表.零件号from供应情况表)or
a.零件号in(select库存情况表.零件号from库存情况表)
)
begin
raiserror('因在零件资料中存在,不得删除此条记录!
',16,1)
rollbacktransaction
end
(6)createtriggergood_4on项目资料
fordelete
as
ifexists(select项目号fromdeleteda
wherea.项目号in(select供应情况表.项目号from供应情况表)
)
begin
raiserror('因在零件资料中存在,不得删除此条记录!
',16,1)
rollbacktransaction
end
5.创建视图:
createVIEWproject(供应商姓名,零件名,项目号,零件总价格)
as
select姓名,名称,项目号,供应量*单价
from供应商资料,供应情况表,零件资料
where供应商资料.供应商号=供应情况表.供应商号and供应情况表.零件号=零件资料.零件号
创建存储过程:
createprocedurelookworker
@idint
as
select职工号from职工资料where职工资料.职工号=@id
6.修改语句
(1)usegoodsManagement
go
update供应商资料
set供应商号=1002
where供应商号='2001'
go
select*from供应商资料
图6.9供应商修改显示图
(2)usegoodsManagement
go
update项目资料
set项目号=8
where项目号='1'
go
select*from项目资料
图6.10项目修改显示图
(3)usegoodsManagement
go
update零件资料
set零件号=106
where零件号='102'
go
select*from零件资料
图6.11零件修改显示图
(4)usegoodsManagement
go
deletefrom供应商资料
where供应商号='1002'
go
select*from供应商资料
(5)usegoodsManagement
go
deletefrom零件资料
where零件号='101'
go
select*from零件资料
(6)usegoodsManagement
go
deletefrom项目资料
where项目号='3'
go
select*from项目资料
七、总结
本系统是一个典型的信息管理系统,其主要通过数据库系统设计方法进行课题选择、需求分析、系统设计等步骤实现。
开发本系统的过程中,首先要对工厂物资管理进行系统调研,熟悉其中的零件的存储管理、零件的使用管理和供应记录管理流程、步骤,完成需求分析;其次在系统需求分析的基础上,发现工厂物资管理中需要解决的各种问题,并在总体设计把握好对问题的分析、理解,进而解决问题;使用数据库设计方法的步骤,经过需求分析、概念模型设计、逻辑模型设计、物理模型设计、数据库实施及创建等,使用SQLServer2005系统创建实施了工厂物资管理数据库系统。
这次的实验让我理解了数据库应用与工厂物资管理体系、掌握了模型设计定义以及如何用数据库实创建、掌握了数据库实现管理以及语句、数据上的修改。
SQLServer数据库的实验学习使我对数据库的有了新的进步,以后再看到也就不至于什么也不懂,其实那么多数据库我觉得学好一门就行,只是他们的语言可能不大一样,学好一门后就可去认识其它的,这样应该有事半功倍的效果。
因此,我感谢数据库老师给了我有用的知识,以便我在以后学习或认识更多的内容能有新的方法和思维,也能更加有效和快速的去消化吸收新的东西。
希望在今后中,SQLServer能给我更多帮助。
感谢学校开设这样一门优秀使用的课程,让我对数据库有了更深的了解。
八、参考文献
1.JSP的SQLServer数据库访问技术 肖遥 2009
2.基于JSP的教务管理系统设计 史志国 2008
3.《数据库原理及应用》 钱雪忠主编 北京邮电大学出版社 2007,8 第二版
4.《SQL server 2000数据仓库与Analysis Services》 Bain T著 中国电力出版社 2003
5.SOLServer2005入门与提高。
文龙,张自辉等.北京:
清华大学出版社,2007