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, *)で多重度を確認する
- PK / FK でキーの関係を確認する
ER図から読み取れる情報
関係の一覧
| 関係 | 読み方 |
|---|---|
| departments → employees | 1つの部署に複数の社員が所属する |
| departments → projects | 1つの部署が複数のプロジェクトを担当する |
| employees → project_members | 1人の社員が複数のプロジェクトに参加する |
| projects → project_members | 1つのプロジェクトに複数の社員が参加する |
| employees(自己参照) | manager_id は同じテーブルの id を参照する |
自己参照リレーション
+------------------+
| employees |
|------------------|
| * id (PK) |←┐
| name | |
| manager_id ----+--┘ 自己参照
| ... |
+------------------+
employees.manager_id は employees.id を参照しています。
これにより、「誰が誰の上司か」という階層構造を表現できます。
実務でER図を読む場面
| 場面 | 説明 |
|---|---|
| 新しいプロジェクトに参加 | 既存のDB構造を把握する |
| バグ調査 | データの流れを追跡する |
| 機能追加 | 新テーブルの設計に既存の関係を考慮する |
| レビュー | 設計の妥当性を確認する |
ER図が読めると、コードを見なくてもデータベースの構造がわかります。これは特に大規模なシステムで威力を発揮します。
まとめ
| ポイント | 内容 |
|---|---|
| ER図 | テーブルとその関係を視覚化した図 |
| エンティティ | テーブルを表す箱 |
| カーディナリティ | 1対1、1対多、多対多の表現 |
| PK / FK | 主キーと外部キーの明示 |
| 自己参照 | 同じテーブル内での参照関係 |
チェックリスト
- ER図の構成要素を理解した
- カーディナリティの記号を読める
- 今回のデータベースのER図を解読できた
- 自己参照リレーションを理解した
次のステップへ
ER図の読み方を学びました。 次のセクションで理解度チェックを行い、Step 1 の総まとめをしましょう。
推定読了時間: 15分