库存物资管理系统后台数据库
,
数据库课程设计
设计
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
题 目:库存物资管理系统后台数据库
学 号: 学生姓名: 指导教师: 提交时间: --------------
,
目录
库存物资管理系统后台数据库 ........................................................................................ ,
第1章 进行需求分析,编写数据字典 ............................................................................ ,
1.1系统功能要求设计: ......................................................................................... ,
1.2模块设计 .......................................................................................................... ,
1.3数据字典 .......................................................................................................... , 第2章 面向对象分析和设计 ........................................................................................ , 第3章 逻辑结构设计................................................................................................... ,
3.1类和对象向关系模式转换 .................................................................................. , 第4章 数据库物理结构设计 ..................................................................................... ,,
4.1存取方法设计 ................................................................................................ ,,
4.2存储结构设计 ................................................................................................ ,,
4.3物理设计 ....................................................................................................... ,, 第5章 数据完整性设计 .............................................................................................. ,,
5.1主键及索引 .................................................................................................... ,,
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
名..................................................................................................................... ,,
5.2完整性约束的说明 ......................................................................................... ,,
5.3 check约束 .................................................................................................... ,,
5.4 Default默认值 ............................................................................................. ,,
5.5 触发器设计 ................................................................................................... ,, 第6章 数据库视图的设计 .......................................................................................... ,, 第7章 存储过程设计................................................................................................ ,, 总结............................................................................................................................ ,, 参考文献: ................................................................................................................. ,,
,
,
库存物资管理系统后台数据库
第1章 进行需求分析,编写数据字典 1.1系统功能要求设计:
(1)数据表以及数据量
1)有一个存放商品的仓库,每天都有商品出库和入库。
2)商品有1000多种,每种商品都有名称、生产厂家、型号、规格等。
3)出入库时必须填写出入库单据,单据包括商品名称、生产厂家、型号、规格、数量、日期、时间、入库单位(或出库单位)名称、送货(或提货)人姓名。
(2)设计要求:
1) 进行需求分析,编写数据字典。
-R图。 2) 设计E
3) 设计出入库单据的录入。
4) 实现按商品名称、出入库日期的查询。
5) 实现分别按日、月和年对出入库商品数量的统计。
(3)主要功能:
1)商品管理:增加商品、修改商品、删除商品、浏览商品
2)库存管理:
通过触发器实现商品的入库,同时完成对库存表的更新
通过触发器实现商品的出库,同时完成对库存表的更新
实现按商品名称查询库存数量、入库数量和出库数量
实现按入库日期查询入库数量、出库数量
实现分别按日、月和年对入库商品数量的统计
实现分别按日、月和年对入库商品数量的统计
1.2模块设计
库存物资管理大体可以分为3大块,如下图所示:首先是商品入库模块,该模块主要是描述把采购回来的商品,分类别的放置到指定的仓库中去,然后是商品出库模块,该模块主要描述从指定的仓库中拿出商品,最后是商品库存模块,
,
,
这个模块主要是记录商品的库存数量。
库存物资管理
商商商 品品品 入出库 库库存 模模模 块 块 块
1.3数据字典
表
商品表
仓库表
库存表
入库表
出库表
商品表
字段名 数据类型 是否可以为空 Is PK Is FK 商品编号 Char(5) not null yes no 商品名称 Varchar(50) not null no no 生产厂家 Varchar(50) not null no no 型号 Varchar(50) not null no no 规格 Varchar(20) not null no no
仓库表
字段名 数据类型 是否可以为空 Is PK Is FK 仓库号 Char(10) not null yes no 仓库名称 Varchar(50) not null no no
库存表
字段名 数据类型 是否可以为空 Is PK Is FK 商品编号 Char(5) not null yes yes 仓库号 char(10) not null yes yes
,
,
库存数量 int not null no no
入库表
字段名 数据类型 是否可以为空 Is PK Is FK 入库号 Char(10) not null yes no 商品编号 char(5) not null no yes 仓库号 Char(10) not null no yes 入库数量 int not null no no 入库日期 smalldatetime not null no no 入库单位名称 Varchar(50) null no no 送货人姓名 varchar(50) not null no no 性别 char(2) null no no
出库表
字段名 数据类型 是否可以为空 Is PK Is FK 出库号 Char(10) not null yes no 商品编号 char(5) not null no yes 仓库号 Char(10) not null no yes 出库数量 int not null no no 出库日期 smalldatetime not null no no 出库单位名称 Varchar(50) null no no 提货人姓名 varchar(50) not null no no 性别 char(2) null no no
,
,
第2章 面向对象分析和设计
类和对象设计如下:
商品
仓库 商品编号:char
商品名称:varchar
库存 生产厂家: varchar
规格:varchar 仓库号:char 商品编号:商品
型号:varchar 仓库名称:varchar 仓库号:仓库
库存数量:int 添加()
查询() 删除() 添加()
修改() 查询() 修改()
添加() 修改() 删除()
删除() 查询()
入库 出库
入库号:int 出库号:int
仓库号:仓库 仓库号:仓库
商品编号: 商品 商品编号: 商品 商品名称:商品 商品名称:商品
入库数量:int 出库数量:int
入库日期:出库日期: smalldatetime smalldatetime
入库单位名称:单位 出库单位名称:单位
送货人姓名:人 送货人姓名:人 性别:char 性别:char
添加() 添加()
删除() 修改() 查询() 删除()
修改() 查询()
,
,
第3章 逻辑结构设计
商品名称 分E-R图: 生产厂家 商品编号
商品 规格 型号
仓库
仓库名称 仓库号
库存关系:
n m
库存 商品 仓库
入库关系:
n m
入库 商品 仓库
出库关系:
n m
商品 出库 仓库
,
,
总E-R图:
商品编号 商品名称 生产厂家
商品 型号 规格
入库号 出库号 n n n
库 出库数量 入库数量 存 入库 出库 入库 数 入库日期 出库日期 量
送货人姓名 提货人姓名 m m m
入库单位名称 仓库 出库单位名称 性别
性别
仓库名称 仓库号
3.1类和对象向关系模式转换
关系模式如下:
商品(商品编号,商品名称,生产厂家,型号,规格)
商品编号为主键
仓库(仓库号,仓库名称)
仓库号为主键
库存(商品编号,仓库号,库存数量)
(商品编号,仓库号)为主键,同时也分别为外键 入库(入库号,商品编号,仓库号,入库数量,入库日期,入库时间,入库单位
名称,送货人姓名,性别)
(入库号)为主键,(商品编号,仓库号)为外键。 出库(出库号,商品编号,仓库号,出库数量,出库日期,出库时间,出库单位
名称,提货人姓名,性别)
(出库号)为主键,(商品编号,仓库号)为外键。
,
,,
第4章 数据库物理结构设计
4.1存取方法设计
对于库存物资管理系统来说,为了提高某些属性(如:商品编号,仓库号、入库号,入库日期,入库数量等)的查询速度,可以选择聚簇存取的方法,即把这些属性上具有相同值的元组集中放在连续的物理块上。这样在查询某种商品就会大大提高查询速度。因此,该系统中选择聚簇存取方法。
4.2存储结构设计
库存物资管理系统是一个大型复杂的计算机网络信息系统,采用基于浏览器/服务器(B/S),客户端/服务器(C/S)混合的应用体系结构来建设库存物资管理系统。数据库管理系统采用Microsoft 公司推出的SQL Server 2005 或以上版本,并用SQL进行数据库的建立和数据库中数据的维护和查询。 4.3物理设计
实现该设计的环境为Windows XP Professional + MS SQL Server 2005 或以上版本。
1、创建Material数据库
create database Material
on primary (
name=Material,
filename='C:\PrograFiles\MicrosoftSQLServer\MSSQL.2\MSSQL\DATA
\Material.mdf',
size=3MB,
maxsize=UNLIMITED,
filegrowth=1MB
)
log on (
,,
,, name=Material_LOG,
filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL.2\MSSQL\DA
TA\Material_LOG.ldf',
size=1MB,
filegrowth=10%)
2、创建商品表
create table 商品表
(商品编号char(5) not null primary key, 商品名称varchar(50) not null,
生产厂家varchar(50) not null,
型号varchar(20) not null, 规格varchar(20) not null) 3、创建仓库表
create table 仓库表
(仓库号char(10) not null primary key, 仓库名称varchar(50) not null,)
4、创建库存表
create table 库存表
(商品编号char(5) not null ,
仓库号 char(10) not null, 库存数量int not null,
primary key(商品编号,仓库号) , foreign key (商品编号) references 商品表(商品编号),
,,
,, foreign key (仓库号) references 仓库表(仓库号)) 5、创建入库表
create table 入库表
(入库号char(10) not null primary key,
商品编号char(5) not null,
仓库号char(10) not null,
foreign key (商品编号) references 商品表(商品编号), foreign key (仓库号) references 仓库表(仓库号),
入库数量int not null,
入库日期smalldatetime not null,
入库单位名称varchar(50) null,
送货人姓名varchar(10) not null,
性别char(2) default('男')check (性别in ('男''女')) 6、创建出库表
create table 出库表
(出库号char(10) not null primary key,
商品编号char(5) not null,
仓库号char(10) not null,
foreign key (商品编号) references 商品表(商品编号), foreign key (仓库号) references 仓库表(仓库号), 出库数量int not null,
出库日期smalldatetime not null,
出库单位名称varchar(50) null,
提货人姓名varchar(10) not null,
,,
,,
性别char(2) default('男')check (性别in ('男''女'))
,,
,,
第5章 数据完整性设计 5.1主键及索引
建立索引 表名 主键
create clustered index 商品表 商品表 (商品编号) on 商品表(商品编号)
create clustered index 仓库表
仓库表 (仓库号) on仓库表(仓库号)
create clustered index 入库表 入库表 (入库号) on 入库表(入库号)
create clustered index 出库表
出库表 (出库号) on 出库表(出库号)
5.2完整性约束的说明
1、商品表的商品编号10001~11000之间(便于查询的使用),商品名称不能取空; 该仓库的商品型号统一为DA0001~DA1000格式。
1)USE Material/*定义商品表唯一性的约束*/
GO
alter table 商品表add unique (商品名称,生产厂家,型号,规格)
2)USE Material/*定义型号的完整性约束条件:商品型号统一为DA0001-DA1000格式*/
GO
alter table 商品表
add constraint CS1 check(型号like'[D][A][0-1][0-9][0-9][0-9]')
,,
,,
5.3 check约束
在商品表中将型号进行check约束:check(型号like'[D][A][0-1][0-9][0-9][0-9]')
在入库表和出库表中将性别进行check约束:check (性别in ('男''女')) 5.4 Default默认值
在入库表和出库表中性别默认值设为:男。default('男')
5.5 触发器设计
1、通过触发器实现商品的入库,同时完成对库存表的更新 (1)入库
use Material
go
if exists (select* from sysobjects where name='rukuinsert') drop procedure rukuinsert
go
create procedure rukuinsert @rukuhao char(10),@shangpinbianhao
char(5),@cangkuhao char(10),@rukushuliang int,@rukuriqi
smalldatetime,@rukudanwei varchar(50),@songhuorenname
varchar(50) ,@sex char(2)
as
if(exists(select * from 入库表where 入库号=@rukuhao)) print('该商品已经存在,不能再次插入')
else
begin
,,
,, insert into 入库表
values( @rukuhao ,@shangpinbianhao,@cangkuhao,@rukushuliang,@ru
kuriqi ,@rukudanwei,@songhuorenname ,@sex ) print('插入成功')
end
(2)更新
USE Material
GO
create trigger rkb_into on 入库表 after update
as
begin
declare @a char(5),@b char(10) ,@d int select @a=商品编号from inserted select @b=仓库号from inserted select @d=入库数量from inserted update 库存表
set 库存数量=库存数量+@d
where 商品编号= @a and 仓库号=@b End
2、通过触发器实现商品的出库,同时完成对库存表的更新 (1)出库
use Material
,,
,,
go
if exists (select* from sysobjects where name='chukuinsert') drop procedure chukuinsert
go
create procedure chukuinsert @chukuhao char(10),@shangpinbianhao
char(5),@cangkuhao char(10),@chukushuliang int,@chukuriqi
smalldatetime,@chukudanwei varchar(50),@tihuorenname
varchar(50) ,@sex char(2)
as
if(exists(select * from 出库表where 出库号=@chukuhao)) print('该商品已经存在,不能再次插入')
else
begin
insert into 出库表
values( @chukuhao ,@shangpinbianhao,@cangkuhao,@chukushuliang,@chukuriqi ,@chukudanwei,@tihuorenname ,@sex ) print('插入成功')
end
(2)更新
USE Material
GO
create trigger ckb_into on 出库表
,,
,, after update
as
begin
declare @aa char(10),@bb char(5), @dd int select @aa=仓库号from deleted select @bb=商品编号from deleted select @dd=出库数量from inserted update 库存表
set 库存数量=库存数量-@dd
where 商品编号=@bb and 仓库号=@aa End
,,
,,
第6章 数据库视图的设计 1、建立商品表视图
USE Material
GO
create view 商品表视图
as
select *
from 商品表
2、创建商品库存视图来浏览库存中相同编号商品的信息,其中包括:商品编号、
商品名称和库存数量。
USE Material
GO
create view 商品库存视图(商品编号,商品名称,库存数量)
as
select 库存表.商品编号,商品表.商品名称,sum(库存表.库存数量)
from 商品表,库存表
where 商品表.商品编号=库存表.商品编号 group by 库存表.商品编号,商品表.商品名称
3、创建商品入库视图
USE Material
GO
create view 商品入库视图
,,
,, as
select 商品表.商品编号,商品名称,生产厂家,型号,规格,入库号,仓库号,入
库数量,入库日期
from 商品表, 入库表
where 商品表.商品编号=入库表.商品编号 4、创建商品出库视图
USE Material
GO
create view 商品出库视图
as
select 商品表.商品编号,商品名称,生产厂家,型号,规格,出库号,仓库号,出库
数量,出库日期
from 商品表, 出库表
where 商品表.商品编号=出库表.商品编号 5、创建商品入库仓库视图
USE Material
GO
create view 商品入库仓库视图
as
select 商品表.商品编号,商品名称,入库表.仓库号,仓库名称 from 商品表, 入库表,仓库表
where 商品表.商品编号=入库表.商品编号and 入库表.仓库号=仓库表.仓库
号
,,
,, 6、创建商品出库仓库视图
USE Material
GO
create view 商品出库仓库视图
as
select 商品表.商品编号,商品名称,出库表.仓库号,仓库名称 from 商品表, 出库表,仓库表
where 商品表.商品编号=出库表.商品编号and 出库表.仓库号=仓库表.仓库
号
,,
,,
第7章 存储过程设计
1、实现商品表的插入
use Material
go
if exists (select *from sysobjects where name='shangpininsert ') drop procedure shangpininsert go
create procedure shangpininsert @bianhao char(5),@name
varchar(50),@changjia varchar(50),@xinghao varchar(50),@guige
varchar(20)
as
if(exists(select * from 商品表where 商品编号=@bianhao)) print('该商品已经存在,不能再次插入')
else
begin
Insert into 商品表
values( @bianhao,@name,@changjia,@xinghao,@guige) print('插入成功')
End
exec shangpininsert '11111','毛巾','纺织有限公司','DA0111','30*70cm' 2、实现商品表的删除
use Material
,,
,,
go
if exists (select *from sysobjects where name='shangpindelete') drop procedure shangpindelete go
create procedure shangpindelete @bianhao char(5) as
if(exists(select 商品编号from 商品表where 商品编号=@bianhao))
begin
delete
from 商品表
where 商品编号=@bianhao
print('删除成功,该商品已被删除')
end
else print('该商品不存在,不能删除')
exec shangpindelete '12200'
3、按商品名称查询库存数量
use Material
go
if exists (select *from sysobjects where name='shangpin_info1') drop procedure shangpin_info1 go
create procedure shangpin_info1 @shangpinname varchar(50)
,,
,,
as
select a.商品编号,商品名称,b.库存数量 from 商品表a join 库存表b
on a.商品编号=b.商品编号
where 商品名称=@shangpinname exec shangpin_info1 'LG冰箱'
4、按商品名称查询入库数量
use Material
go
if exists (select *from sysobjects where name='ruku_info10') drop procedure ruku_info10 go
create procedure ruku_info10 @shangpinname varchar(50) as
select 商品表.商品编号,商品名称,入库数量
from 商品表join 入库表
on 商品表.商品编号=入库表.商品编号
where 商品名称=@shangpinname exec ruku_info10 'acer宏基笔记本电脑'
5、按商品名称查询出库数量
use Material
go
if exists (select *from sysobjects where name='chuku_info11')
,,
,, drop procedure chuku_info11 go
create procedure chuku_info11 @shangpinname varchar(50)
as
select 商品表.商品编号,商品名称,出库数量 from 商品表join 出库表
on 商品表.商品编号=出库表.商品编号
where 商品名称=@shangpinname
exec chuku_info11 'msi微星电脑主板'
6、按入库日期查询入库数量
use Material
go
if exists (select *from sysobjects where name='ruku_info2')
drop procedure ruku_info2 go
create procedure ruku_info2 @rukudate smalldatetime
as
select 商品表.商品编号,商品名称,入库日期,入库数量 from 商品表join 入库表
on 商品表.商品编号=入库表.商品编号
where 入库日期=@rukudate
exec ruku_info2 '2012-3-5 0:00'
,,
,,
7、按出库日期查询出库数量
use Material
go
if exists (select *from sysobjects where name='chuku_info3') drop procedure chuku_info3 go
create procedure chuku_info3 @chukudate smalldatetime
as
select 商品表.商品编号,商品名称,出库日期,出库数量 from 商品表join 出库表
on 商品表.商品编号=出库表.商品编号
where 出库日期=@chukudate
exec chuku_info3 '2010/2/16 0:00:00'
8、按年对入库商品数量的统计
use Material/*按年对入库商品数量的统计*/
go
if exists (select *from sysobjects where name='ruku_info4') drop procedure ruku_info4
go
create procedure ruku_info4 @start_date smalldatetime,@end_date
smalldatetime
as
select 商品名称,sum(入库数量) as '总入库数量'
,,
,,
from 商品表join 入库表
on 商品表.商品编号=入库表.商品编号
where 入库日期between @start_date and @end_date group by 商品名称
exec ruku_info4 '2010-1-1','2010-12-31' 9、按年对出库商品数量的统计
use Material/*按年对出库商品数量的统计*/ go
if exists (select *from sysobjects where name='chuku_info5') drop procedure chuku_info5 go
create procedure chuku_info5 @start_date smalldatetime,@end_date
smalldatetime
as
select 商品名称,sum(出库数量) as '出总库数量' from 商品表join 出库表
on 商品表.商品编号=出库表.商品编号
where 出库日期between @start_date and @end_date
group by 商品名称
exec chuku_info5 '2012-1-1','2012-12-31' 10、按月对入库商品数量的统计
use Material/*按月对入库商品数量的统计*/
,,
,,
go
if exists (select *from sysobjects where name='ruku_info6') drop procedure ruku_info6
go
create procedure ruku_info6 @start_date smalldatetime,@end_date
smalldatetime
as
select 商品名称,sum(入库数量) as '总入库数量'
from 商品表join 入库表
on 商品表.商品编号=入库表.商品编号
where 入库日期between @start_date and @end_date group by 商品名称
exec ruku_info6 '2010-1-1','2010-1-31' 11、按月对出出库商品数量的统计
use Material/*按月对出库商品数量的统计*/
go
if exists (select *from sysobjects where name='chuku_info7') drop procedure chuku_info7
go
create procedure chuku_info7 @start_date smalldatetime,@end_date
smalldatetime
as
,,
,, select 商品名称,sum(出库数量) as '出总库数量' from 商品表join 出库表
on 商品表.商品编号=出库表.商品编号
where 出库日期between @start_date and @end_date
group by 商品名称
exec chuku_info7 '2012-7-1','2012-7-31'
12、按日对入库商品数量的统计
use Material/*按日对入库商品数量的统计*/ go
if exists (select *from sysobjects where name='ruku_info8')
drop procedure ruku_info8 go
create procedure ruku_info8 @start_date smalldatetime,@end_date
smalldatetime
as
select 商品名称,sum(入库数量) as '总入库数量' from 商品表join 入库表
on 商品表.商品编号=入库表.商品编号
where 入库日期between @start_date and @end_date group by 商品名称
13、按日对出库商品数量的统计
use Material/*按日对出库商品数量的统计*/ go
,,
,,
if exists (select *from sysobjects where name='chuku_info9') drop procedure chuku_info9 go
create procedure chuku_info9 @start_date smalldatetime,@end_date
smalldatetime
as
select 商品名称,sum(出库数量) as '出总库数量' from 商品表join 出库表
on 商品表.商品编号=出库表.商品编号
where 出库日期between @start_date and @end_date group by 商品名称
exec chuku_info9 '2010-2-16','2010-2-16'
,,
,,
总结
通过这个库存物料管理的数据库,我学到了很多东西,首先是我必须学会去查找有关物料管理这个系统有关的组成部分和相关的需求,只有弄懂了这些才能得出一个比较合理的结果。
需求分析是最重要的一步,下面的逻辑分析、关系表和表之间都要在这个基础上来设计,由于时间关系,不能做到很完善,包括E-R图的构思。设计表的属 性包括商品属性要用到多少个字符,时间属性用datetime还是smalldatetime,因为想细到分钟,所以就决定用smalldatetime。
还有数据库要求数据量充足,主表不能少于一千条数据,数据较多,做起来比较繁琐,录数据将就是一个很大的工程了,虽然这次数据库课程设计要求只做后台,但是由于也要完成一个完整的数据库系统功能,所以工作量还是很大的。做数据库不能急于求成,要理清自己的思路,以免半途而废,从新做。
通过这次数据库课程设计不仅使我对以前学过的知识的巩固,也使我学到了很多新的知识,对整个管理系统有了一个清楚的认识。最重要的是与同学讨论了不少问题,也学到了很多的,还有通过查找资料,也学到了很多。
参考文献:
, 郑阿奇等. SQLserver实用教程(第3版)[M] . 电子工业出版社,2009
,,
,,
,,
,,
《大型数据库课程设计》报告评分
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
选题合理,功能简单 (D)
有一定的工作量和实用价值 (C) 选题及功
能设计 功能设计丰富,有一定的难度系数 (B)
功能设计合理全面,能体现数据库的存储和整理数据 的功能 (A)
具备基本的数据表,数据量较少,但能够实现系统基 本需要 (D)
具备基本的数据表,数据量适中,实现了一定的数据 数据表和完整性 (C) 数据量 有多个数据表,数据量适中,有完善的数据完整性(B)
有多个数据表,数据量充足,具有较强的数据安全性 和数据完整性 (A)
具备基本的数据表,有主外键约束 (D)
创建了若干种的数据库对象,并加以利用 (C) 数据库对
象 在实际应用中合理利用了各类数据库对象 (B)
具有身份验证、数据备份等较复杂的数据管理功能(A)
利用存储过程实现了各种查询功能 (D)
除查询功能,还实现了各种数据操作功能 (C) 功能实现
在上一条基础上,还实现了数据统计汇总功能 (B)
合理利用函数、存储过程、触发器实现各种数据查询、 操作、管理功能 (A)
完成设计报告,阐述了系统功能,结构较完整 (D)
开题报告反映设计思路,结构完整,格式较规范 (C) 设计报告 报告内容完整,图表使用准确,格式清晰,功能描述 详尽 (B)
报告内容完整,图表使用准确,描述详细,代码阐述 清楚,反映系统执行流程 (A) 教师签字: 总评成绩:
,,
,,
,,