概要

ER図についてわかりやすく解説!具体例もつけて

ER図(Entity-Relationship Diagram)は、データベースの構造を視覚的に表現するための図です。ER図は、データベースのエンティティ(Entity)とそれらの関係(Relationship)を示し、データの構造とその関連性を明確にするのに役立ちます。

ER図の基本要素

  1. エンティティ(Entity):

    • 実体を表し、データベース内で保存される対象物(例えば、ユーザー、商品、注文など)。
    • 四角形で表される。
  2. 属性(Attribute):

    • エンティティの特性やプロパティを表す(例えば、ユーザーの名前、商品の価格)。
    • 楕円形で表される。
  3. リレーションシップ(Relationship):

    • エンティティ同士の関連性を表す(例えば、ユーザーが注文する、商品が注文される)。
    • 菱形で表される。
  4. 主キー(Primary Key):

    • 各エンティティ内で一意に識別できる属性(例えば、ユーザーID、商品ID)。
    • 属性名の下線で示される。
  5. 外部キー(Foreign Key):

    • 他のエンティティの主キーを参照する属性(例えば、注文テーブルのユーザーIDはユーザーテーブルの主キーを参照する)。
    • 通常は関係の一部として示される。

ER図の具体例

例: オンラインショッピングシステム

このシステムには、ユーザー(User)、商品(Product)、注文(Order)の3つのエンティティがあります。それぞれのエンティティには以下の属性があります。

  1. User

    • user_id (主キー)
    • username
    • email
    • password
  2. Product

    • product_id (主キー)
    • product_name
    • price
    • stock_quantity
  3. Order

    • order_id (主キー)
    • order_date
    • user_id (外部キー)
    • total_amount

そして、以下のリレーションシップがあります。

  • UserOrderの間には「UserがOrderを行う」というリレーションシップ。
  • OrderProductの間には「OrderがProductを含む」というリレーションシップ。

ER図の描画

  +-------------+           +--------------+           +-------------+
  |    User     |           |    Order     |           |   Product   |
  +-------------+           +--------------+           +-------------+
  | user_id     |<--------+ | order_id     |<--------+ | product_id  |
  | username    |          | order_date    |          | product_name |
  | email       |          | user_id (FK)  |          | price        |
  | password    |          | total_amount  |          | stock_quantity|
  +-------------+          +--------------+          +-------------+

詳細なER図

+-------------+             +--------------+             +-------------+
|   User      |             |    Order     |             |   Product   |
+-------------+             +--------------+             +-------------+
| PK user_id  |-----+       | PK order_id  |-------+     | PK product_id |
| username    |     |       | order_date   |       |     | product_name  |
| email       |     |       | FK user_id   |       |     | price         |
| password    |     |       | total_amount |       |     | stock_quantity|
+-------------+     |       +--------------+       |     +-------------+
                    |                             |  
                    +-------------<-------------+   
                            Places                         

リレーションシップの種類

  1. 1対1 (One-to-One):

    • 例: 人とそのパスポート。1人の人が1つのパスポートを持ち、1つのパスポートが1人の人に対応する。
  2. 1対多 (One-to-Many):

    • 例: ユーザーと注文。1人のユーザーが複数の注文を行うことができるが、1つの注文は1人のユーザーに対応する。
  3. 多対多 (Many-to-Many):

    • 例: 学生と授業。1人の学生が複数の授業を受け、1つの授業に複数の学生が登録される。

実際のER図の作成

ユーザー、商品、注文を持つオンラインショッピングシステムのER図

+----------------+       +----------------+       +----------------+
|     User       |       |     Order      |       |    Product     |
+----------------+       +----------------+       +----------------+
| PK user_id     |<-+    | PK order_id    |<-+    | PK product_id  |
|    username    |  |    |   order_date   |  |    | product_name   |
|    email       |  |    | FK user_id     |  |    |    price       |
|   password     |  +--< | total_amount   |  +--< | stock_quantity |
+----------------+       +----------------+       +----------------+
  1  |  \     1         /        |  \ 1              /   |   \
     |    \            /         |   \              /    |    \
     |     \  Places  /          |    \  Contains  /     |     \
     |      \        /           |     \          /      |      \
     +----------------+          +----------------+       +------+
            N                          N                           N

ツール

ER図を作成するためのツールは数多くあります。以下はその一部です。

  • Lucidchart: 直感的なドラッグアンドドロップインターフェースを持つオンラインツール。
  • draw.io: 無料で使用できるオンライン図作成ツール。
  • Microsoft Visio: プロフェッショナルな図作成ツール。
  • MySQL Workbench: MySQLデータベースの設計に特化したツール。
  • dbdiagram.io: 簡単にER図を作成できるオンラインツール。

ER図はデータベース設計の重要な部分であり、データ構造を視覚的に理解するのに役立ちます。

設計段階でのエンティティとその関係性を明確にすることで、データベース開発の効率と品質を向上させることができます。

-概要