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