讲解DFD和ERD


DFD(数据流图,Data Flow Diagram)和ERD(实体关系图,Entity Relationship Diagram)是两种常用于系统分析和设计的图形化工具。它们各自有不同的功能和应用场景。

1. DFD(数据流图,Data Flow Diagram)

数据流图(DFD)是系统分析和设计中常用的一种工具,用于描述系统中数据的流动和处理过程。DFD不仅能够反映系统的数据流动情况,还可以帮助分析系统各个模块的交互关系。

DFD的主要元素:

  • 外部实体(External Entity):表示系统外部与系统交互的对象,如用户、外部系统等。外部实体可以是数据输入的源头或数据输出的目标。用矩形表示。
  • 过程(Process):表示对数据进行处理的活动,通常是系统的一个功能模块。每个过程通常都有输入数据、输出数据和一个处理功能。用圆形或椭圆形表示。
  • 数据流(Data Flow):表示数据在系统中的流动路径,用箭头表示,箭头的方向指示数据的流向。
  • 数据存储(Data Store):表示数据在系统中的存储位置,例如数据库或文件。用平行线表示。

DFD的层次结构:

DFD通常分为不同的层次,以展示不同的细节:

  • 上下文图(Context Diagram):是DFD的最高层次,它展示了整个系统与外部实体之间的交互。上下文图通常只有一个“过程”,这个过程代表整个系统。通过上下文图可以了解系统的边界和与外部实体的关系。
  • 分解图(Decomposition Diagram):是对上下文图的进一步分解,它展示了系统内部各个子过程之间的数据流和处理。分解图的目的是将复杂的过程进一步细化,使系统设计更加清晰。

举例:

假设我们要设计一个简单的 学生管理系统,该系统包括了学生信息的录入和查询功能。

1. 上下文图:

在上下文图中,我们将整个系统看作一个单一的过程,与外部实体之间的交互如下所示:

  • 外部实体:学生管理员
  • 系统的功能:学生信息的录入、查询、修改等。
  +------------+                 +-------------------+
  |   学生     |<------输入------>|   学生管理系统     |
  |            |----查询----->|                   |
  +------------+                 +-------------------+
        ↑                              ↓
  +------------+                 +-------------------+
  |   管理员   |<------输入------>|                   |
  |            |----查询----->|                   |
  +------------+                 +-------------------+

在上下文图中,我们看到学生和管理员分别与“学生管理系统”进行数据交互。学生可以输入个人信息、查询自己的信息;管理员则输入学生信息、查询学生数据。

2. 分解图:

我们将“学生管理系统”这个单一过程进一步分解为多个子过程,例如“学生信息录入”、“学生信息查询”等。分解图如下:

+-------------------+
|  学生管理系统     |
+-------------------+
     /       \
    /         \
+------------+ +-------------------+
| 信息录入   | | 信息查询           |
+------------+ +-------------------+
    |                |
+-----------+     +----------+
| 存储学生数据 |   | 查找学生信息 |
+-----------+     +----------+

在这个分解图中,我们看到学生管理系统分为两个主要过程:

  • 信息录入:处理学生信息的输入并存储到数据存储中。
  • 信息查询:查询学生的个人信息。

DFD的应用:

  • 分析需求:帮助理解数据如何在系统中流动,以及不同功能如何互相交互。
  • 系统设计:确定系统的功能模块和数据流向,并为后续的开发提供依据。

2. ERD(实体关系图,Entity Relationship Diagram)

实体关系图(ERD)是一种用来表示数据实体及其之间关系的图形工具。在数据库设计中,ERD非常重要,它可以帮助设计合理的数据结构和数据库模式。

ERD的主要元素:

  • 实体(Entity):表示现实世界中的事物或对象,通常是一个需要存储的数据对象。实体用矩形表示。例如,“学生”、“课程”。
  • 属性(Attribute):表示实体的特征或性质,通常是实体的具体数据。属性用椭圆形表示,并与实体通过线连接。比如“学生”实体的属性有“学号”、“姓名”。
  • 关系(Relationship):表示实体之间的联系。关系通常用菱形表示。例如,“学生”和“课程”之间可以有一个“选修”关系。
  • 主键(Primary Key):唯一标识实体的属性。例如,“学号”可以是“学生”实体的主键。
  • 外键(Foreign Key):在一个实体中引用另一个实体的主键,用于建立实体之间的关系。

举例:

假设我们要设计一个 学生选课系统,系统中的实体有“学生”和“课程”,它们之间有“选修”关系。ERD如下所示:

+------------+       选修       +------------+
|   学生     |------------------|   课程     |
+------------+                   +------------+
| 学号(PK)   |                   | 课程号(PK) |
| 姓名       |                   | 课程名     |
+------------+                   +------------+

在这个ERD中:

  • 学生实体有两个属性:“学号”(主键)和“姓名”。
  • 课程实体有两个属性:“课程号”(主键)和“课程名”。
  • 选修是连接“学生”和“课程”的关系,表示一个学生可以选修多门课程。

ERD的关系类型:

  • 一对一(1:1):例如,一个人有一个身份证。
  • 一对多(1:N):例如,一个教师可以教授多门课程,但每门课程只能由一个教师教授。
  • 多对多(M:N):例如,学生可以选修多门课程,每门课程也可以有多名学生选修。

ERD的应用:

  • 数据库设计:帮助理解数据结构,并建立实体之间的关系模型。
  • 数据规范化:确保数据冗余最小化,并优化数据库结构。
  • 系统集成:帮助开发者理解数据如何在系统中流动,并指导数据库的实现。

DFD与ERD的区别:

  • DFD:关注系统的“功能”与“数据流动”,重点描述如何处理和传输数据。
  • ERD:关注系统中的“数据结构”和“实体关系”,重点描述数据库设计和数据模型。

总结:

  • DFD帮助系统分析人员了解系统的数据流动和处理流程,适用于系统设计和需求分析阶段。
  • ERD帮助数据库设计人员清晰地描述系统中的数据实体和它们之间的关系,适用于数据库设计和建模阶段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凭君语未可

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值