LESSON 15分

ストーリー

佐藤先輩
テーブルの関係は理解できた?じゃあ、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図

erDiagram
    departments {
        int id PK
        string name
        int manager_id
        decimal budget
    }
    employees {
        int id PK
        string name
        int department_id FK
        string position
        decimal salary
        date hire_date
        int manager_id
    }
    projects {
        int id PK
        string name
        int department_id FK
        decimal budget
        date start_date
        date end_date
        string status
    }
    project_members {
        int project_id PK,FK
        int employee_id PK,FK
        string role
    }

    departments ||--o{ employees : "所属"
    departments ||--o{ projects : "担当"
    projects ||--o{ project_members : "参加"
    employees ||--o{ project_members : "参加"

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 を参照する

自己参照リレーション

erDiagram
    employees {
        int id PK
        string name
        int manager_id "自己参照"
    }
    employees ||--o{ employees : "上司-部下"

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


実務でER図を読む場面

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

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


まとめ

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

チェックリスト

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

次のステップへ

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


推定読了時間: 15分