课程设计报告
课程设计题目:仓库管理系统数据库的设计与实现
专 业:软件工程专业
班 级:
姓 名:
学 号:
指导教师:
20## 年 11月 27日
仓库管理系统数据库设计与实现
一.实验时间、地点
时间:第十三周(11月22日——26日)
地点:软件楼304
二.实验目的
通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能力。
三、课程设计要求:
1.对各个系统进行系统功能需求分析
2. 数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图(局部和整体E-R图)
3. 设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定
4. 通过企业管理器或是查询分析器实现各个二维关系(建议最好用SQL代码实现),要求建立相关的索引
5. 根据系统功能需求设计相应的查询视图
6. 要求根据系统功能需求建立存储过程
7. 根据功能需求建立相应的触发器以保证数据的一致性
8. 通过建立用户和权限分配实现数据库一定的安全性,考虑数据库的备份与恢复(此内容选作)
四.仓库管理系统实验要求
描述:设计一个仓库管理系统,实现下列功能:
1.零件信息登记(包括种类,名称和库存数量等信息);
2.零件进库登记(包括种类,名称和库存数量等信息);
3.零件出库登记(包括种类,名称和库存数量等信息);
五.实现思路
1.关系模式
零件信息表(零件编号,零件名,颜色,重量,单价,数量,零件类型号,生产商号)
生产商情况表(生产商号,生产商名,生产商地址,生产商电话)
入库登记表(零件编号,零件名,颜色,入库数量,零件类型,生产商号,入库时间)
出库登记表(零件编号,零件名,出库数量,出库性质,提货人员,出库时间)
零件类型信息表(零件类型号,类型,用途)
2.设计思路
仓库管理系统设计了五个二维表,他们的设计表如下
(1)零件信息设计表 (2)生产商情况设计表
(3)入库登记设计表 (4)出库登记设计表
(5)零件类型信息设计表
3.仓库管理系统全局E—R图
六.实现过程
create database 仓库管理系统
on
(
name=仓库_dat,
Filename='e:\microsoft SQL Server\MSSQL\Date\仓库.mdf',
Size=10,
Maxsize=150
)
Log on
(
name=仓库_log,
Filename='e:\microsoft SQL Server\MSSQL\Date\仓库.ldf',
Size=10,
Maxsize=80
)
create table 零件信息表
(零件编号 char(10) primary key,
零件名 char(10) not null,
颜色 char(8),
重量 char(6),
单价 money constraint 单价_Chk check(单价 between 30 and 300),
数量 int,
零件类型号 char(10),
生产商号 char(6));
select * from 零件信息表
/***创建并查询零件信息表索引***/
create unique index 零件信息_index on 零件信息表(零件编号)
exec Sp_helpindex 零件信息表
create table 生产商情况表
(生产商号 char(6) primary key ,
生产商名 varchar(16) not null,
生产商地址 varchar(40),
生产商电话 char(12));
select * from 生产商情况表
/***创建并查询生产商信息索引***/
create index 生产商信息_index on 生产商情况表(生产商号)
exec Sp_helpindex 零件信息表
create table 零件类型信息表
(零件类型号 char(10) primary key,
类型 char(10),
用途 char(10));
select * from 零件类型信息表
/***创建并查询零件类型信息索引***/
create index 零件类型信息表_index on 零件类型信息表(零件类型号)
exec Sp_helpindex 零件类型信息表
create table 入库登记表
(零件编号 char(10),
零件名 char(10) not null,
颜色 char(8),
入库数量 int,
零件类型 char(8),
生产商号 char(6),
入库时间 datetime);
select * from 入库登记表
/***创建并查询入库登记表索引***/
create index 入库登记表_index on 入库登记表(零件编号)
exec Sp_helpindex 入库登记表
create table 出库登记表
(零件编号 char(10),
零件名 char(10),
出库数量 int,
出库性质 char(8) constraint 出库性质_Chk check(出库性质 in('售出','借出')),
提货人员 char(12),
出库时间 datetime);
select * from 出库登记表
/***创建出库登记表索引***/
create index 入库登记表_index1 on 出库登记表(零件编号)
create index 入库登记表_index2 on 出库登记表(出库数量)
create index 入库登记表_index3 on 出库登记表(出库时间)
/***查询零件名为“半导体”的信息***/
select 零件编号,零件名,颜色,重量,单价,数量,生产商情况表.生产商名,生产商地址,生产商电话,零件类型信息表.类型,零件类型信息表.用途
from 零件信息表,生产商情况表,零件类型信息表
where(零件信息表.零件类型号=零件类型信息表.零件类型号
and 生产商情况表.生产商号=零件信息表.生产商号
and 零件名='半导体')
查询结果为:
/***创建零件信息表视图***/
create view v_lj as select * from 零件信息表
/***创建生产商情况表视图***/
create view v_sc as select * from 生产商情况表
create view select_零件信息表 as
select 零件信息表.零件编号,零件信息表.零件名,零件信息表.零件类型号 from 零件信息表
inner join 零件类型信息表 on 零件信息表.零件类型号 = 零件类型信息表.零件类型号
/***创建数量在70—200之间的规则,并绑定规则***/
create rule 数量_rule
as @数量>=70 and @数量<=200
exec sp_helptext'数量_rule'
exec sp_bindrule'数量_rule','零件信息表.数量'
exec sp_unbindrule'零件信息表.数量'
drop rule 数量_rule
/***创建向表中添加信息的存储过程***/
create procedure insert_零件信息
( @零件编号 char(10),
@零件名 char(10),
@颜色 char(8),
@重量 char(6),
@单价 money,
@数量 int,
@零件类型号 char(10),
@生产商号 char(6)
)
as
insert into 零件信息表 values(@零件编号,@零件名,@颜色,@重量,@单价,@数量,@零件类型号,@生产商号)
exec insert_零件信息 @零件编号='0013',@零件名='鼠标',@颜色='红色',@重量='1',@单价=65,@数量='237',@零件类型号='type3',@生产商号='N0010'
select * from 零件信息表
/***删除存储过程***/
drop procedure insert_零件信息
/***创建触发器并向利用触发器向表内添加信息***/
create trigger ChangDisplay
on 零件信息表
for insert
as
select * from 零件信息表
insert into 零件信息表 values('0009','键盘','黑色','3',80,'210','type3','N010')
七.实验总结
本系统是一个面向小型企业,具有一定实用性的数据库仓库管理系统。它主要完成对零件仓库的一系列管理,包括入库、出库、库存以及供应商信息管理。本系统采用数据库SQL来完成整个系统的设计。在零件入库、出库和库存三者之间建立了良好的链接关系,某一部分地修改均会自动引发系统对与其相关的部分进行连锁修改。
系统在设计过程中不可避免地遇到了各种各样的问题,由于整个系统完全都是由个人设计的,有关SQL的许多细节问题都要靠自己去摸索,加之本人水平有限,并没有完全地理解SQL的强大功能,而且还存在着许多不足之处。如:受开发条件和开发时间的限制,本系统能存储的数据量也有一定限制,并没有发挥出SQL在数据库方面的优势;报表打印功能尚不够全面完善,不能实现动态报表,在一些数据输入时没有及时的进行数据格式校验,不能保证数据输入的绝对正确性。由于时间关系,系统功能实现不够完善,使用不是很方便,比如,没有实现多条记录的连锁删除和添加以及数据的导入功能。这些都是需要完善的地方,该系统离实际使用也还有相当的距离,需要我进行不断地补充和完善。
通过本次毕业设计我学到了不少新的东西,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习。只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。
第二篇:仓库管理系统项目开发总结
仓库管理系统项目开发总结
一. 实际开发结果
1. 产品:
最终制成的产品为仓库信息管理系统,包括:
2.主要功能和性能:
仓库信息管理系统包含系统管理、产品信息管理、入库管理、出库管理、库存信息管理、系统背景及背景音乐管理、系统帮助等功能。
系统管理主要是为了方便系统管理员管理系统的操作人员以及系统用户登录。
产品信息管理主要用于新产品信息的添加、旧产品信息的删除以及部分产品信息的更新。
入库管理主要是完成对数据库中入库信息表和库存信息表中产品相关信息添加、删除以及更新操作。
出库管理主要是完成对数据库中出库信息表和库存信息表中产品相关信息添加删除以及更新操作。
库存信息管理主要完成对数据库库存信息表中产品相关信息添加删除以及更新操作。
系统背景及背景音乐管理主要是为了调节系统使用者心情的。
系统帮助主要列出一些项目开发的信息。包括开发时间、相关人员以及系统版本号。
2. 基本流程:
3.开发工作评价:
⑴对生产效率的评价
给出实际生产效率,包括:
a.程序的平均生产效率,即每人天生产的300行数;
b.文件的平均生产效率,即每人月生产的2千字数
⑵对产品质量的评价
说明在测试中检查出来的程序编制中的错误发生率,即每千条指令(或语句)中的错误指令数1条
⑶对技术方法的评价
本项目运用Visual Studio和SQLserver2000开发。此系统使用的是框架结构,此框架在开发一些中小软件是比较实用的。但是我们要是可以开发出自己的框架,把一些通用的功能开发到框架中。这样以来,在以后的系统开发中,针对系统中一些通用的功能就不需要再开发,从而也可以很好的提高我们的开发效率;减少很多维护费用。使我们的技术不断的更加成熟
⑷出错原因的分析
主要由于误操作引起的
⑸经验与教训
通过本次课程设计,加深了对软件开发流程的深入理解。这是第一次严格的按照软件工程开发的标准开发项目。在课程设计过程中,认真编写软件开发文档和程序代码。代码编写完后,再认真测试,检查系统的不足之处。由于之前开发系统都没有编写软件开发文档的习惯,因此,在编写软件开发文档的过程中遇到了一些问题,但是通过查阅资料等途径解决了。
通过本次课程设计,深刻体会到软件工程文档编写的重要性,软件工程文档是指导我们进行项目开发的指挥棒。编写好一份高效可行的软件工程文档对软件开发非常重要。还有,对系统的需求分析非常重要,需求的变成直接影响项目的开发进度。这次课程设计首先对系统的需求理解不透彻,走了一点弯路,浪费了一些时间。在以后的软件开发过程中尽量吸取本次课程设计的经验教训,提高项目开发效率。