工厂物资管理数据库系统
工厂物资管理数据库系统
设计报告
班级: 11级信班 学号: 31112300510 姓名: 贺媛
页脚内容 文件名称: 投标方案 目录
一、设计任务说明 ................................................................................ 2 二、需求分析 ...................................................................................... 2 三、概念模型设计 ................................................................................ 3
1.实体E-R图设计 ........................................................................... 3 2.实体联系描述 .............................................................................. 5 3.全局概念结构E-R图设计 .............................................................. 5 四、逻辑模型设计 ................................................................................ 6 五、物理模型设计 ................................................................................ 7
1.数据库设计 ................................................................................. 7 2.数据表描述: .............................................................................. 7 3.触发器: .................................................................................. 9 4.视图: ....................................................................................... 9 5.存储过程: ............................................................................... 10 六、数据库实施 ................................................................................. 10
1.创建数据库: ............................................................................ 10 2.创建备份文件: ......................................................................... 11 3.创建数据表文件 ......................................................................... 11 3.创建索引 .................................................................................. 14 4.创建触发器: ............................................................................ 15 5.创建视图: ............................................................................... 17 6.修改语句 .................................................................................. 18 七、总结 ........................................................................................... 20 八、参考文献 .................................................................................... 20
页脚内容 文件名称: 投标方案
一、设计任务说明
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)数据文件:goods DAT.MDF,始初大小为3MB,最大空间为20MB,增加量为2MB。
(3)日志文件:goods LOG.LDF,始初大小为1MB,最大空间为20MB,增加量为2MB。
(4)备份设置名:BACKUP;goodsbackup.dat。
2.数据表描述:
项目资料表
字段 项目号 预算 开工日期 类型 Int Int datetime 长度 仓库资料表
字段 仓库号 面积 电话号码 类型 Int Int Char 长度 15 零件资料表
字段 类型 长度 页脚内容 可否为空 否 可 否 备注 主键 可否为空 否 否 否 备注 主键 可否为空 备注 文件名称: 投标方案 零件号 名称 规格 电话号码 描述 单价 Int Varchar Varchar Char Text int 30 20 15 职工资料表
否 否 否 可 可 否 主键 字段 职工号 姓名 年龄 职称 类型 Int char Int char 长度 8 8 供应商资料表
可否为空 否 否 可 可 备注 主键 字段 供应商号 姓名 地址 电话号码 账号 类型 Int char Varchar char Int 长度 8 20 7 库存情况表
可否为空 否 否 否 备注 主键 字段 仓库 零件 库存量 类型 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.创建数据库:
create database goodsManagment on (
name = goosaDAT,
filename = 'c:\\SQL\\goodsDAT.MDF', size = 3, maxsize=20, filegrowth = 2 ) LOG on (
name = 物资管理LOG,
filename='c:\\SQL\\goodsLOG.ldf', size=1, maxsize=20, filegrowth=2)
页脚内容 文件名称: 投标方案 2.创建备份文件:
sp_addumpdevice'disk','BACKUP1','D:\\sql\\goodsbackup1.dat' go
backup database goodsManagment to BACKUP1
3.创建数据表文件
create table 仓库资料 (
仓库号 int primary key, 面积 int,
电话号码 char(15))
图6.1仓库数据表显示图
create table 零件资料 (
零件号 int primary key, 名称 varchar(30), 规格 varchar(20), 电话号码 char(15), 描述 Text, 单价 int)
页脚内容 文件名称: 投标方案
图6.2零件数据表显示图
create table 项目资料 (
项目号int primary key, 预算int,
开工日期datetime)
图6.3项目数据显示图
create table 职工资料 (
职工号int primary key, 姓名char(8), 年龄int, 职称char(8))
图6.4职工数据显示图
create table 供应商资料 (
供应商号int primary key, 姓名char(8),
页脚内容 文件名称: 投标方案 地址varchar(20), 电话号码char(7), 账号int)
图6.5供应商数据显示图
create table 库存情况表 (
仓库号int, 零件号int, 库存量int)
图6.6仓库情况表显示图
create table 供应情况表 (
供应商号int references 供应商资料(供应商号), 零件号int references 零件资料(零件号), 项目号int references 项目资料(项目号), 供应量int)
页脚内容 文件名称: 投标方案 图6.7供应商情况表显示图
create table 工作情况表 (
职工号int references 职工资料(职工号), 仓库号int references 仓库资料(仓库号), 工作时间datetime)
图6.8工作情况表显示图
3.创建索引
create nonclustered
index IX_仓库号on 仓库资料(仓库号asc) create nonclustered
index IX_零件号on 零件资料(零件号asc) create nonclustered
index IX_项目号on 项目资料(项目号asc) create nonclustered
index IX_职工号on 职工资料(职工号asc) create nonclustered
index IX_供应商号on 供应商资料(供应商号asc) create nonclustered
index IX_仓库号on 库存情况表(仓库号asc) create nonclustered
index IX_供应商号on 供应情况表(供应商号asc)
页脚内容 文件名称: 投标方案 create nonclustered
index IX_职工号on 工作情况表(职工号asc)
4.创建触发器:
(1) create trigger goodid on 供应商资料 for update as begin
if (columns_updated()&01)>0 update 供应情况表
set 供应情况表.供应商号= (select a.供应商号from inserted a) where 供应情况表.供应商号= (select b.供应商号from deleted b) end
(2)create trigger good_1 on 零件资料 for update as begin
if(columns_updated()&01)>0 update 供应情况表
set 供应情况表.零件号=(select 零件号from inserted) where 供应情况表.零件号=(select 零件号from deleted) update 库存情况表
set 库存情况表.零件号=(select 零件号from inserted) where 库存情况表.零件号=(select 零件号from deleted) end
(3)create trigger good_2 on 项目资料
页脚内容 文件名称: 投标方案 for update as begin
if(columns_updated()&01)>0 update 供应情况表
set 供应情况表.项目号=(select 项目号from inserted) where 供应情况表.项目号=(select 项目号from deleted) end
(4)create trigger good_3 on 供应商资料 for delete as
if exists(select 供应商号from deleted a
where a.供应商号in(select 供应情况表.供应商号from 供应情况表) ) begin
raiserror('因在供应商资料中存在,不得删除此条记录!',16,1) rollback transaction end
(5)create trigger good_5 on 零件资料 for delete as
if exists(select 零件号from deleted a
where a.零件号in(select 供应情况表.零件号from 供应情况表) or a.零件号in(select 库存情况表.零件号from 库存情况表) ) begin
raiserror('因在零件资料中存在,不得删除此条记录!',16,1)
页脚内容 文件名称: 投标方案 rollback transaction end
(6)create trigger good_4 on 项目资料 for delete as
if exists(select 项目号from deleted a
where a.项目号in(select 供应情况表.项目号from 供应情况表) ) begin
raiserror('因在零件资料中存在,不得删除此条记录!',16,1) rollback transaction end
5.创建视图:
create VIEW project(供应商姓名,零件名,项目号,零件总价格) as
select 姓名,名称,项目号,供应量* 单价 from 供应商资料,供应情况表,零件资料
where 供应商资料.供应商号= 供应情况表.供应商号and 供应情况表.零件号= 零件资料.零件号 创建存储过程:
create procedure lookworker @id int as
select 职工号from 职工资料where 职工资料.职工号= @id
页脚内容 文件名称: 投标方案 6.修改语句
(1)use goodsManagement go
update 供应商资料 set 供应商号= 1002 where 供应商号= '2001' go
select * from 供应商资料
图6.9供应商修改显示图
(2) use goodsManagement go
update 项目资料 set 项目号= 8 where 项目号= '1' go
select * from 项目资料
图6.10项目修改显示图
(3) use goodsManagement go
update 零件资料
页脚内容 文件名称: 投标方案 set 零件号= 106 where 零件号= '102' go
select * from 零件资料
图6.11零件修改显示图
(4) use goodsManagement go
delete from 供应商资料 where 供应商号='1002' go
select*from 供应商资料
(5)use goodsManagement go
delete from 零件资料 where 零件号='101' go
select*from 零件资料
(6) use goodsManagement go
delete from 项目资料 where 项目号='3' go
页脚内容 文件名称: 投标方案 select*from 项目资料
七、总结
本系统是一个典型的信息管理系统,其主要通过数据库系统设计方法进行课题选择、需求分析、系统设计等步骤实现。开发本系统的过程中,首先要对工厂物资管理进行系统调研,熟悉其中的零件的存储管理、零件的使用管理和供应记录管理流程、步骤,完成需求分析;其次在系统需求分析的基础上,发现工厂物资管理中需要解决的各种问题,并在总体设计把握好对问题的分析、理解,进而解决问题;使用数据库设计方法的步骤,经过需求分析、概念模型设计、逻辑模型设计、物理模型设计、数据库实施及创建等,使用SQL Server 2005系统创建实施了工厂物资管理数据库系统。这次的实验让我理解了数据库应用与工厂物资管理体系、掌握了模型设计定义以及如何用数据库实创建、掌握了数据库实现管理以及语句、数据上的修改。SQL Server数据库的实验学习使我对数据库的有了新的进步,以后再看到也就不至于什么也不懂,其实那么多数据库我觉得学好一门就行,只是他们的语言可能不大一样,学好一门后就可去认识其它的,这样应该有事半功倍的效果。因此,我感谢数据库老师给了我有用的知识,以便我在以后学习或认识更多的内容能有新的方法和思维,也能更加有效和快速的去消化吸收新的东西。希望在今后中,SQL Server能给我更多帮助。感谢学校开设这样一门优秀使用的课程,让我对数据库有了更深的了解。
八、参考文献
1. JSP的SQLServer数据库访问技术 肖遥 2009 2. 基于JSP的教务管理系统设计 史志国 2008
3.《数据库原理及应用》 钱雪忠主编 北京邮电大学出版社 2007,8 第二版
4.《SQL server 2000数据仓库与Analysis Services》 Bain T著 中国电力出版社 2003
页脚内容 文件名称: 投标方案 5. SOL Server2005入门与提高。文龙,张自辉等.北京:清华大学出版社,2007
页脚内容
因篇幅问题不能全部显示,请点此查看更多更全内容