数据库仓库管理系统.docx
《数据库仓库管理系统.docx》由会员分享,可在线阅读,更多相关《数据库仓库管理系统.docx(26页珍藏版)》请在冰豆网上搜索。
数据库仓库管理系统
课程设计报告
课程设计题目:
仓库管理系统数据库的设计与实现
专业:
软件工程
班级:
学号:
姓名:
指导教师:
2012年12月1日
目录
一、实验目的·········································(3)
二、设计要求··········································(3)
三、实验思路··········································(3)
四、实验过程(源代码)·····································(6)
五、实验总结··········································(19)
六、心得体会··········································(20)
一、目的:
通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能力。
二、课程设计要求:
1.对各个系统进行系统功能需求分析
描述:
设计一个仓库管理系统,实现下列功能:
.零件信息登记(包括种类,名称和库存数量等信息);
.零件进库登记(包括种类,名称和库存数量等信息);
.零件出库登记(包括种类,名称和库存数量等信息);
三、实现思路
①需求分析:
由于货物的种类数量的纷繁复杂,比较难管理,给工作人员的工作带来诸多不便.此系统的开发就是专门解决工作人员在这些烦琐的问题。
此系统适用于仓库,它是比较完善的系统管理软件。
此系统的采用方便了仓库管理人员对仓库的管理,对管理人员的工作起到重要作用。
通过本系统软件,能帮助工作人员利用计算机,快速方便的对仓库的货物进行管理、输入、输出、查找等操作,将货物的管理具体化、直观化、合理化。
通过该系统所记录的数据,可以使仓库管理者对货物的进出情况管理的更清楚,使仓库管理系统更完善,减轻工作人员的工作负担,使工作简化,从而对货物进行更井井有条的管理。
主要功能如下:
1.零件信息登记2.零件信息修改3.零件信息删除4.零件信息查询
5.入库信息登记6.入库操作7.入库信息修改8入库信息删除9.入库信息查询10.出库信息登记11.出库库操作12.出库信息修改13.出库信息删除14.出库信息查询15.显示触发器16.各功能创建视图查询
E-R图:
创建表:
1.仓库零件信息表(产品编号【主键】,名称【不为空】,种类【不为空】,入库价格【为空】,出库价格【为空】,库存【为空】)
2.入库信息表(产品编号【主键】,产品名称【不为空】,货主名称【不为空】,入库数量【为空】,入库价格【为空】,货主联系电话【为空】)
3.出库信息表(产品编号【主键】,产品名称【不为空】,客户名称【不为空】,出库数量【为空】,出库价格【为空】,客户联系电话【为空】)
具体操作:
仓库零件信息表创建:
createtable仓库零件信息表
(
产品编号intnotnullprimarykey,
产品名称varchar(20)notnull,
种类varchar(15)notnull,
入库价格int,
出库价格int,
库存int
)
列名
字段类型
长度
允许为空
产品编号
int
10
Primarykey
产品名称
Varchar
10
Notnull
种类
Varchar
10
Notnull
入库价格
Int
10
Notnull
出库价格
Int
10
Notnull
库存
Int
200
Notnull
入库信息表创建
createtable入库信息表
(
产品编号intnotnullprimarykey,
产品名称varchar(20)notnull,
货主名称varchar(20)notnull,
入库数量int,
入库价格int,
货主联系电话int,
)
列名
字段类型
长度
允许为空
产品编号
Int
10
Notnull
产品名称
Varchar
20
Notnull
货主名称
Varchar
20
Notnull
入库数量
Int
13
Notnull
入库价格
Int
10
Notnull
货主联系电话
Int
20
Y
出库信息表创建
createtable出库信息表
(
产品编号intnotnullprimarykey,
产品名称varchar(20)notnull,
客户名称varchar(20)notnull,
出库数量int,
出库价格int,
客户联系电话int,
)
列名
字段类型
长度
允许为空
产品编号
int
20
primarykey
产品名称
varchar
20
notnull
客户名称
varchar
20
notnull
出库数量
int,
20
Y
出库价格
int,
20
Y
客户联系电话
int,
20
Y
四、实现过程
产品编号
种类
产品名称
入库价格
出库价格
库存
1
电脑零件
CPU
1500
1800
20
2
电视零件
CPU
1000
1200
20
3
电脑零件
显示屏
1300
1500
20
4
电脑零件
显卡
800
1000
20
---仓库管理系统数据库查询与设计---
/*************仓库零件信息表创建******************/
createtable仓库零件信息表
(
产品编号intnotnullprimarykey,
名称varchar(20)notnull,
种类varchar(15)notnull,
入库价格int,
出库价格int,
库存int
)
insertinto仓库零件信息表values(1,'电脑零件','CPU',1500,1800,20)
insertinto仓库零件信息表values(2,'电视零件','CPU',1000,1200,20)
insertinto仓库零件信息表values(3,'电脑零件','显示屏',1300,1500,20)
insertinto仓库零件信息表values(4,'电脑零件','显卡',800,1000,20)
------droptable仓库零件信息表
实现如下:
/*************入库信息表创建***************/
createtable入库信息表
(
产品编号intnotnull,
产品名称varchar(20)notnull,
货主名称varchar(20)notnull,
入库数量int,
入库价格int,
货主联系电话int
)
insertinto入库信息表values(1,'电脑零件','张三',10,1500,123456)
insertinto入库信息表values(2,'电视零件','李四',10,1000,234567)
insertinto入库信息表values(3,'电脑零件','王二',10,1300,7758520)
insertinto入库信息表values(4,'电脑零件','阿三',10,800,3344334)
--droptable入库信息表
实现如下:
/*************出库信息表创建******************/
createtable出库信息表
(
产品编号intnotnullprimarykey,
产品名称varchar(20)notnull,
客户名称varchar(20)notnull,
出库数量int,
出库价格int,
客户联系电话int
)
insertinto出库信息表values(1,'电脑零件','胡二',10,1800,222222)
insertinto出库信息表values(2,'电视零件','刘一',10,1500,4444444)
insertinto出库信息表values(3,'电脑零件','钟三',10,1000,55555)
----droptable出库信息表
实现如下:
--查询所建的表
select*from仓库零件信息表
select*from入库信息表
select*from出库信息表
/*************索引创建******************/
createuniqueindex货主索引on入库信息表(货主联系电话)--dropindex入库信息表.货主
createuniqueindex零件索引on仓库零件信息表(产品编号)--dropindex仓库零件信息表.零件
createuniqueindex客户索引on出库信息表(客户联系电话)--dropindex出库信息.客户
---创建视图
createviewvi_0
as
select仓库零件信息表.产品编号,产品名称,货主名称,入库数量,入库信息表.入库价格,货主联系电话,出库价格,种类,库存
from入库信息表,仓库零件信息表
where入库信息表.产品编号=仓库零件信息表.产品编号--该视图为联系入库信息表和仓库零件信息表的查询
实现如下:
----------零件信息登记----------
createprocedureseve
(
@产品编号int,
@名称varchar(20),
@种类varchar(15),
@入库价格int,
@出库价格int,
@库存int
)
as
insertinto仓库零件信息表values(@产品编号,@名称,@种类,@入库价格,@出库价格,@库存)
execseve@产品编号=11,@名称='AMD',@种类='显卡',@入库价格=900,@出库价格=1100,@库存=30--查看插入产品编号为11的信息在原有零件中
实现如下:
---------零件信息修改-----------
createprocedurepro_update
(
@产品编号int,
@名称varchar(20),
@种类varchar(15),
@入库价格int,
@出库价格int,
@库存int
)
as
update仓库零件信息表
set名称=@名称,种类=@种类,入库价格=@入库价格,出库价格=@出库价格,库存=@库存
where产品编号=@产品编号
update出库信息表
set产品名称=@名称,出库价格=@出库价格
where产品编号=@产品编号
update入库信息表
set产品名称=@名称,入库价格=@入库价格
where产品编号=@产品编号
execpro_update@产品编号=4,@名称='修改',@种类='已修改',@入库价格=500,@出库价格=700,@库存=25--查看产品编号为4的修改情况
实现如下:
----------零件信息删除--------------
createprocedurepro_delete
(
@产品编号int
)
as
delete
from仓库零件信息表
where产品编号=@产品编号
execpro_delete@产品编号=11
实现如下:
---------零件信息查询---------
createprocedurepro_select
(
@产品编号int
)
as
select*
from仓库零件信息表
where产品编号=@产品编号
execpro_select@产品编号=1--查询产品编号为1的信息
实现如下:
----------入库信息表登记------------
createprocedurepro_1
(
@产品编号int,
@产品名称varchar(20),
@货主名称varchar(20),
@入库数量int,
@入库价格int,
@货主联系电话int
)
as
insertinto入库信息表values(@产品编号,@产品名称,@货主名称,@入库数量,@入库价格,@货主联系电话)
execpro_1@产品编号=5,@产品名称='AMD',@货主名称='小二',@入库数量=20,@入库价格=900,@货主联系电话=767876
--登记产品编号为5的信息查看
实现如下:
---------------入库操作-------------
createprocpro_7111
(
@产品编号int,
@产品名称varchar(20),
@货主名称varchar(20),
@入库数量int,
@入库价格int,
@货主联系电话int,
@出库价格int,
@种类varchar(12))
as
if((select产品编号from仓库零件信息表where产品编号=@产品编号)isnotnull)--如果原有产品在仓库中存在则执行编号为5的,没有则执行else语句
begin
update仓库零件信息表
set库存=库存+@入库数量
where产品编号=@产品编号
insertinto入库信息表values(@产品编号,@产品名称,@货主名称,@入库数量,@入库价格,@货主联系电话)
end
else
begin
insertinto入库信息表values(@产品编号,@产品名称,@货主名称,@入库数量,@入库价格,@货主联系电话)
insertinto仓库零件信息表values(@产品编号,@产品名称,@种类,@入库价格,@出库价格,@入库数量)
end
execpro_7111@产品编号=5,@产品名称='ss',@货主名称='ww',@入库数量=31,@入库价格=1500,@货主联系电话=3232323,@出库价格=2323,@种类='fds'
--如果原有仓库有的产品,则插入此行,查看产品编号为5的数量变化
实现如下:
execpro_711@产品编号=12,@产品名称='ss',@货主名称='ww',@入库数量=31,@入库价格=1500,@货主联系电话=3232323,@出库价格=2323,@种类='fds'
--如果原有仓库没有的产品,则插入此行,查看产品编号为12的数量变化,重新查看仓库的数量
实现如下:
-----------入库信息修改-----------
createprocedurepro_2
(
@产品编号int,
@产品名称varchar(20),
@货主名称varchar(20),
@入库数量int,
@入库价格int,
@货主联系电话int
)
as
update入库信息表
set产品名称=@产品名称,货主名称=@货主名称,入库数量=@入库数量,入库价格=@入库价格,货主联系电话=@货主联系电话
where产品编号=@产品编号
update出库信息表
set产品名称=@产品名称
where产品编号=@产品编号
update仓库零件信息表
set名称=@产品名称,入库价格=@入库价格
where产品编号=@产品编号
select*
from入库信息表
execpro_2@产品编号=12,@产品名称='修改',@货主名称='已修改',@入库数量=20,@入库价格=900,@货主联系电话=767876
--利用存储过程查看产品编号为12的修改情况
实现如下:
--------------入库信息删除------------
createprocpro_3
(
@产品编号int
)
as
delete
from入库信息表
where产品编号=@产品编号
execpro_3@产品编号=4
实现如下:
--------------入库信息查询--------------
createprocedurepro_42
(
@产品编号int
)
as
select*
from入库信息表
where产品编号=@产品编号
execpro_42@产品编号=1
实现如下:
-------------出库信息登记------------
createprocedurepro_5
(
@产品编号int,
@产品名称varchar(20),
@客户名称varchar(20),
@出库数量int,
@出库价格int,
@客户联系电话int
)
as
insertinto出库信息表values(@产品编号,@产品名称,@客户名称,@出库数量,@出库价格,@客户联系电话)
execpro_5@产品编号=4,@产品名称='AMD',@客户名称='小三',@出库数量=10,@出库价格=1100,@客户联系电话=98766
--登记编号为5的产品出库情况
实现如下:
-------------出库操作-------------
createprocedurepro_111
(
@产品编号int,
@产品名称varchar(20),
@出库价格int,
@客户名称varchar(20),
@出库数量int,
@客户联系电话int
)
as
if((select产品编号from仓库零件信息表where产品编号=@产品编号)isnull)
print'仓库没有该货物'--如果原有仓库没有客户需要的产品直接执行编号为8的语句插入如果有则执行else语句查看出库后剩余的产品数量执行编号为4的语句
else--
begin
insertinto出库信息表values(@产品编号,@产品名称,@客户名称,@出库数量,@客户名称,@客户联系电话)
update仓库零件信息表
set库存=库存-@出库数量
where仓库零件信息表.产品编号=@产品编号
end
execpro_111@产品编号=8,@产品名称='ss',@客户名称='123',@出库数量=31,@出库价格=1500,@客户联系电话=3232323
--如果原有仓库没有产品编号为8的执行此行
实现如下:
execpro_111@产品编号=4,@产品名称='ss',@客户名称='123',@出库数量=31,@出库价格=2323,@客户联系电话=3232323
--如果原有仓库有产品编号为4的执行此行查询
实现如下:
------------出库信息修改----------------
createprocedurepro_6
(
@产品编号int,
@产品名称varchar(20),
@客户名称varchar(20),
@出库数量int,
@出库价格int,
@客户联系电话int
)
as
update入库信息表
set产品名称=@产品名称
where产品编号=@产品编号
update出库信息表
set产品名称=@产品名称,客户名称=@客户名称,出库数量=@出库数量,出库价格=@出库价格,客户联系电话=@客户联系电话
where产品编号=@产品编号
update仓库零件信息表
set名称=@产品名称,出库价格=@出库价格
where产品编号=@产品编号
execpro_6@产品编号=5,@产品名称='修改',@客户名称='已修改',@出库数量=10,@出库价格=1100,@客户联系电话=98766
--如果需要修改出库的产品信息执行编号为5的
实现如下:
------------出库信息删除--------------
createprocpro_7
(
@产品编号int
)
as
delete
from出库信息表
where产品编号=@产品编号
execpro_3@产品编号=3
实现如下:
--------------出库信息查询--------------
createprocedurepro_8--dropprocedurepro_8
(
@产品编号int
)
as
select*
from出库信息表
where产品编号=@产品编号
execpro_8@产品编号=1
实现如下:
---------------显示触发器-------------在执行存储过程之前执行触发器方便查看零件入库出库的更新添加修改删除
createtriggertri_1
on仓库零件信息表
forinsert
as
select*
from仓库零件信息表
createtriggertri_2
on仓库零件信息表
fordelete
as
select*
from仓库零件信息表
createtriggertri_3
on仓库零件信息表
forupdate
as
select*
from仓库零件信息表
createtriggertri_4
on入库信息表
forinsert
as
select*
from入库信息表
createtriggertri_5
on入库信息表
fordelete
as
select*
from入库信息表
createtriggertri_6
on入库信息表
forupdate
as
select*
from入库信息表
createtriggertri_7
on出库信息表
forinsert
as
select*
from出库信息表
createtriggertri_8
on出库信息表
fordelete
as
select*
from出库信息表
createtriggertri_9
on出库信息表
forupdate
as