ERD(エンティティ・リレーションシップ・ダイアグラム)とは?
ERD(Entity-Relationship Diagram)は、データベース設計においてエンティティ(実体)とその関係(リレーションシップ)を視覚的に表現する図であり、データモデリングの概念設計段階で広く使われるツールである。ビジネス要件を明確に反映し、関係者間の理解を深めるための重要な設計図といえる。
かつて中小製造業のあるプロジェクトで、在庫管理システムをゼロから構築する必要があった。紙ベースで管理されていた現場では「商品」「倉庫」「在庫数」の関係が曖昧で、たびたび発注ミスや過剰在庫が発生していた。そこで導入されたのがERDだった。まずは現場の担当者とのヒアリングから始まり、商品と倉庫をエンティティとして切り出し、その間に「在庫」という関係性を設けた。目に見える図で業務構造が整理されると、現場からも「これならわかりやすい」と声が上がり、業務改革が進んでいった。
1. ERDの目的と役割
- 情報構造の可視化:データ同士の関連を図式化することで、全体像を俯瞰しやすくなる。
- ビジネス要件の整理:業務におけるデータの流れや関係性を構造化し、業務ロジックの再確認や共有に役立つ。
- 論理データモデルへの橋渡し:ERDは概念モデルから論理モデルへの移行をスムーズに行うための基礎資料となる。
2. ERDの構成要素
- エンティティ(Entity):現実世界の情報対象(例:顧客、注文、製品など)
- 属性(Attribute):エンティティが持つデータの要素(例:顧客名、電話番号、注文日)
- リレーションシップ(Relationship):エンティティ間の関連(例:顧客は複数の注文を行う)
- 主キー(Primary Key):エンティティを一意に識別する属性
- 外部キー(Foreign Key):他エンティティとの関連を示すためのキー
ある通販企業では、顧客・商品・注文の三つのエンティティに対し、詳細な属性とリレーションシップを定義したERDを用意したところ、新人社員がわずか2日で業務構造を把握できるようになり、研修期間の大幅短縮につながった。
3. ERDの記法とルール
チェン記法(Chen Notation)
- 四角形:エンティティ
- 楕円形:属性
- ひし形:リレーションシップ
IE記法(Information Engineering Notation)
- 四角形:エンティティ
- 縦棒とカラス足記号:リレーションシップの多重度を表す(1対多、1対1など)
UMLクラス図との違い
4. ERD作成のステップ
- 業務要件に基づいてエンティティを抽出
- エンティティに必要な属性を定義
- エンティティ間のリレーションシップを定義(1:1, 1:N, N:M)
- 主キー、外部キーの設定
- 適切な命名規則に従って命名
- モデルレビュー(関係者との確認)
システム開発の現場で、最初のERD設計に関して「商品の型番とSKUをどう分けるか」という議論が白熱した。現場の意見を反映させながら何度もリファインし、最終的にはSKUレベルで在庫を管理する形に落ち着いた。この過程自体が、関係者の業務理解を深める良い機会になった。
5. ERD作成ツールの例
- オンラインツール:draw.io, Lucidchart, dbdiagram.io
- 専用ソフトウェア:ER/Studio, ERwin Data Modeler, MySQL Workbench
- コードベース:PlantUML, Mermaid(Markdown上で記述可能)
6. ERD活用の実践ポイント
- 実体の粒度(Granularity)を揃える:過度な抽象化や詳細化を避ける
- リレーションシップの意味を明確に記述:双方向性や依存関係の理解を促す
- 業務担当者と密に連携し、誤解のないモデル構築を心がける
現場から「商品とカテゴリーの関係が曖昧だ」という指摘があり、ERDにカテゴリー階層の表現を追加したことで、分類の明確化とメニュー画面の改善につながった。
まとめ
ERDは単なる図ではなく、業務とシステムをつなぐ「翻訳装置」としての役割を果たす。わかりやすく整ったERDは、後続の論理モデルや物理モデルの質を大きく左右する。設計者としての視点だけでなく、ユーザーの視点も意識して作成することが、優れたERDを作る第一歩である。
そして何より、ERDは「対話のきっかけ」である。関係者と図を囲んで会話しながら業務を可視化し、共通理解を育てていく。このプロセスこそが、データ駆動型の組織への第一歩となるのである。