sg database system_planning data_modeling
まず結論
ER図とDFDの違いは、何を中心に見る図かです。
- ER図:管理対象とその関係を見る図
- DFD:データの流れと処理を見る図
SG試験では、次のように切り分けると判断しやすいです。
エンティティ・属性・リレーションシップ → ER図
データフロー・プロセス・データストア → DFD
どちらもシステム開発で使われる図なので混同しやすいですが、見る対象が違います。
直感的な説明
販売管理システムを例にすると、違いが分かりやすいです。
ER図では、
- 顧客
- 注文
- 商品
- 注文明細
といった管理したい対象を整理します。
そして、
- 顧客が注文する
- 注文には注文明細がある
- 注文明細は商品を含む
という対象同士の関係を見ます。
一方、DFDでは、
- 顧客から注文データが届く
- 注文受付処理を行う
- 注文データを保存する
- 在庫データを参照する
- 出荷指示を出す
というデータの流れと処理を見ます。
つまり、
- ER図は「何を管理するか」
- DFDは「データがどう動くか」
を見る図です。
定義・仕組み
ER図とDFDの違いを表で整理します。
| 比較項目 | ER図 | DFD |
|---|---|---|
| 見るもの | 管理対象と関係 | データの流れと処理 |
| 主な要素 | エンティティ、属性、リレーションシップ | 外部実体、プロセス、データストア、データフロー |
| 目的 | データ構造を整理する | データの入出力や処理を整理する |
| 例 | 顧客、注文、商品がどう関係するか | 注文データがどこから来て、どこへ行くか |
| 混同しやすい点 | 表そのものと誤解しやすい | 業務手順そのものと誤解しやすい |
ER図は、データベース設計でよく使われます。
ただし、ER図は「表そのもの」を表すというより、表を設計する前に、管理対象と関係を整理する図です。
DFDは、処理の詳細なプログラムを書く図ではありません。
データがどこから入り、どの処理を通り、どこへ出ていくかを整理する図です。
どんな場面で使う?
ER図を使う場面
ER図は、管理するデータの構造を整理したいときに使います。
例えば、
- 顧客と注文の関係を整理する
- 商品と注文明細の関係を整理する
- 1対多、多対多の関係を確認する
- データベース設計の前に対象を整理する
といった場面です。
DFDを使う場面
DFDは、データの入出力や処理の流れを整理したいときに使います。
例えば、
- 顧客から注文情報を受け取る
- 注文情報を処理する
- 在庫データを参照する
- 注文データを保存する
- 出荷指示を出す
といった場面です。
よくある誤解・混同
誤解1:ER図はデータベースの表そのものを表す
ER図は、関係データベース設計でよく使われるため、表そのものを表す図だと考えがちです。
しかし、正確には、ER図は管理対象であるエンティティと、エンティティ間の関係を表す図です。
表として実装する前の、概念整理に使う図と考えると分かりやすいです。
誤解2:DFDは業務手順を表す
DFDは、データの流れを表す図です。
そのため、業務の流れに近く見えることがあります。
ただし、DFDの中心は、作業手順ではなくデータの入出力と処理です。
「申請 → 承認 → 登録」のような手順そのものを表すなら、業務フロー図やアクティビティ図の方が近いです。
誤解3:リレーションシップは業務上の手順である
ER図のリレーションシップは、業務手順ではありません。
リレーションシップは、エンティティ同士の関係です。
例えば、
- 顧客が注文する
- 注文に商品が含まれる
- 部署に社員が所属する
といった関係を表します。
試験での切り分け方
選択肢を読むときは、出てくる言葉に注目すると判断しやすくなります。
| 選択肢の言葉 | 判断 |
|---|---|
| エンティティ | ER図 |
| 属性 | ER図 |
| リレーションシップ | ER図 |
| 1対多、多対多 | ER図 |
| データフロー | DFD |
| プロセス | DFD |
| データストア | DFD |
| 入力、出力、処理 | DFD |
特に、次のような選択肢は要注意です。
関係データベースの表として実装することを前提に表現する。
これはER図っぽく見えますが、言い切りが強すぎます。
ER図は関係データベース設計に使われることが多いものの、正確にはエンティティと関係を表す図です。
まとめ(試験直前用)
ER図とDFDは、どちらもシステム開発で使われますが、見る対象が違います。
試験直前は、次の3点で判断しましょう。
- ER図=管理対象と関係を見る図
- DFD=データの流れと処理を見る図
- エンティティならER図、データフローならDFD
迷ったときは、次の一文で切り分けます。
何を管理するかを整理するならER図。
データがどう流れるかを整理するならDFD。
この違いを押さえておくと、選択肢をかなり切りやすくなります。