---
title: "ER図とは？エンティティとリレーションを整理する図【DS検定】"
description: "ER図（Entity Relationship Diagram）とは、データ同士の「もの」と「関係」を整理して可視化する図です。DS検定で問われる定義、具体例、似た概念との違い、選択肢の見分け方を整理します。主要な混同パターンや実務での読み取り方も確認します。"
canonical_url: "https://stemtazoo.github.io/ds/er-diagram/"
section: "ds"
---

<div style="font-size: 14px; margin-bottom: 12px;">
  <a href="/ds/">DS検定トップ</a>
  ＞ ER図とは？エンティティとリレーションを整理する図【DS検定】
</div>

## まず結論

ER図（Entity Relationship Diagram）とは、  
**データ同士の「もの」と「関係」を整理して可視化する図**です。

DS検定では、「テーブル構造を理解できているか」「1対多の関係を判断できるか」を問う問題で使われます。


## 直感的な説明

データベースは、いきなり作るとぐちゃぐちゃになります。

たとえばECサイトなら：

- 顧客
- 商品
- 注文
- カテゴリ

これらはバラバラに存在しているのではなく、

- 顧客は注文をする
- 注文は商品を含む
- 商品はカテゴリに属する

という「関係」があります。

ER図は、  
**データを箱で描き、関係を線でつなぐ設計図**です。

家を建てる前の設計図のようなもの、と考えるとイメージしやすいです。


## 定義・仕組み

ER図は、主に3つの要素で構成されます。

### ① エンティティ（Entity）

データのまとまり。  
テーブルになるもの。

例：
- 顧客
- 商品
- 注文

図では「四角」で表します。


### ② アトリビュート（Attribute）

エンティティの中の項目。

例（顧客エンティティ）：
- 顧客ID
- 名前
- メールアドレス

図では、エンティティの中に記載します。


### ③ リレーション（Relationship）

エンティティ同士の関係。

例：
- 顧客 ― 注文
- 商品 ― カテゴリ

線で結びます。


### ④ カーディナリティ（多重度）

「いくつ対いくつの関係か」を示すもの。

- 1対1
- 1対多
- 多対多

DS検定ではここが重要です。

例：
- 1人の顧客は複数の注文を持てる  
→ 1対多

選択肢では  
「1対1」や「多対多」と書き換えて混乱させてきます。


### IDEF1X記法との違い（関連用語）

ER図の書き方には種類があります。

- IE記法
- IDEF1X記法

DS検定では細かい記号よりも  
**「関係を読めるかどうか」が重要**です。

記号の暗記よりも、

- 主語はどちらか？
- 片側は複数になれるか？

を考えることが大切です。


## どんな場面で使う？

### ✔ データベース設計
新しいシステムを作る前に、構造を整理するとき。

### ✔ データ分析前の構造理解
複数テーブルを結合（JOIN）するとき。

DS検定では：

- この関係は1対多か？
- 外部キーはどこに入るか？
- 多対多をどう解消するか？

が問われます。


## よくある誤解・混同

### ❌ ER図＝テーブル図

違います。

ER図は「設計段階の概念図」です。  
物理的なデータベースそのものではありません。


### ❌ 線が引いてあれば全部同じ関係

違います。

重要なのは「カーディナリティ（多重度）」です。

DS検定では：

- 1対多なのに1対1と書かれている
- 多対多をそのまま実装できると書かれている

こうした選択肢が出ます。


### ❌ 多対多はそのままOK

実務では多対多は中間テーブルで分解します。

例：
学生 ― 授業（多対多）

→ 履修テーブルを作る

ここは典型的な出題ポイントです。


## まとめ（試験直前用）

- ER図は「データの設計図」
- エンティティ＝箱、リレーション＝線
- 最重要は「1対多」などの関係判断
- 多対多は中間テーブルで解消
- DS検定では関係の読み違いを狙ってくる


## 対応スキル項目（データエンジニアリング力シート）

- データ基盤設計
- データモデリング
- ★ データモデリングの基本概念を理解している

<hr>

<div style="margin-top: 16px;">
  🏠 <a href="/ds/">DS検定トップに戻る</a>
</div>
