资源描述
库存管理数据库模型
一、需求分析阶段
进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理),需求分析是整个设计过程的基础。
1、信息需求
随着计算机的不断普及和现代管理的发展,库存工作已表现出越来越多的管理问题。库存管理中原来的手工管理方法已不能适应生产实际的需要,造成库存积压、物资较多、反应迟缓、流动资金周转较慢,但是微机数据库是单机操作,信息利用率不高,无法实现资源共享,数据唯一;而且原始凭证繁多,工作效率低,无法适应现代化库存管理的需要。为了及时地掌握库存动态信息,做到资源共享,数据唯一,调节供应与需求的关系,实现库存的最佳控制,加速资金周转;计算机正在逐步代替人力,服务于生产型、销售型等企业里面。为此,就必须先进行库存管理的数据库模型设计。本文设计的数据库模型包括材料的入库和出库,仓库工作人员的权限管理等。
2、处理要求
能够进行数据库的数据定义、数据操纵、数据控制等处理功能。
3、安全性与完整性要求
二、概念结构设计阶段
概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS之外的概念结构模型。
设计数据库kcm,分析实体有:仓库,材料,仓库工作人员;分析具体的联系有:入库,出库;画出E-R图如下:
库存数量
材料
仓库
工作人员
材料编号
材料名称
备注
库存
入库出库
备注
人员编号
姓名
密码
家庭地址
电话
m
n
m
n
p
仓库号
仓库名称
最大库存
说明:图中略去了入库出库的属性
三、逻辑结构设计阶段
逻辑结构是独立于任何一种数据模型的信息结构。逻辑结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。
E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。
根据实体和联系各自转化为一个关系模式的原则,得到库存管理数据库关系模式以及数据字典如下:
仓库表(仓库号,最大库存)
材料表(材料编号,材料名称,备注)
仓库工作人员(人员编号,姓名,密码,家庭地址,电话,备注)
库存表(材料编号,仓库号,库存数量)
入库表(入库单编号,仓库号,进货日期,供货单位,入库数量,材料编号,进货单价,检验员,记账员)
出库表(出库单编号,仓库号,出库日期,使用部门,领料用途,材料编号,实发数量,领料员,备注)
人员表
字段名
字段类型
字段长度
字段限制
注释
UserName
Varchar
20
Primary key
用户名
Name
Varchar
20
Not null
用户姓名
PassWord
Varchar
20
Not null
密码
Adress
Varchar
70
地址
Tel
Varchar
20
联系电话
beizhu
Varchar
200
备注
入库表
字段名
字段类型
字段长度
字段限制
注释
Rkdbh
Varchar
20
Primary key
入库单编号
Ckh
Varchar
10
Foreign key
仓库号
Jhrq
Datetime
Not null
进货日期
Ghdw
Varchar
70
Not null
供货单位
Rksl
Int
20
Not null
入库数量
Clbh
Varchar
20
Foreign key
材料编号
Jhdj
Money
20
Not null
进货单价
Jyy
Varchar
20
Not null
检验员
Jzy
Varchar
20
Not null
记账员
出库表
字段名
字段类型
字段长度
字段限制
注释
Ckdbh
Varchar
20
Primary key
入库单编号
Ckdate
Datetime
Not null
出库日期
Userdept
Varchar
70
Not null
使用部门
Usewhat
Varchar
100
Not null
领料用途
Clbh
Varchar
20
Foreign key
材料编号
Sfsl
Int
20
Not null
实发数量
Lly
Varchar
20
Not null
领料员
Jzy
Varchar
20
Not null
记账员
Beizhu
Varchar
100
备注
材料表
字段名
字段类型
字段长度
字段限制
注释
Clbh
Varchar
20
Primary key
材料编号
Cname
Varchar
20
材料名称
Beizhu
Varchar
100
备注
库存表
字段名
字段类型
字段长度
字段限制
注释
Clbh
Varchar
20
Primary key
材料编号
Ckh
Varchar
10
Primary key
仓库号
Kcsl
Int
20
Not null
库存数量
仓库表
字段名
字段类型
字段长度
字段限制
注释
Ckh
Varchar
10
Primary key
仓库号
MaxQuantities
int
20
Not null
最大库存
向Kcm数据库输入数据如下:
Clbh
Cname
Beizhu
001
塑料
002
毛坯
003
钢管
材料信息表
仓库信息表
Ckh(仓库号)
MaxQuantities
1
20000
2
20000
3
30000
库存信息表
clbh
ckh
kcsl
001
2
400
002
1
500
003
1
300
人员信息表
Userbianhao
Name
PassWord
Adress
Tel
Beizhu
081101
张三
081101
河北
15031459865
仓库管理员
081102
李四
081102
河北
15986541236
发料员
081103
马武
081103
河北
13789456123
领料员
081104
任思
081104
北京
15986423845
记账员
出库单信息表
Ckdbh
Ckdate
Userdept
Usewhat
clbh
sfsl
lly
jzy
beizhu
C201001
2010-5-23
生产部
生产产品
001
45
李四
马武
C201002
2010-5-24
行政部
办公
002
50
李四
马武
入库单信息表
rkdbh
ckh
jhrq
ghdw
rksl
clbh
jhdj
jyy
jzy
R201001
1
2010-2-23
天津红十字厂
80
001
1
张三
李四
R201002
1
2010-2-24
天津红十字厂
80
002
2
张三
李四
四、物理设计阶段
五、数据库实施阶段
在数据库实施阶段,设计人员运用DBMS提供的数据库语言(如SQL)及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
1、创建数据库
create database kcm
2、创建数据库中的表
(1)创建材料表
create table cailiaobiao (clbh varchar(20) primary key,
Cname varchar(20) not null,
Beizhu varchar(100) ,
)
(2)创建仓库表
create table cangkubiao (ckh varchar(20) primary key,
MaxQuantities int(20) not null
)
(3)创建人员表
Create table Renyuan (
Userbianhao varchar(20) primary key,
Name varchar(20) not null unique,
PassWord char(20) not null,
Adress char(70),
Tel char(20),
Beizhu char(200)
)
(4)、创建库存表
Create table kucunbiao (
clbh varchar(20) primary key,
ckh varchar(20) not null ,
kcsl numeric(9) not null
)
(5)、创建出库表
create table chukubiao (Ckdbh varchar(20) primary key,
Ckdate datetime not null,
Userdept varchar(20) not null,
Usewhat varchar(70) not null,
clbh varchar(20) not null,
sfsl int not null,
lly varchar(20) not null,
jzy varchar(20) not null,
beizhu varchar(100)
)
由于出库和入库的建表语句类似,所以在这里略去入库的建表语句。
六、数据库运行和维护阶段
此阶段主要包括以下四个部分:
数据定义:基本表的创建、修改及删除;索引的创建和删除;视图的创建和删除
数据操作:数据查询、数据插入、数据更新
数据安全性操作
数据完整性操作
1、数据查询操作
(1)、查询有检验员张三经手的002材料的入库情况
select *
from rukubiao
where clbh='002' and jyy='张三'
运行结果:
R201002
1 2010-02-24 00:00:00.000 天津红十字厂 80 002 2 张三 李四 NULL
(2)、查询库存数量小于500的材料的名字
select Cname 材料名
from kucunbiao,cailiaobiao
where kucunbiao.clbh=cailiaobiao.clbh and
kcsl <500
运行结果:塑料
钢管
(3)、查询入库单标号为R201002的材料的现有库存数量(嵌套查询)
select kcsl 库存数量
from kucunbiao
where clbh=(
select clbh
from rukubiao
where rkdbh='R201002')
运行结果:500
(4)、查询家在河北的仓库工作人员,并按照姓名排序。
select *
from Renyuan
where Adress='河北'
order by Name
运行结果:
081102 李四 081102 河北 15986541236 发料员
081103 马武 081103 河北 13789456123 领料员
081101 张三 081101 河北 15031459865 仓库管理员
2、创建索引和视图,提高查询效率,保证数据库的安全性。
(1)、基于人员表(表名:Renyuan)索引的创建与删除
查找约束名:sp_help Renyuan
删除主键约束:alter table Renyuan
drop constraint pk_name
添加主键约束:alter table Renyuan
add constraint PK_Ren primary key(Userbianhao)
在Name属性上创建唯一聚簇索引:
Create unique clustered index UserName_ind on Renyuan (Name)
删除该索引:Drop index Renyuan.UserName_ind
(2)、创建视图
create view cailiao_kucun as
select cailiaobiao.clbh 材料编号,cname 材料名称,ckh 仓库号,kcsl 库存数量
from cailiaobiao,kucunbiao
where cailiaobiao.clbh=kucunbiao.clbh
基于已经创建好的视图的查询
select 材料名称,仓库号,库存数量
from cailiao_kucun
运行结果:
材料名称 仓库号 库存数量
塑料 2 400
毛坯 1 500
钢管 1 300
删除视图:删除前面定义的cailiao_kucun视图。
Drop view cailiao_kucun
3、数据库的安全性
(1)、登录账户、数据库用户、数据库角色的创建和删除
创建SQLServer身份验证的登录账户任泉、张三、x1、x2
EXEC sp_addlogin '任思','123','kcm'
EXEC sp_addlogin '张三','123','kcm'
创建数据库用户
EXEC sp_adduser '张三'
EXEC sp_adduser ’u1’
EXEC sp_adduser ’u2’
建立数据库角色
EXEC sp_addrole ‘m1’
删除SQLServer身份验证的登录账户 ’张三’
EXEC sp_droplogin ‘张三’
从当前数据库中删除用户 ’u1’
EXEC sp_dropuser ‘u1’
(2)、授权操作
把对表kucunbiao的insert,select,update(kcsl)权限授予用户’张三’,并允许他再将此权限授予其他用户。
grant insert,select,update(kcsl)
on table kucunbiao
to 张三
with grant option
用户张三登录后,把查询表kucunbiao和修改kcsl属性的权限授给用户u2。
grant select,update(kcsl)
on table kucunbiao
to u2
把用户张三查询表kucunbiao的权限级联收回。
revoke select
on table kucunbiao
from 张三 cascade
4、数据库的完整性
对于chukubiao表:clbh的值应该在0和20000之间:
create table chukubiao (Ckdbh varchar(20) primary key,
Ckdate datetime not null,
Userdept varchar(20) not null,
Usewhat varchar(70) not null,
clbh varchar(20) not null,
sfsl int not null,
lly varchar(20) not null,
jzy varchar(20) not null,
beizhu varchar(100)
foreign key(clbh) references cailiaobiao(clbh)
on delete cascade
on update cascade,
check (sfsl >0 and sfsl <=20000 )
)
七、问题总结
1、必须首先创建数据库,在相对应的数据库下创建各个表,建表的时候,注意要先建立由实体转化过来的关系二维表,再建立设置外键的表。
2、SQLServer查询分析器中不区分大小写。
3、标准SQL与嵌套SQL的区别:
虽然嵌套SQL以分号结束,但是在标准SQL语句中以分号结束时,也没有错误信息的提示。
4、在进行授权操作时,必须先创建用户。
5、在创建索引时,如果已经设定主键,就不能在创建聚簇索引了。如果非要创建的话,就需要先查找出相应的约束名,然后将其删除,才可创建。
2010年读书节活动方案
一、 活动目的:
书是人类的朋友,书是人类进步的阶梯!为了拓宽学生的知识面,通过开展“和书交朋友,遨游知识大海洋”系列读书活动,激发学生读书的兴趣,让每一个学生都想读书、爱读书、会读书,从小养成热爱书籍,博览群书的好习惯,并在读书实践活动中陶冶情操,获取真知,树立理想!
二、活动目标:
1、通过活动,建立起以学校班级、个人为主的班级图书角和个人小书库。
2、通过活动,在校园内形成热爱读书的良好风气。
3、通过活动,使学生养成博览群书的好习惯。
4、通过活动,促进学生知识更新、思维活跃、综合实践能力的提高。
三、活动实施的计划
1、 做好读书登记簿
(1) 每个学生结合实际,准备一本读书登记簿,具体格式可让学生根据自己喜好来设计、装饰,使其生动活泼、各具特色,其中要有读书的内容、容量、实现时间、好词佳句集锦、心得体会等栏目,高年级可适当作读书笔记。
(2) 每个班级结合学生的计划和班级实际情况,也制定出相应的班级读书目标和读书成长规划书,其中要有措施、有保障、有效果、有考评,简洁明了,易于操作。
(3)中队会组织一次“读书交流会”展示同学们的读书登记簿并做出相应评价。
2、 举办读书展览:
各班级定期举办“读书博览会”,以“名人名言”、格言、谚语、经典名句、“书海拾贝”、“我最喜欢的___”、“好书推荐”等形式,向同学们介绍看过的新书、好书、及书中的部分内容交流自己在读书活动中的心得体会,在班级中形成良好的读书氛围。
3、 出读书小报:
9
展开阅读全文