E-R図(Entity-Relationship Diagram)
管理したいものと、その間のつながりを描いた図。何が表になり、どの列で結び付くかを決めるために使う。
もう少し詳しい説明
E-R図は、管理したいものと、その間のつながりを描いた図です。
| 英語 | 日本語 |
|---|---|
| Entity | 実体。管理したいものの種類 |
| Relationship | 関連。ものの間のつながり |
3つの登場人物
| 図の要素 | 中身 | 表にしたときの対応 |
|---|---|---|
| エンティティ(実体) | 管理したいものの種類(例:講師、講座、受講者) | 表 |
| 属性 | そのものが持つ項目(例:講師コード、氏名) | 列 |
| リレーションシップ(関連) | ものの間のつながり(例:講師が講座を担当する) | 外部キーや、間に置く表 |
1行にあたるものは、図には描きません。 図は種類を描くもので、1件1件のデータは描かない形です。
つながりの個数
片方1つに対して、相手が何個つくかを書きます。これを多重度やカード性と呼びます。
| 形 | 読み方 | 例 |
|---|---|---|
| 1対1 | 片方1つに相手が1つ | 社員 ↔ 社員証 |
| 1対多 | 片方1つに相手が複数 | 講師1人 ↔ 担当する講座が複数 |
| 多対多 | 両方が複数 | 受講者 ↔ 講座(1人が複数受け、1講座に複数人) |
多対多は表を1つ足す
関係データベースでは、多対多をそのまま作れません。 間に表を1つ置きます。
| 置く前 | 置いた後 |
|---|---|
| 受講者 ── 多対多 ── 講座 | 受講者 ─1対多─ 受講 ─多対1─ 講座 |
間に置く表(受講)は、両方の主キーを持ちます。 受講者コードと講座コードの組で1行が決まる形です。
この表には、他の項目も入ります。 受講日、成績のように、「その組合せについての事実」がここに入ります。
線の書き方は図によって違う
線の種類や矢印の形は、流派によって違います。
| 流派 | 1対多の表し方の例 |
|---|---|
| IE記法(鳥の足) | 多の側の先を3本に分ける |
| IDEF1X | 多の側に黒丸を付ける |
| 試験の問題で使われる形 | 矢印の向きで表すことが多い |
問題文の中に凡例が示されます。 そこを先に読んでください。線の意味を思い込みで読むと、つながりの向きを逆に取ります。
主キーと外部キーも、図の中では下線で示されます。
| 示し方の例 | 意味 |
|---|---|
| 実線の下線 | 主キー |
| 破線の下線 | 外部キー |
描く順番
| 手順 | すること |
|---|---|
| 1 | 管理したいものを挙げる(エンティティ) |
| 2 | それぞれが持つ項目を挙げる(属性) |
| 3 | 1行を1つに決める項目を決める(主キー) |
| 4 | ものの間のつながりと、その個数を決める |
| 5 | 多対多を、間に置く表に分ける |
| 6 | 正規化で、同じ事実が1か所になっているか確かめる |
改修するときの読み方
既にあるE-R図に手を入れる形の出題が多くあります。 そのときは次の順で読みます。
| 見るところ | 確かめること |
|---|---|
| 凡例 | 線と下線が何を表すか |
| 主キー | どの列で1行が決まるか |
| つながりの個数 | 1対多の「多」はどちら側か |
| 足す項目をどこに置くか | その事実は、どのものについての事実か |
「その事実は何についての事実か」で、置く表が決まります。 講座ごとに決まる事実なら講座の表、受講の1件ごとに決まる事実なら受講の表です。
試験ではこう出る
科目A(旧・午前)では、エンティティ・属性・リレーションシップの対応が問われます。表、列、つながりです。
多対多を分ける処理も頻出です。間に表を置く、という部分が答えになります。
午後や応用情報(データベース)では、図の空欄を埋める形で出ます。足す属性の名前、主キーの組合せ、つながりの向きです。解答群が無く、自分で書くことが多いので、属性名の付け方を問題文の他の表に合わせる必要があります。
関連する用語
- 主キー
- 1行を1つに決める列。E-R図では実線の下線で示す
- 外部キー
- 別の表の主キーを指す列。つながりを表す
- 正規化
- 同じ事実を1か所にまとめる整理。E-R図を描いたあとに行う
- 関係データベース
- E-R図から作る先。表の形でデータを持つ
- クラス図
- 同じく関係を描く図。こちらは振る舞いも書く
ミニクイズ
E-R図において、エンティティと属性の関係を正しく説明しているものはどれか。
正解は 3番:エンティティは管理したいものの種類で表に対応し、属性はそれが持つ項目で列に対応する
エンティティは管理したいものの種類で、関係データベースでは表に対応します。属性はそのエンティティが持つ項目で、表の列に対応します。表の1行にあたるのはインスタンスや実現値と呼ばれるもので、エンティティそのものではありません。つながりを表すのはリレーションシップで、属性はつながりの個数を表すものではありません。
この分野をまとめて解く → データベースのミニテスト(全35問)
最終更新:2026-11-09