データベース設計

ER図 いーあーるず

エンティティリレーションシップカーディナリティデータベース設計UML概念設計
ER図について教えて

簡単に言うとこんな感じ!

ER図は「DBの設計図・地図」みたいなものだよ!どんなデータ(エンティティ)があって、それらがどうつながっている(リレーションシップ)かを図で表すんだ。「1人の顧客が複数の注文を持つ」「1つの注文に複数の商品が入る」みたいな関係を視覚化して、開発チーム全員が共通理解を持てるようにするんだ!


ER図とは

**ER図(Entity-Relationship Diagram / ERD)とは、データベースの構造をエンティティ(Entity:実体)リレーションシップ(Relationship:関係)**を用いて視覚的に表現した設計図です。1976年にピーター・チェンが提唱したER(実体関連)モデルを図化したものです。

ER図を作成する主な目的は2つです。1つは業務要件の整理:「どのようなデータが存在し、どう関係しているか」を業務担当者とエンジニアが共同で確認・合意するため。もう1つはデータベース設計の設計書テーブル・カラム・キー・リレーションの定義をドキュメントとして残すためです。

ER図には表記法の違いがいくつかあります。チェン記法(原型の記法)、IE記法(鳥足記法)(現在最も広く使われる)、UML記法クラス図の拡張)が代表的です。DBeaverやA5:SQL Mk-2・DrawioなどのツールでER図を自動生成・編集できます。


ER図の主要要素

要素記号説明
エンティティ四角形データの主体顧客・商品・注文
属性楕円(チェン)/ カラム(IE)エンティティが持つ情報顧客名・価格・日付
リレーションシップ線・記号エンティティ間のつながり注文する・含む・属する
カーディナリティ1, N, M等の記号関係の多重度1対多・多対多
主キー下線(チェン)/ PK(IE)一意識別子customer_id
外部キーFK他テーブルへの参照order.customer_id
ER図(IE記法)— ECサイトの注文管理 customers 🔑 customer_id name email created_at orders 🔑 order_id customer_id (FK) order_date status total_amount order_items 🔑 item_id order_id (FK) product_id (FK) products 🔑 product_id name price category 1 N 1 N N 1

歴史と背景

  • 1976年:ピーター・チェンがER(Entity-Relationship)モデルを論文で提唱
  • 1980年代:CASE(Computer-Aided Software Engineering)ツールでER図が普及
  • 1990年代:IE記法(鳥足記法)・UML記法が登場。ツールの自動生成機能も充実
  • 2000年代:MySQL Workbench・ERwin・PowerDesignerなど専用ツールが充実
  • 2010年代:dbdiagram.io・DrawioなどWebツールの登場で手軽に作成できるように
  • 現在:Notionやドキュメントツールへの埋め込み、DBからの自動リバース生成が標準化

ER図の表記法比較

表記法カーディナリティ表現特徴
チェン記法1・N・M概念設計向け。原型だが現在は少ない
IE記法(鳥足), ○, <鳥足>
UML記法1, *, 0..1オブジェクト設計と連携しやすい
IDEF1X点・線の組み合わせ米政府・大型プロジェクト向け

関連する規格・RFC

規格・RFC番号内容
ISO/IEC 9075 (SQL標準)ER図から導出されるリレーショナルスキーマの基準
UML 2.xクラス図を使ったER図表記の標準
IDEF1X (NIST FIPS 184)米国政府標準のER表記法

関連用語