文档库 最新最全的文档下载
当前位置:文档库 › 库存物资管理系统后台数据库

库存物资管理系统后台数据库

数据库课程设计

设计报告

题目:库存物资管理系统后台数据库学号:

学生姓名: 指导教师:

提交时间: --------------

目录

库存物资管理系统后台数据库..................................................................................................... 4第1章进行需求分析,编写数据字典....................................................................................... 4

1.1系统功能要求设计:...................................................................................................... 4

1.2模块设计.......................................................................................................................... 4

1.3数据字典.......................................................................................................................... 5第2章面向对象分析和设计..................................................................................................... 7第3章逻辑结构设计................................................................................................................. 8

3.1类和对象向关系模式转换.............................................................................................. 9第4章数据库物理结构设计................................................................................................. 10

4.1存取方法设计.............................................................................................................. 10

4.2存储结构设计.............................................................................................................. 10

4.3物理设计...................................................................................................................... 10第5章数据完整性设计........................................................................................................... 14

5.1主键及索引.................................................................................................................. 14

表名..................................................................................................................................... 14

5.2完整性约束的说明...................................................................................................... 14

5.3 check约束.................................................................................................................. 15

5.4 Default默认值.......................................................................................................... 15

5.5 触发器设计................................................................................................................. 15第6章数据库视图的设计....................................................................................................... 19第7章存储过程设计............................................................................................................. 22总结............................................................................................................................................. 31参考文献:................................................................................................................................. 31

库存物资管理系统后台数据库

第1章进行需求分析,编写数据字典

1.1系统功能要求设计:

(1)数据表以及数据量

1)有一个存放商品的仓库,每天都有商品出库和入库。

2)商品有1000多种,每种商品都有名称、生产厂家、型号、规格等。

3)出入库时必须填写出入库单据,单据包括商品名称、生产厂家、型号、规格、数量、日期、时间、入库单位(或出库单位)名称、送货(或提货)人姓名。

(2)设计要求:

1) 进行需求分析,编写数据字典。

2) 设计E-R图。

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

型号:varchar

添加()

删除()

查询()

修改()

仓库

仓库号:char

仓库名称:varchar

添加()

修改()

删除()

查询()

库存

商品编号:商品

仓库号:仓库

库存数量:int

查询()

修改()

添加()

删除()

出库

出库号:int

仓库号:仓库

商品编号: 商品

商品名称:商品

出库数量:int

出库日期:

smalldatetime

出库单位名称:单位

送货人姓名:人

性别:char

添加()

修改()

删除()

查询()

入库

入库号:int

仓库号:仓库

商品编号: 商品

商品名称:商品

入库数量:int

入库日期:smalldatetime

入库单位名称:单位送货人姓名:人

性别: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

相关文档
相关文档 最新文档