ER図は、業務で扱う「もの」や「人」と、それらの関係を整理する図です。ITパスポートでは、データベース設計の問題で、何をエンティティとして分け、どの関係が1対多かを読み取れるようにします。画面の見た目や処理の順番を描く図ではなく、保存したいデータの構造を考えるための図だと押さえましょう。
ER図の定義:エンティティ・属性・リレーション
ERはEntity Relationshipの略です。エンティティは、管理する対象です。通販であれば「顧客」「注文」「商品」が該当します。属性は対象の性質で、顧客なら顧客番号・氏名・メールアドレス、商品なら商品番号・商品名・価格が例です。リレーションは対象間のつながりで、「顧客が注文する」「注文に商品が含まれる」と表現できます。
エンティティを単なる名詞として並べるだけでは十分ではありません。例えば、1人の顧客は複数の注文を行えますが、1件の注文は通常1人の顧客に対応します。このような1対多の関係を明確にすると、同じ顧客情報を注文ごとに繰り返して保存する不自然さに気付きやすくなります。
表(テーブル)にするまでの仕組み
ER図は、データベースのテーブル設計を考える前段階で役立ちます。エンティティはテーブルの候補となり、属性は列の候補になります。そして各行を一意に見分ける項目が主キーです。注文テーブルに顧客番号を持たせれば、顧客テーブルとの関係を外部キーで表現できます。
| 観点 | ER図 | フローチャート |
|---|---|---|
| 主に表すもの | データの対象・属性・関係 | 処理の順番・分岐 |
| 問い | 何を保存し、どれが結び付くか | 何をして次にどこへ進むか |
| 例 | 顧客と注文は1対多 | 注文を受けた後に在庫を確認する |
ここでの比較の要点は、ER図が「データの静かな構造」を扱うことです。処理を説明したいときにER図を選ぶ、またはデータの関係を問う問題でフローチャートを選ぶ、という取り違えに注意します。
試験問題での見分け方
問題文に「顧客、商品、受注の関連」「データの重複を減らす」「1件の注文に複数の商品」とあれば、ER図やテーブル設計を考える場面です。「長方形は何を表すか」だけを暗記するより、主語になっている対象、対象の性質、対象どうしを結ぶ動詞を分けると判断しやすくなります。
多対多の関係も重要です。注文と商品では、1件の注文に複数の商品が入り、同じ商品が複数の注文に入ります。そのままでは関係を記録しにくいため、「注文明細」のような中間のエンティティを置き、数量や注文時単価を属性として持たせる考え方があります。
仕事と日常生活で考えるER図
仕事の具体例として、研修の受講管理を考えます。「社員」「研修」「受講記録」を分けると、誰がどの研修をいつ受け、修了したかを記録できます。社員と研修は多対多になり得るので、受講記録に社員番号と研修番号を持たせると、受講日や修了状況も整理できます。これは架空の導入事例ではなく、設計時に一般的に検討するデータの分け方です。
日常生活の具体例では、家計簿アプリを考えると分かりやすいでしょう。「支出」「カテゴリ」「支払方法」を分ければ、各支出に食費・交通費などのカテゴリと、現金・カードなどの支払方法を関連付けられます。毎回カテゴリ名を直接入力するより、カテゴリを別に管理することで表記ゆれを抑えられます。
確認問題
問題1:ER図で「注文」と「商品」のような管理対象を表すものはどれですか。
- エンティティ
- 属性
- リレーション
- 暗号鍵
答え:1。エンティティは管理対象です。属性はその性質、リレーションは対象間の関係です。暗号鍵は通信やデータ保護に関する別の概念です。
問題2:顧客1人が複数の注文を行い、各注文が1人の顧客に対応する関係として適切なのはどれですか。
- 1対1
- 1対多
- 多対多だけ
- 関係は表せない
答え:2。顧客から注文を見ると1人に複数件が結び付くため1対多です。見る向きを変えると、注文から顧客は多対1と表現できます。
関連知識へ進む順番
主キーと外部キーは、ER図の関係をテーブルで実現する方法を学ぶ記事です。次に読むことで、図からデータベースへ落とし込む筋道がつながります。
リポジトリでは、設計成果物やソースコードをチームで管理する場所を確認できます。ER図と保管場所を同じ概念にしないために役立ちます。
システム開発を体系的に学ぶでは、要件定義・設計・テストの関係を整理できます。ER図を作る目的を開発全体の中で確認しましょう。
まとめ
ER図は、管理対象、属性、対象間の関係を整理する図です。問題では、データの構造を問うのか、処理の流れを問うのかをまず区別し、1対多や多対多を具体例に置き換えて考えると理解が定着します。

