数据库课程设计 仓库管理系统数据库的设计与实现
- 格式:doc
- 大小:87.24 KB
- 文档页数:10
仓库管理系统数据库设计与实现
一.实验时间、地点
时间:第十三周(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