LESSON 15分

ER図の読み方

ストーリー

「テーブルの関係は理解できた?じゃあ、ER図を読めるようになろう」

「ER図って、設計書で見たことあります。箱と線が描いてあるやつですよね」

「そう。開発の現場では、ER図を見てデータベースの構造を把握することが日常的にある。読めないと話についていけないぞ」


ER図(Entity-Relationship Diagram)とは

ER図は、データベースのテーブル(エンティティ)と、テーブル間の関係(リレーションシップ)を視覚的に表現した図です。

ER図の構成要素

要素表現意味
エンティティ四角形(箱)テーブル
アトリビュート箱の中のリストカラム
リレーションシップテーブル間の関係
カーディナリティ線の端の記号1対1、1対多、多対多

カーディナリティ(多重度)の記法

IE記法(Information Engineering記法)

最もよく使われる記法です。

 1対1:    |---|---|
 1対多:   |---|--->|
 多対多:  |<--|---->|

詳細な記号:
  ||  → 必ず1つ(1 and only 1)
  |O  → 0または1(0 or 1)
  >|  → 1以上(1 or many)
  >O  → 0以上(0 or many)

よく見る表記パターン

departments ||--o{ employees : "所属"
  → 1つの部署に0人以上の社員が所属する

employees }o--o{ projects : "参加"
  → 社員は0個以上のプロジェクトに参加し、
    プロジェクトには0人以上の社員が参加する

今回のデータベースのER図

+------------------+       +------------------+
| departments      |       | projects         |
|------------------|       |------------------|
| * id       (PK)  |       | * id       (PK)  |
|   name           |       |   name           |
|   manager_id     |       |   department_id(FK)|
|   budget         |       |   budget         |
+--------+---------+       |   start_date     |
         |                 |   end_date       |
         | 1               |   status         |
         |                 +--------+---------+
         | *                        |
+--------+---------+                | 1
| employees        |                |
|------------------|                | *
| * id       (PK)  |       +-------+----------+
|   name           |       | project_members   |
|   department_id(FK)|      |-------------------|
|   position       |       | * project_id (PK,FK)|
|   salary         |-------| * employee_id(PK,FK)|
|   hire_date      |   *   |   role            |
|   manager_id     |       +-------------------+
+------------------+

PK = Primary Key(主キー)
FK = Foreign Key(外部キー)
 1 = 1つ
 * = 複数(0以上)

読み方のコツ

  1. を見てテーブルを把握する
  2. をたどって関係を理解する
  3. 記号(1, *)で多重度を確認する
  4. PK / FK でキーの関係を確認する

ER図から読み取れる情報

関係の一覧

関係読み方
departments → employees1つの部署に複数の社員が所属する
departments → projects1つの部署が複数のプロジェクトを担当する
employees → project_members1人の社員が複数のプロジェクトに参加する
projects → project_members1つのプロジェクトに複数の社員が参加する
employees(自己参照)manager_id は同じテーブルの id を参照する

自己参照リレーション

+------------------+
| employees        |
|------------------|
| * id       (PK)  |←┐
|   name           |  |
|   manager_id ----+--┘  自己参照
|   ...            |
+------------------+

employees.manager_idemployees.id を参照しています。 これにより、「誰が誰の上司か」という階層構造を表現できます。


実務でER図を読む場面

場面説明
新しいプロジェクトに参加既存のDB構造を把握する
バグ調査データの流れを追跡する
機能追加新テーブルの設計に既存の関係を考慮する
レビュー設計の妥当性を確認する

ER図が読めると、コードを見なくてもデータベースの構造がわかります。これは特に大規模なシステムで威力を発揮します。


まとめ

ポイント内容
ER図テーブルとその関係を視覚化した図
エンティティテーブルを表す箱
カーディナリティ1対1、1対多、多対多の表現
PK / FK主キーと外部キーの明示
自己参照同じテーブル内での参照関係

チェックリスト

  • ER図の構成要素を理解した
  • カーディナリティの記号を読める
  • 今回のデータベースのER図を解読できた
  • 自己参照リレーションを理解した

次のステップへ

ER図の読み方を学びました。 次のセクションで理解度チェックを行い、Step 1 の総まとめをしましょう。


推定読了時間: 15分