数据库课程设计 仓库管理系统数据库的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

仓库管理系统数据库设计与实现
一.实验时间、地点
时间:第十三周(11月21日——25日)
地点:软件楼305
二.实验目的
通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能力。

三、课程设计要求:
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,
单价 money constraint 单价_Chk check(单价 between 80 and 660), 数量 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);
select * from 零件信息设计类型表
/***创建并查询零件类型信息索引***/
create index 零件类型信息表_index on 零件类型信息表(零件类型号) exec Sp_helpindex 零件类型信息表
create table 入库登记表
(零件编号 char(10),
零件名 char(10) not null,
入库数量 int,
零件类型 char(8),
生产厂家号 char(6),
入库时间 datetime);
select * from 入库登记设计表
/***创建并查询入库登记表索引***/
create index 入库登记表_index on 入库登记表(零件编号)
exec Sp_helpindex 入库登记表
create table 出库登记表
(零件编号 char(10),
零件名 char(10),
出库数量 int,
出库时间 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 零件信息设计表.零件类型号 = 零件类型信息设计表.零件类型号
/***创建数量在200—900之间的规则,并绑定规则***/
create rule 数量_rule
as @数量>=200 and @数量<=900
exec sp_helptext'数量_rule'
exec sp_bindrule'数量_rule','零件信息表.数量'
exec sp_unbindrule'零件信息表.数量'
drop rule 数量_rule
/***创建向表中添加信息的存储过程***/
create procedure insert_零件信息
( @零件编号 char(10),
@零件名 char(10),
@单价 money,
@数量 int,
@零件类型号 char(10),
@生产厂家号 char(6)
)
as
insert into 零件信息表 values(@零件编号,@零件名,@单价,@数量,@零件类型号,@生产厂家号)
exec insert_零件信息 @零件编号='001',@零件名='鼠标',@单价=80,@数量='1000',@零件类型号='L1',@生产厂家号='01'
select * from 零件信息表
/***删除存储过程***/
drop procedure insert_零件信息
/***创建触发器并向利用触发器向表内添加信息***/
create trigger ChangDisplay
on 零件信息表
for insert
as
select * from 零件信息表
insert into 零件信息表 values('002','数据线',80,'800','L2','06')
七.实验总结
本系统是一个面向小型企业,具有一定实用性的数据库仓库管理系统。

它主要完成对零件仓库的一系列管理,包括入库、出库、库存以及供应商信息管理。

本系统采用数据库SQL来完成整个系统的设计。

在零件入库、出库和库存三者之间建立了良好的链接关系,某一部分地修改均会自动引发系统对与其相关的部分进行连锁修改。

系统在设计过程中不可避免地遇到了各种各样的问题,由于整个系统完全都是由个人设计的,有关SQL的许多细节问题都要靠自己去摸索,加之本人水平有限,并没有完全地理解SQL的强大功能,而且还存在着许多不足之处。

如:受开发条件和开发时间的限制,本系统能存储的数据量也有一定限制,并没有发挥出SQL在数据库方面的优势;报表打印功能尚不够全面完善,不能实现动态报表,在一些数据输入时没有及时的进行数据格式校验,不能保证数据输入的绝对正确性。

由于时间关系,系统功能实现不够完善,使用不是很方便,比如,没有实现多条记录的连锁删除和添加以及数据的导入功能。

这些都是需要完善的地方,该系统离实际使用也还有相当的距离,需要我进行不断地补充和完善。

通过本次毕业设计我学到了不少新的东西,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习。

只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。

相关文档
最新文档