okpy

Pythonエンジニア兼テックリーダーが、多くのプロジェクトとチーム運営から得た実践的な知識を共有するブログです。

データモデリングを体現するERDの効用

ERD(エンティティ・リレーションシップ・ダイアグラム)とは?

ERD(Entity-Relationship Diagram)は、データベース設計においてエンティティ(実体)とその関係(リレーションシップ)を視覚的に表現する図であり、データモデリングの概念設計段階で広く使われるツールである。ビジネス要件を明確に反映し、関係者間の理解を深めるための重要な設計図といえる。

かつて中小製造業のあるプロジェクトで、在庫管理システムをゼロから構築する必要があった。紙ベースで管理されていた現場では「商品」「倉庫」「在庫数」の関係が曖昧で、たびたび発注ミスや過剰在庫が発生していた。そこで導入されたのがERDだった。まずは現場の担当者とのヒアリングから始まり、商品と倉庫をエンティティとして切り出し、その間に「在庫」という関係性を設けた。目に見える図で業務構造が整理されると、現場からも「これならわかりやすい」と声が上がり、業務改革が進んでいった。


1. ERDの目的と役割

  • 情報構造の可視化:データ同士の関連を図式化することで、全体像を俯瞰しやすくなる。
  • ビジネス要件の整理:業務におけるデータの流れや関係性を構造化し、業務ロジックの再確認や共有に役立つ。
  • 論理データモデルへの橋渡し:ERDは概念モデルから論理モデルへの移行をスムーズに行うための基礎資料となる。

2. ERDの構成要素

  1. エンティティ(Entity):現実世界の情報対象(例:顧客、注文、製品など)
  2. 属性(Attribute):エンティティが持つデータの要素(例:顧客名、電話番号、注文日)
  3. リレーションシップ(Relationship):エンティティ間の関連(例:顧客は複数の注文を行う)
  4. 主キー(Primary Key):エンティティを一意に識別する属性
  5. 外部キー(Foreign Key):他エンティティとの関連を示すためのキー

ある通販企業では、顧客・商品・注文の三つのエンティティに対し、詳細な属性とリレーションシップを定義したERDを用意したところ、新人社員がわずか2日で業務構造を把握できるようになり、研修期間の大幅短縮につながった。


3. ERDの記法とルール

  • チェン記法(Chen Notation)

    • 四角形:エンティティ
    • 楕円形:属性
    • ひし形:リレーションシップ
  • IE記法(Information Engineering Notation)

    • 四角形:エンティティ
    • 縦棒とカラス足記号:リレーションシップの多重度を表す(1対多、1対1など)
  • UMLクラス図との違い

    • UMLではオブジェクト指向を意識した構造表現がされるが、ERDはよりデータベース中心に関係を表現する。

4. ERD作成のステップ

  1. 業務要件に基づいてエンティティを抽出
  2. エンティティに必要な属性を定義
  3. エンティティ間のリレーションシップを定義(1:1, 1:N, N:M)
  4. 主キー、外部キーの設定
  5. 適切な命名規則に従って命名
  6. モデルレビュー(関係者との確認)

システム開発の現場で、最初の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は「対話のきっかけ」である。関係者と図を囲んで会話しながら業務を可視化し、共通理解を育てていく。このプロセスこそが、データ駆動型の組織への第一歩となるのである。