数据仓库、流向、处理等数据流图DFD画法规则

画数据流图(DFD)的“江湖规矩”  


1. 关于“处理”Process(就是那个圆框框)
A. 禁止“无中生有”:  
如果一个圈圈只有箭头往外跑,没有箭头进来——它就像魔法师,凭空变出数据!系统里不允许这种“奇迹”。所以,它必须是个“数据源”(Source,也就是外部世界)。

B. 禁止“只吃不吐”:  
如果一个圈圈只有箭头往里钻,没有箭头出去——它就像黑洞,把数据全吞了!这种“大胃王”必须是个“数据汇”(Sink,也是外部世界)。

C. 起名必须“动词+名词”:  
比如“算成绩”、“存照片”,别整成“成绩”、“照片”这种干巴巴的名词。



2. 关于“数据仓库”Data Store(就是那两条平行线)
D. 仓库之间不能直接串门:  
A仓库的数据不能直接飞到B仓库,必须让某个圈圈(处理)当快递员,帮你搬过去。

E. 外部世界不能直接往仓库里扔东西:  
比如“用户”不能直接往“学生档案库”里塞数据,得先让“登记学生信息”这个圈圈收一下,再存进去。

F. 仓库也不能直接往外扔东西给外部世界:  
“学生档案库”不能直接甩成绩单给“家长”,得让“生成成绩单”这个圈圈取出来,再递出去。

G. 起名必须纯名词:  
比如“学生档案库”、“游戏金币余额”。别整成“存学生档案”这种带动作的词。



3. 关于“外部角色”Source/Sink(就是那个方框)
H. 外部世界之间不能直接飞纸条:  
比如“学生”不能直接发消息给“老师”,如果系统要管这事儿,就得让“提交作业”这个圈圈当中转站。  
如果这事儿系统根本不管(比如学生私下递情书),那就别画在图里!

I. 起名必须纯名词:  
比如“学生”、“老师”、“支付宝”。别整成“登录学生”这种动词。



4. 关于“数据流”Data Flow(就是那个箭头)
J. 箭头是单行道:  
默认只能往一个方向流。如果既要读又要写(比如先查库存再改库存),可以画两根箭头,别偷懒画一根双向的。

K. 分叉箭头=“复印机”:  
一根箭头分叉成两根,意思是数据被复印成完全相同的N份,分别送到不同地方。比如“成绩单”同时发给“学生”和“家长”。

L. 合并箭头=“拼车”:  
两根箭头合成一根,意思是数据从两个地方来,但必须一模一样,才能拼成一辆车送到同一个地方。

M. 禁止“原地打转”:  
数据不能从A圈圈出去,绕了一圈又直接回到A圈圈。必须至少让另一个圈圈B碰一下,变点花样再回来。

N. 箭头指向仓库=“改仓库”:  
比如“新增订单”、“删除用户”、“修改密码”。

O. 箭头离开仓库=“查仓库”:  
比如“读取库存”、“显示余额”。

P. 起名必须名词:  
比如“成绩单”、“游戏金币”。如果多个数据一起飞,可以打包写:“成绩单+学生证”,但必须是同一包裹,不能“成绩单”和“游戏金币”硬塞同一根箭头。



总结口诀:
- 圈圈要动词,仓库要名词,外部要名词,箭头要名词。  
- 仓库不直连,外部不直连,数据不魔法,不黑洞,不原地打转!