hI
I信息单”
ipWY/配送信息文件・
M#M
(三八数据字典(务必要完整,写出所有的数据项,数据结构,数据流,
数据存储和存储过程)
(1)数据项:
(列出数据流和数据存储里面出现过的所有的数据项)
A•数据项名:
货物编号
数据项含义说明:
对仓库货物的一个唯一标识
别名:
流水号
数据类型:
字符型
长度:
8
取值围:
00000000至99999999
取值含义:
在原有最大编号的基础上加1
与其他数据项的逻辑关系:
无
B.数据项名:
货物名称
数据项含义说明:
货物的名称
别名:
无
数据类型:
字符型
长度:
50
取值围:
最多25个汉字或者50个字母
取值含义:
无
与其他数据项的逻辑关系:
无
C•数据项名:
作者
数据项含义说明:
书的责任人,主编等
别名:
责任人
数据类型:
字符型
长度:
50
取值围:
最多25个汉字,因为有时候作者有多个
取值含义:
无
与其他数据项的逻辑关系:
无
(2)数据结构
A.数据结构名:
客户
含义说明:
系统主体数据结构,定义了客户的有关信息
组成:
厂家名称+联系式
B.数据结构名:
配送信息
含义说明:
系统主体数据结构,定义了配送的有关信息
组成:
车号+司机+车辆载重+路线+里程+路费
(3)数据流
A•数据流名:
入库单
说明:
货物入库的详细信息
数据流来源:
1.1要求类型处理
数据流去向:
1.2货物入库
组成:
流水号(货物编号,唯一)+货物名称+型号+厂家名称+厂家联系式入库日期入库
平均流量:
10次/天
高峰期流量:
1000次/天
B•数据流名:
出库单
说明:
货物出库的详细信息
数据流来源:
1.1要求类型处理
数据流去向:
1.2货物出库
组成:
流水号(货物编号,唯一)+货物名称+型号+买家名称+买家联系式出库日期出库
平均流量:
10次/天
高峰期流量:
1000次/天
(4)数据存储
A•数据存储名:
货物文件
说明:
记录货物的基本信息
编号:
D1
流入数据流:
货物入库;修改货物信息
流出数据流:
货物查询;货物统计
组成:
流水号(货物编号,唯一)+货物名称++重量+体积+来源
数据量:
500次/天
存取式:
联机处理,随机检索
B.数据存储名:
出库文件
说明:
记录货物出库的基本信息
编号:
D2
流入数据流:
登记出库信息;修改货物信息
流出数据流:
登记出库单
组成:
流水号(货物编号,唯一)+货物名称+型号+买家名称+买家联系式+出库日期
数据量:
500次/天
存取式:
联机处理,随机检索
C.数据存储名:
入库文件
说明:
记录货物入库的基本信息
编号:
D3
流入数据流:
登记入库信息;修改货物信息
流出数据流:
登记入库单;审定库存
组成:
流水号(货物编号,唯一)+货物名称+型号+厂家名称+厂家联系式+入库日期
数据量:
500次/天
存取式:
联机处理,随机检索
C.数据存储名:
客户信息文件
说明:
记录客户的基本信息
编号:
D4
流入数据流:
登记客户信息
流出数据流:
供销分类
组成:
客户联系式+历史订货信息
数据量:
500次/天
存取式:
联机处理,随机检索
E.数据存储名:
配送信息文件
说明:
记录货物配送的基本信息
编号:
D5
流入数据流:
配送信息单
流出数据流:
审核调度
组成:
车号+司机+车辆载重+路线+里程+路费
数据量:
500次/天
存取式:
联机处理,随机检索
(5)处理过程
A.处理过程名:
检查入库单
说明:
检查是否进行后续的入库操作
输入:
入库单
输出:
有效入库单
处理:
根据入库单提供的货物号,检查该货物号的有效性。
通过有效性检查
才能继续后续入库操作,否则中断操作。
处理时间不能超过1秒。
(5)处理过程
B•处理过程名:
检查出库单
说明:
检查是否进行后续的出库操作
输入:
出库单
输出:
有效出库单
处理:
根据出库单提供的货物号,检查该货物号的有效性,货物数量是否达
到上限。
通过有效性检查才能继续后续出库操作,否则中断操作。
处理时间不能超过1秒。
C.处理过程名:
审定配送数量
说明:
检查货物配送数量是否与出库单一致
输入:
出库单
输出:
有效出库单
处理:
根据出库单提供的货物数量,与配送数量进行对照,货物数量是否与出库单一致。
通过比对检查才能继续后续配送操作,否则中断操作。
处理时间不能超过1秒。
二、概念结构设计
1•根据前期的需求分析,设计出系统的概念模型,用E-R图表示。
(1)以数据字典为出发点,抽象数据,建立E-R图。
数据字典中的“数据结构”、“数据流”和“数据存储”等已是若干属性的有意
义的聚合,一般都作为实体处理。
仓库管理系统中涉及到的实体有:
货物、仓库、车队、仓库管理员、出入库文件、
客户信息文件、货物信息文件、配送文件各个实体之间的关系:
仓库和货物之间有存储的关系,一个仓库可以存储多种货物,一种货物只能存储在一个仓库里,因此仓库和货物之间有1:
n的关系
货物和客户之间有联系,一个客户拥有多种货物,一种货物只能是一个客户所有的。
货物和车队之间有联系,一种货物可以被多辆车配送,一辆车可以配送多种货物,
所以货物和车队之间存在n:
n联系
以上各个实体包含的属性:
(2)根据以上抽象结果,画出E-R图
—
—■—:
1
"_T,
—"—:
—1r-
1—:
—
7r■:
=Fi―"I
r—rJ'f*”“.鼻".
■L
a■斗7bbiNd■ha
1.
hME-
■■:
_
■,■;I-:
■■■■■*■■■■
•!
b-4—r—1--»
;仓库;
—'"-I-;■■"■■■■
___j_j■
—--丄1—i-—e—
.<•..
'*•"'*•"':
"'*•''1一.t.二..「-1
仓库:
编号,货名,入库日期,出库日期
货物:
编号,货名,重量,体积,客户
客户:
客户号,编号,公司名称,联系人,联系,公司地址
车队:
车号,编号,司机,送货日期,签收日期,签收人
注:
下划线表示码
完整E-R图:
三、逻辑结构设计
1、E-R图转换成关系模式
(1)根据规则1,一个实体转换成一个关系模式,得到以下关系模式
仓库(编号、货名、入库日期、出库日期)
货物(编号、货名、重量、体积、客户)
车队(车号、编号、司机、送货日期、签收日期、签收人)
客户(客户号、编号、公司名称、联系人、联系、公司地址)
(2)根据规则2,一个m:
n的联系转换为一个关系模式(要求指出各个关系的主码和外码(若有)):
配送(编号、车号、送货日期、签收日期)
(3)根据规则3,一个1:
n的联系转换
存储1(编号、货名、客户、入库日期、出库日期)
存储2(编号、客户号、货名)
2•对设计的关系模式进行合并
如果多个关系模式的码相同,需要对他们进行合并
仓库(编号、货名、入库日期、出库日期)
存储1(编号、货名、客户、入库日期、出库日期)
可合并为一个关系模式
仓库(编号、货名、客户、入库日期、出库日期)
客户(客户号、编号、公司名称、联系人、联系、公司地址)
存储1(编号、货名、客户、入库日期、出库日期)
可合并为一个关系模式
客户(客户号、编号、货名、公司名称、联系人、联系、公司地址)
车队(车号、编号、司机、送货日期、签收日期、签收人)
配送(编号、车号、送货日期、签收日期)
可合并为一个关系模式
车队(车号、编号、司机、送货日期、签收日期、签收人)
即:
将该E-R转换为关系模式,有以下关系:
仓库(编号、货名、客户、入库日期、出库日期)
货物(编号、货名、重量、体积、客户)
客户(客户号、编号、货名、公司名称、联系人、联系、公司地址)
车队(车号、编号、司机、送货日期、签收日期、签收人)
3•判断以上设计得到的各个关系满足第几式的要求
依次判断这些关系模式是否满足第一式?
第二式?
第三式?
列出判断的依据。
1仓库(编号、货名、客户、入库日期、出库日期)
该关系模式存在的函数依赖如下:
编号、货名一客户
编号、货名f入库日期
编号、货名f出库日期
码为编号、货名
主属性为编号、货名
一个关系模式仓库的所有属性都是不可分的基本数据项,所以属于第一式
2货物(编号、货名、重量、体积、客户)
编号一货名
编号一重量
编号一体积
编号一客户
码为编号
主属性为编号
非主属性货名、重量、体积、客户完全依赖于主码编号,所以属于第二式。
3客户(客户号、编号、货名、公司名称、联系人、联系、公司地址)
客户号、编号一货名
客户号、编号一公司名称
客户号、编号T联系人
客户号、编号一联系
客户号、编号一公司地址
码为客户号、编号
主属性为客户号、编号
非主属性货名、公司名称、联系人、联系、公司地址,依赖于主码客户号,所以属于第二式。
4车队(车号、编号、司机、送货日期、签收日期、签收人)
车号T编号
车号一司机
车号一送货日期
车号一签收日期
车号—签收人
码为车号
主属性为车号
一个关系模式仓库的所有属性都是不可分的基本数据项,所以属于第一式
四、数据库实施
用SQL语言中相应的数据定义语句定义各个关系模式(表)及相应的完整
性,如学生关系模式:
学生(学号,姓名,性别,年龄,所在系)
CreateTableStudent(
Snochar(5)primarykey,
Snamechar(10),
货物(编号,名称,库存,价格)
Createtablegoods(
Gnochar(9)primarykey,
Gnamechar(20),
Gnumberchar(8),
Gpricechar(5));
入库(货物编号,入库时间,供应商,数量,价格)
Createtabledevicein
Gnochar(9),
Ddatedateprimarykey,
Dprovidechar(20),
Dnumberchar(8)
Dpricechar(5));
出库(货物编号,出库时间,客户,数量,价格)
Createtabledeviceout
Gnochar(9),
Dodatedateprimarykey,
Doprovidechar(20),
Donumberchar(8)
Dopricechar(5));
配送(车号,货物编号,司机,送货日期,签收日期)
Createtabledelivery,
Ccarnochar(4)primarykey,
Gnochar(9),
Cdriverchar(8),
Cdedatedate,
Credatedate;
五、心得体会
这次的数据库设计实验,从需求分析到数据结构设计到逻辑结构设计再到数
据库的实施,我们大体了解了一个数据库从构建到完成的整个过程。
起初我们十
分迷茫,不知道从做起,两个人就做一个怎么样的数据库就讨论了很久,最终决
定做一个简易的仓库管理系统。
定下了最初案,我们就开始对系统的各项功能进行了设计,越到后面,越觉得,做一个这样的系统其实并不简单。
其中需要的课程知识十分庞大,就像得从头再学一遍,数据库设计的复杂程度也是我们没有想到的。
历时一个月左右的时间,我们最终完成了这个并不完美的仓库管理系统。
经过这次设计过程,我们从实践中更好的学到了数据库构建中所需的各项知识,也更系统的了解了在构建一个数据库时的系统过程。
对课程学习有很大帮助,也感老师在这一学期中的悉心教导。