ER図とは?
ER図(Entity-Relationship Diagram)は、データベース設計においてデータの構造を視覚的に表現するための図です。ER図は、エンティティ(実体)、エンティティ間のリレーションシップ(関係)、そして属性(エンティティが持つ情報)を表現します。以下では、ER図の基本的な作り方と、作成手順を解説します。
ER図の基本要素
ER図には、主に以下の3つの要素があります。
-
エンティティ(Entity):
– 実体を表すもので、データベース内で管理したい情報の対象を示します。エンティティは四角形で表され、例えば「顧客」「商品」「注文」などがエンティティに該当します。 -
リレーションシップ(Relationship):
– エンティティ間の関係を表します。リレーションシップは菱形で表され、例えば「購入」「所有」「登録」などがリレーションシップに該当します。 -
属性(Attribute):
– エンティティやリレーションシップが持つ特性や情報を表します。属性は楕円形で表され、例えば「名前」「価格」「日付」などが属性に該当します。
ER図の作成手順
1. エンティティの特定
最初のステップは、データベースで管理する必要のある主要なエンティティを特定することです。エンティティは、ビジネスの中で重要なデータの対象となるものです。たとえば、オンラインショッピングシステムでは「顧客」「商品」「注文」などがエンティティとして特定されます。
2. エンティティの属性を特定
次に、各エンティティが持つべき属性を特定します。属性はエンティティに付随するデータの要素です。例えば、「顧客」エンティティには「顧客ID」「名前」「住所」などの属性が含まれます。
3. リレーションシップの特定
エンティティ間の関係(リレーションシップ)を特定します。リレーションシップは、エンティティ同士がどのように関連しているかを示します。例えば、「顧客」と「注文」エンティティの間には「顧客が注文を行う」というリレーションシップが存在します。
4. リレーションシップの多重度(Cardinality)の定義
リレーションシップがどのようにエンティティ同士を結びつけるかを定義します。多重度には以下の種類があります:
– 1対1(1:1):1つのエンティティが他のエンティティに1つだけ関連する場合。
– 1対多(1:N):1つのエンティティが他のエンティティに複数関連する場合。
– 多対多(N:M):複数のエンティティが互いに複数関連する場合。
5. ER図を描画
最後に、特定したエンティティ、リレーションシップ、属性を図に描きます。エンティティは四角形、リレーションシップは菱形、属性は楕円形で表します。それぞれの要素を線で結び、リレーションシップの多重度を線の上に記載します。
ER図の具体例
例:オンライン書店のER図
エンティティ
– 顧客: 顧客ID、名前、住所、電話番号
– 商品: 商品ID、商品名、価格、在庫数
– 注文: 注文ID、注文日、数量
リレーションシップ
– 購入: 顧客と注文の間のリレーションシップ(1:N)
– 含む: 注文と商品の間のリレーションシップ(N:M)
ER図の例
顧客(Customer)
- 顧客ID(CustomerID)
- 名前(Name)
- 住所(Address)
- 電話番号(Phone)
注文(Order)
- 注文ID(OrderID)
- 注文日(OrderDate)
- 数量(Quantity)
商品(Product)
- 商品ID(ProductID)
- 商品名(ProductName)
- 価格(Price)
- 在庫数(StockQuantity)
リレーションシップ
- 顧客 1:N 注文 (顧客が注文を行う)
- 注文 N:M 商品 (注文が複数の商品を含む)
このように、ER図はデータベース設計の初期段階で非常に有用です。ER図を作成することで、データベースの構造やエンティティ間の関係が明確になり、その後のテーブル設計やクエリ作成が容易になります。
ツール:
ER図を作成するには、以下のようなツールを使用することができます。
– draw.io:無料のオンライン作図ツール。
– Lucidchart:直感的な操作が可能なオンラインツール。
– MySQL Workbench:データベース設計に特化したツール。
draw.ioを使ったER図の書き方については、以下の記事で解説しています。