ER 図とは?正しい書き方や記号について解説
解説するトピック
解説するトピック
ER 図(実体関連図)はソフトウェアやアップデートの実装前にデータベース内の要素間の関係を分析することに役立つシステム図です。
システムやプロセスを図を使って可視化することで、エンティティ(モノ)の相互作用やソフトウェアやビジネスプロセスの中での情報の一目で理解できるようになります。
この記事では、そんな ER 図についてや、使用される記号、作成方法など、ER 図について知って得する情報をすべてまとめて紹介しています。
プロジェクトの工数の最適化や開発においてのシステムの効率的な改善に ER 図を活用できるようになりましょう。
また、インターネット上では ER 図の作成に役立つ Miro のようなオンラインツールがたくさん提供されています。プロジェクトのニーズに合ったツールを使用することで、図の作成にかかる時間を大幅に削減したり、プロジェクトメンバーといつでも図を共有することが可能です。
ER図(実体関連図)とは?
ER図(実体関連図)とは、エンティティ(人、モノ、および概念)がどのように相互作用しているかを表すための図です。このデータモデルは、開発者と設計者がソフトウェアの主要な要素間の関係を視覚化する時によく使用されます。
ER 図は 1970年代にコンピューター科学者のピーター・チェンによって考案され、その後、企業がデータベースを設計する際などによく使用されています。しかし、ER 図を使用することにより担当者間の関係(例:プロダクトマネージャーと開発者)やビジネス要素どうし(例:サプライチェーン)、製品バックログなどのデータを図で視覚化することができます。
この図はフローチャートの1つであり、データがあるエンティティから次のエンティティへどのように流れるかを示す論理モデルとして機能します。このわかりやすい形式により、ソフトウェア開発者や設計者はシステムの構造を明確に理解することができます。
ER 図で使用される記号
ER 図の作成には特別な記号が用いられます。ここでは最も一般的に使用される記号をご紹介します。
長方形
長方形は「強実体」を表しています。強実体にはそれに付属する「弱実体(二重の長方形)」が存在します。
楕円形
「属性」を表す楕円形であり、日付や番号、役職などのエンティティの属性を表します。
ひし形
ひし形は、エンティティ間の「関係」を示すために使用されます。
矢印と接続線
線と矢印は、どのエンティティが互いに関連しているかを示すために使用されます。
カーディナリティ
カーディナリティは一方から他方へどれだけの情報が流れるかを示すものです(詳しくは後でご説明いたします)
データベース設計に ER 図が便利な理由
新しいソフトウェアを設計する際に、開発者やデータベース設計者は、エンティティがどのように連携しているか、エンティティの属性、エンティティ同士がどのように関連しているかを知る必構造を視覚化するためのシンプルで効果的な方法を必要とします。
そこで役立つのが、論理的なフレームワークである ER図 です。
ER 図を使用することで開発者は新しいデータベースのすべての主要な要素をマッピングすることができます。ソフトウェアがどのように機能するかを確認し、特定の関係を事前にテストし、本稼働前にソフトウェアのギャップをピンポイントで特定することで、ソフトウェアが実施される時によりスムーズなプロセスで実施できるようになります。
また ER 図を作成することは開発者が既存のデータベースの改善点を発見することにも役立ちます。
また、ER 図を使用することにより既存のソフトウェアのどこに改善が必要かを簡単に視覚化することができます。そして、開発者はデータベースの問題を特定して、ソフトウェアを改善することができます。
ER の3種類の要素
以下では ER 図を構成する3種類の要素についてご紹介します。
エンティティ(実体)
通常、長方形で表示されるエンティティは名詞(物、人、概念、イベントなど)のことを指します。異なる記号は、異なるタイプのエンティティを表現しています。
例えば「強エンティティ(実体)」は、通常長方形で表現され、「弱エンティティ(実体)」は二重の長方形で表現されます。
属性
属性はエンティティの特性を指します。例えば、ER図が学生が大学に出願するために使用するソフトウェアをマッピングしていると定義しましょう。
「学生」エンティティの下には、属性として次の情報「Student_No, Student_Name, and Course_Of_Study」が記載されます。
リレーションシップ
ER図では、接続線と矢印にラベルが付きます。これらのラベルは、エンティティがどのように相互作用するかを表し、開発者にエンティティ間の関係性を示します。接続線の種類によって意味も異なり、あるエンティティから次のエンティティにどれだけのデータが流れるかを開発者に示すことに役立ちます。これらは基数的な関係であり、後で詳しく説明します。
これら3つの構成要素により開発者は新規または既存のデータベースの主要な要素をマッピングすることができるようになります。
ER 図を使用するメリット
ER 図を使用する主なメリットについてここでは説明したいと思います。
1. リレーションシップ(相互関係)の視覚化
ER 図は、エンティティ間の関係を視覚化した物理モデルです。これにより、エンティティが互いにどのように関係し、その関係がどのように機能し、これらの関係のどこを改善できるかを特定することができます。
2. 複雑なシステムをシンプルに表現
ER 図を使用することにより複雑なシステムやデータベースを図解することができます。エンティティどうしがどのように関連し、作用し合っているかを分析することでシステムがどのように機能しているかを効率的に理解することができます。
3. 従業員とステークホールダーとの情報共有に活躍
ER 図などのロジカルなデータモデルを使用することにより、他の人にシステムの仕組みをわかりやすく説明することができます。
4. 簡単に作成できる
ER 図はシンプルで理解しやすい構造を持っています。図を作成するためにソフトウェア開発の知識やその他の専門知識も必要ありません。また、Miro ではテンプレートを使用することであっとい間に図を完成させることができます。
ER 図の例
Miro の ER 図テンプレートの使用事例から物理データモデルがどのように機能するのか見ていきましょう。
以下の例では、製品を購入し受け取るまでのカスタマージャーニーのステージを ER 図を使用して表現しています。製品が発注されると、ビジネスはその製品を識別し、それを顧客に向けて発送します。
この ER 図では、図内のエンティティがお互いにどう作用し合うかをまず顧客とその属性から分析します。ここでは、特定の注文に関連するすべての属性の情報から、顧客の注文への「一対多」の基数性を使用します。基本的に、1 人の顧客が複数の注文をしたり、1 回の購入で複数の商品を注文したりすることを示します。
その後、注文エンティティは2方向に分岐します。図内のフローは右側の商品と商品カテゴリーに沿って記載されます。これは、顧客がどの製品を注文したかを正確に判断するために必要な情報となります。
この情報を受け取った後は、顧客に製品を送るための配送フェーズに移行します。
上記の例は、ER 図の使用事例の1つですが、ER 図がいかに汎用性の高いものであるかを示しています。
ER 図の作り方
Miro の作図ツールでは直感的な ER 図の作成が可能です。まずは無料で使用できる ER 図テンプレートを使用し、以下のステップに従って ER 図を作成しましょう。
1. エンティティを特定する
最初のステップは、データベースやプロセスを形成するすべてのエンティティを特定することです。
データベースやソフトウェアをマッピングする場合は、そのソフトウェアの主要な要素をすべて特定します。しかし、プロセスやビジネス構造に重点を置く場合は、ビジネス要素と関連する役割に焦点を当てます。
最終的にマッピングしようとするモデルに対するエンティティを特定するのは、あなた次第です。ここでは、ER 図のエンティティの例をいくつか紹介します。
ヒト:例として顧客や従業員、学生、患者のことを指します。
モノ:例えば、製品、機械、自動車などを指します。
イベント:例えば、顧客獲得、販売完了、アカウントの更新などを指します。この時点では、要素の順番はあまり気にしないでください。これは、リレーションシップを特定するときに行うことになります。その代わり、データベース図ができるだけ正確になるように、すべてのエンティティを洗い出すことに集中しましょう。
2. 属性を追加
ここではエンティティの属性を追加します。例を使って説明しましょう。
エンティティの1つが製品の色であるとします。このエンティティの中で、属性は以下のようになる可能性があります。
— 色の名称 — カラーコード — カラー ID
これらの情報はすべて、エンティティに詳細を加えるためのものです。データベースをマッピングする場合でも、ビジネスプロセスの全体像を表す場合でも「属性」が不可欠になります。属性は、エンティティを定義するすべての要素で必要となります。
3. エンティティ感の関係を明確に記入する
エンティティと属性が揃ったら、次はその関係をマッピングします。
接続線と矢印を使用して、エンティティを接続して、その関係を示しましょう。すべてのエンティティが関連する必要はありません。互いに関連し合う要素に焦点を当て、それらを接続しましょう。
すべての接続線が揃ったら、今度はリレーションシップの種類を表すラベルを追加します。
例として「顧客」と「注文」という2つのエンティティが存在するとしましょう。
これらのエンティティがどのように関連しているかを示すために、接続線にラベルを追加することができます。ラベルには「場所」と記入され、これはエンティティが特定のアクション (顧客が注文したとき) を通じて相互に関連していることを示します。
この情報は小さなものですが、図を読む人にとって、ある要素がどのように、そしてなぜつながっているのかを十分に理解するための補足情報となります。
4. カーディナリティ(基数)の定義
また、他の追加情報を表す方法として、カーディナリティ(基数)を使用する方法があります。
基数とは、エンティティ間の関係の数値的な属性を定義するものです。これは、エンティティ間でどれだけの情報やデータが流れるかを表す時に使用されます。
一般的なカーディナリティの例としては、以下のようなものがあります。
一対一の関係
一度に一つの商品のみを購入した顧客
一対多の関係
一度に複数の商品を購入した顧客。
多対多の関係
一度に複数の商品を購入するした複数の顧客。
各接続線や矢印の上にある小さな記号は、この数値を反映しています。この記号は、情報の量と方向によって変化します。
図をできるだけ明確かつ簡潔にするためには、カーディナリティを考慮する必要があります。これにより、エンティティ間で移動する情報の量と、移動する方向を正確に示すことができます。その結果、図を読んだ人は、データベースやシステム全体のデータの流れを一目で理解することができます。
5. 作成した ER 図を共有する
ER 図が完成した後は、関係するステークホルダーに図を共有しましょう。これにより、1つのボードだけでチームメンバーや外部の関係者(投資家や株主など)からの質問やフィードバックを収集することができるようになります。
また Miro の ER 図作成ツールを使用することに図の作成はもちろんのことリンクやPDFファイルを通して作成した図を簡単に他のユーザーと共有することができます。
6. 更新と編集
時間が経つにつれて、概念モデルは変化していくでしょう。ソフトウェアの更新が必要になったり、データベースに新しい要素が必要になったり、チーム構成図がすぐに古くなったりします。
ER 図を最新のものに維持するためには、定期的に更新する必要があります。何か変更があるたびに、図を編集するようにしましょう。
例え変更点がなくても、図を見直してデータベースやプロセスを改善できるか考えてみましょう。
図の更新は時間のかかる作業ですが、Miro のホワイトボードツールを使用することにより、このプロセスを効率的に実行することができます。
ドラッグ&ドロップ機能を使えば ER 図の構成要素や新しいエンティティの図形を移動したり、テキストを簡単に編集することができます。また、すべての変更がリアルタイムで表示されるため、チームの誰もが、どこにいても常に最新の図を確認することができます。
新しい働き方を Miro で実現しましょう!
Miro はチームで課題を解決し、新しいアイデアを発見するための「ワークスペース」です。