随着我国经济的飞速发展,各种类型、规模的企业迅速崛起,很多从事生产和经营管理的企业都有生产或销售的产品,而这些产品都需要储存在仓库中。随着企业规模的不断扩大,产品数量的急剧增加,所生产产品的种类也会不断更新与发展,与产品有关的各种信息数据也会成倍地增长,大型企业一般都会建立自己的仓库管理中心(仓储中心)。如何进行有效的仓库管理,对一个仓库管理中心来说是非常重要的。管理仓库的库房、人员及商品出入库数据,是一项非常复杂的系统工程,如果仅依靠手工管理,工作量庞大且容易出错,效率也会低下,因此需要建立仓库管理系统来提高工作效率,这对信息的规范管理、科学统计和快速查询,减少管理的工作量,提高生产效率等,具有十分重要的现实意义。

1.需求分析

作为数据库设计课题,鉴于设计时间有限,我们将整个系统进行简化,只把仓库管理所涉及的核心内容作为我们数据库管理的对象来进行设计。仓库管理系统主要针对仓储中心的库房、职工和商品进行管理,系统必须能够管理仓储中心的商品信息、库房信息、职工信息及商品的出入库信息等。
仓库管理系统可以对库房信息、职工信息、商品信息等进行有效的管理和维护,包括数据记录的增加、删除、修改等基本的维护功能和灵活的查询功能。具体的需求分析如下。
1)维护商品信息。实现对企业生产的商品信息的增加、删除和修改等。商品信息包括商品号、品名、类别、规格、单价和计量单位等。
2)维护库房的基本信息。仓储中心有多个库房,需要实现对库房信息的增加、删除和更新等。库房信息包括库房的库房号、库名、地点和面积等。
3)维护职工的个人基本信息(本系统中的职工仅限于在仓储中心工作的企业员工)。实现对职工个人信息的增加、删除和更新等。职工信息包括职工的工号、姓名、性别和电话等。
仓库管理的基本规定如下:每种商品可以存放在不同的库房中,每间库房可以存放多种商品;一间库房可以由多位职工管理,每位职工可以在多个库房工作;每个职工可以出入库多种商品,每种商品也可以由多个职工进行出入库操作;每次出入库均需要记录出入库操作类型、商品的品名和数量、存放的库房、经手的职工和操作的日期等。
为简便起见,本系统假定生产、采购等相关信息由单独的系统进行管理,我们仅考虑仓库中商品的出入库相关信息。

2.概念结构设计

分析仓库管理系统的基本需求,利用概念结构设计的抽象机制,对需求分析结果中的信息进行分类、组织,即可得到系统的实体、实体属性、实体的码、实体之间的联系及联系的类型,然后就可以设计出系统的概念模型。

通过前述分析,可以抽取出仓库管理系统的基本实体有:商品、库房和职工。这三个实体是通过“商品存放在库房”“职工出人库商品”和“职工在库房工作”产生联系的,商品、库房和职工之间都是多对多的联系。
设计概念结构的具体步骤如下。
1.抽象出系统的实体
根据分析,仓库管理系统主要包含商品、库房和职工三个实体,可画出三个实体的局部B-R图,并在图中标出实体的主键(加下画线的属性),其甲,商品号是商品实体的主键,库房号是库房实体的主键,工号是职工实体的主键。

库房实体及属性

商品实体及属性

职工实体及属性

初步E-R图

总E-R图

3.逻辑结构设计

逻辑结构设计就是将概念结构设计中的全局E-R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。
在关系数据库系统中,数据库的逻辑设计就是按照E-R图到关系数据模型的转换规则,将全局E-R图转换为关系模型的过程,即将所有的实体和联系转化为一系列的关系模式的过程。E-R图向关系模型的转换要解决的问题是如何将实体和实体间的联系转换为关系模式,以及如何确定这些关系模式的属性和码。
根据前面介绍的E-R图向关系数据模型转换的相关转换规则,将图5-8所示E-R图转换为关系数据模型,可得到如下的仓库管理数据库的关系模式。
商品(商品号,品名,类别,规格,计量单位,单价)为商品实体对应的关系模式,其中商品号是商品关系的主键。
库房(库房号,库名,地点,面积,备注)为库房实体对应的关系模式,其中库房号是库房关系的主键。
职工(工号,姓名,性别,年龄,联系方式)为职工实体对应的关系模式,其中工号是职工关系的主键。
出入库(商品号库房号,工号,出入库类型,数量,日期)为商品、库房和职工三者之间的联系对应的关系模式。因为“出入库”是三者之间的多对多联系,因此商品、库房和职工的主属性及出入库联系本身的属性,共同构成了该关系模式的属性,其中(商品号,库房号,工号)共同作为出入库关系的主键。

4.数据库物理设计与实施

为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程就是数据库的物理设计。物理设计时要确定数据库的存储路径、数据规模和增长速度等,在数据库管理系统中创建数据库,建立数据库的所有数据模式,并根据访问要求给数据库的基本表设计适当的索引作为存取路径。

4.1创建仓库管理系统数据库

create database 仓库管理系统;

4.2建立和管理基本表

4.2.1库房MySQL语句

create table 库房(

库房名 char(5) not null primary key,

库名 char(20) not null,

地点 char(30) not null,

面积 int not null check(面积>0),

备注 varchar(50));

4.2.2职工MySQL语句

create table 职工(

工号 char(5) not null primary key,

姓名 char(8) not null,

年龄 tinyint check (年龄 between 1 and 100),

性别 char(2) not null check(性别 in ('男','女')),

联系方式 char(12));

4.2.3出入库MySQL语句

create table 出入库(

商品号 char(9) not null,

库房号 char(5) not null,

工号 char(5) not null,

出入库类型 char(4) not null check (出入库类型 in('出库',' 入库')),

数量  int not null,

日期 date not null,

constraint Order_Goods_number foreign key (商品号) references 商品(商品号),

constraint Order_Room_number foreign key (库房号) references 库房(库房号),

constraint Order_Employee_number foreign key (商品号) references 工号(工号),

constraint Warehouse_pk primary key (商品号,库房号,工号));

 4.3建立和管理视图

4.3.1建立查询冰箱视图

create view 冰箱(

as

select *

from 商品

where 类别=’冰箱‘;

4.4建立和管理索引

根据需求分析,各个基本表的主键分别是商品号,库房好,工号,以及三者的结合,DBMS会自动为主键建立索引,所以不需要为主键建立索引。

例如: 在出入库表的列商品号,工号上建立索引

create index empunm_CNumber

on 出入库(商品号,工号);

5.访问数据库

为了满足数据库访问的要求,应事先利用INSERT语句或交互式的方法给数据库中的商品表、库房表、职工表及出入库表插入一批实例数据,其中出人库表的数据当中,入库的数量为正数,出库的数量为负数,利用具体的insert 语句插入数据的方法。具体数据可自行设定。

6.数据维护

6.1备份数据库

1 在新建窗口查询下,输入下面的语句创建备份设备。

sp_addumpdevice 'dise' ,'仓库管理系统——bak','url';

2在新建查询窗口中,可输入下面的语句进行备份数据库

backup databse 仓库管理系统 to disk=’仓库管理系统.bak';

6.2 创建触发器

触发器是数据库中一种确保数据完整性的方法,同时也是DBMS执行的特殊类型的存储过程,触发器都定义在基本表上,每个基本表都可以为插入、删除和修改三种操作定义触发器,即Insert 触发器、Update 触发器和Delete触发器,对基本表的插入、修改或删除操作会使得相应的触发器触发运行,以保证操作不会破坏数据的完整性。
创建触发器有两种方法:一种方法是利用SQL Server Management Studio创建触发器,另一种方法是利用SQL语句CREATE TRRIGER 创建触发器。

例如:在职工表上定义一个触发器,当插入或修改职工信息时,若职工的年龄小于18,则自动改为18。

创建触发器的语句

create trigger insert_or_update_职工

on 职工

after insert,update

as

update 职工

set 年龄=18

from职工,inserted i

where 职工.年龄=i.年龄 and i.年龄<18;

触发器是一种特殊的存储过程,不能被显式地调用,而是在往表中插入数据,更新或记录或删除记录时被自动激活。

Logo

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。

更多推荐