sg database system_planning data_modeling
まず結論
DFD(Data Flow Diagram)は、データがどこから来て、どの処理を通り、どこへ出ていくかを表す図です。
SG試験では、DFDを「データベースの関係を表す図」と考えないことが大切です。
DFDで見るのは、
- データの入力元
- データを処理する機能
- データの保存先
- データの出力先
です。
つまり、DFDはデータの流れと処理の関係を整理する図です。
直感的な説明
DFDは、データの通り道を地図にしたものと考えると分かりやすいです。
例えば、注文処理では、次のような流れがあります。
- 顧客から注文データを受け取る
- 注文内容を確認する
- 在庫データを参照する
- 注文データを保存する
- 出荷指示を出す
このとき、DFDでは「顧客」「注文処理」「在庫データ」「出荷指示」などの間で、データがどう流れるかを表します。
ER図が「何を管理するか」を見る図だとすると、DFDはデータがどう動くかを見る図です。
定義・仕組み
DFDは、主に次の要素で構成されます。
| 要素 | 意味 | 例 |
|---|---|---|
| 外部実体 | システムの外にある人・組織・他システム | 顧客、取引先、外部システム |
| プロセス | データを処理する機能 | 注文受付、在庫確認、請求処理 |
| データストア | データを保存する場所 | 顧客ファイル、商品マスタ、注文データ |
| データフロー | データの流れ | 注文情報、請求情報、在庫情報 |
DFDでは、処理そのものよりも、データがどこからどこへ流れるかに注目します。
例えば、注文処理なら、
- 顧客 → 注文受付
- 注文受付 → 注文データ
- 注文受付 → 在庫確認
- 在庫確認 → 在庫データ
のように、データの流れを整理します。
どんな場面で使う?
DFDは、システム開発の上流工程で、業務やシステムの処理を整理するときに使われます。
特に、次のような場面で役立ちます。
- 業務で使うデータの流れを整理する
- システムの入出力を確認する
- 処理の抜けや重複を見つける
- 外部システムとのデータ連携を整理する
- 要件定義で処理の全体像を共有する
例えば、販売管理システムを作るときに、注文情報がどこから入り、どの処理を通り、どのデータとして保存されるかを確認できます。
ER図との違い
DFDとER図は、どちらもシステム開発で使われる図ですが、目的が違います。
| 図 | 何を表す? | キーワード |
|---|---|---|
| DFD | データの流れと処理 | データフロー、プロセス、データストア |
| ER図 | 管理対象と関係 | エンティティ、属性、リレーションシップ |
試験では、次のように切り分けると判断しやすいです。
- データが流れる、処理される、保存される → DFD
- 実体、属性、関連、1対多などの関係 → ER図
ER図は「顧客」「商品」「注文」の関係を整理する図です。
DFDは「注文データ」がどの処理を通って、どこに保存されるかを整理する図です。
よくある誤解・混同
誤解1:DFDはデータベースの表の関係を表す図である
これはER図との混同です。
DFDは、表同士の関係ではなく、データの流れと処理を表します。
「エンティティ」「属性」「リレーションシップ」という言葉が出てきたら、DFDではなくER図を疑いましょう。
誤解2:DFDは業務手順を時系列で表す図である
DFDは、データの流れを表します。
そのため、業務の順番をある程度イメージすることはできます。
ただし、DFDの目的は、作業手順を時系列に並べることではありません。
「申請する → 承認する → 登録する」のような手順を中心に表す場合は、業務フロー図やアクティビティ図の方が近いです。
誤解3:DFDは画面遷移を表す図である
DFDは、画面の移動を表す図ではありません。
画面Aから画面Bへ移る、といった利用者画面の流れを表す場合は、画面遷移図が関係します。
DFDで見るのは、画面ではなくデータの入出力と処理です。
まとめ(試験直前用)
DFDは、データの流れと処理を表す図です。
試験直前は、次の3点で判断しましょう。
- データフロー、プロセス、データストアが出たらDFD
- データがどこから来て、どこへ行くかを見る図
- エンティティ同士の関係を表す図ではない
特に、ER図との違いがよく問われます。
ER図=管理対象と関係
DFD=データの流れと処理
この切り分けで押さえておくと、選択肢をかなり絞りやすくなります。