Homediagrammingwhat is an er diagram

ER 図とは?記号の読み方から意味、作り方を解説

ER 図についての画像

ER図(ERD)は、データベース設計においてよく作成される図です。

システム設計では、他にもUMLなどの設計も使用されますが、ER図はDOA(データ中心 アプローチ)を使って作成される図であり、作成した図をそのまま物理データベース上に 変換できるため、データベース設計においてデファクトスタンダードとなっている設計図です。

しかし、実際にER図をどのように作成したり、どのように読めば良いのか イメージできないという方もいるのではないでしょうか?

この記事では、ER図についてや読み方、記号の意味、記法、作り方について 詳しく説明しています。

記事の最後にはおすすめのツールやテンプレートもご紹介しているので、 ER図を今から作成しようとしている方はぜひご確認ください。

それでは、ER図について見ていきましょう。

ER図とは?

ER図とはデータベース設計(データモデリング)で使用される図であり、 海外では「Entity Relationship Diagram(ERD)」と呼ばれています。

日本語でも「実体関連図」と呼ばれることがあり、データベースが必要となる システム設計やWebサイトの構築・分析にER図が使用されます。

ER図は「エンティティ」「アトリビュート」「リレーション」「カーディナリティ」と 呼ばれるオブジェクトで構成されており、ER図を作成することでデータ構造を俯瞰的に 設計することができるようになります。

このようにER図を使ってデータ構造を可視化することで、システムのデータや データ間の処理構造をわかりやすく表現できます。

ER図を活用するメリット

データベース設計においてはテーブル設計書を使ったり、設計書なしで直接 データベースの設計に取り掛かる人もいますが、ER図を活用することによって さまざまなメリットをデータベース設計で得ることができます。

以下でこれらのメリットについて見ていきましょう。

修正の手間を省くことができる

ER図で設計プロセスを整理することでシステム全体においての改善点や仕様を あらかじめ確認することができるようになるため、後の修正の手間を省くことができ、 効率的に設計作業を進められるようになります。

品質の高いデータベースおよびプログラム製造に必要な図であると言えるでしょう。

運用・保守フェーズで役立つ

システムは、継続的に確認、改善していく必要があります。

ER図を使って設計内容を保存、改善、更新することでシステムの運用・保守フェーズに おいて設計作業に関わるすべての人が情報をいつでも確認することができるようになります。

そのため、当初の設計者がいなくてもシステムの内容が把握しやすく、変更作業なども スムーズに進められます。

提供されているツールが多い

インターネット上ではオンラインでER図が作成できるツールやテンプレートが 多く提供されています。

そのため、ER図の作成作業を効率化できるだけでなく、設計者、自社組織の規模や ニーズに合ったツールをいつでも利用できます。

ER図のデータモデル

ER図の設計は、システム設計の初期に段階的に行われ、各工程で作成されるER図を 「データモデル」と呼びます。

データモデルには「概念モデル」「論理モデル」「物理モデル」と分類することができ、 段階的に考えながらデータベース設計ができることが特長となっています。

以下で各データモデルについて見ていきましょう。

概念モデル

要件定義で作成するデータモデルのことを「概念モデル」と呼び、このデータモデルは 最初にシステム全体における「モノ」や「イベント」をエンティティ、リレーション シップとして洗い出し、概要を表すために作成されます。

論理モデル

「論理モデル」では概念モデルにアトリビュート(属性)、アイデンティファイア (主キー)、外部キーの定義、リレーションにカーディナリティ(多重度)といった 要素を追加し、データモデルの設計を進めていきます。

ただし、論理モデルでは物理データベース向けの設計の行う必要はなく、あくまで 「特定のデータベースに依存しないレベルで具体化した状態」でデータモデルの設計をします。

物理モデル

詳細設計プロセスで作成するデータモデルを「物理モデル」と呼びます。

特定の物理データベース向けに論理モデルの変換を行うため、ER図の最終形態が この物理モデルだと言えるでしょう。

物理モデルが完成した後は、その情報をもとに物理データベースを作成することが できるようになります。

ER図で使われる要素と記号

上記では「エンティティ」「アトリビュート」「リレーション」「カーディナリティ」 というER図の作成に必要な要素が出てきました。

技術的な用語であり、まだはっきりとどのような役割が各要素や記号にあるのか イメージしにくいという方もいると思うので、以下で簡単にご説明したいと思います。

エンティティ(実体)

エンティティは、ER図の中の「実体(データのまとまり)」のことを指し、 これらのデータのまとまりの関係性をわかりやすく表現するのがER図の役割です。

アトリビュート(属性)

アトリビュートとは、エンティティの中にある個々のデータ項目を意味します。

アトリビュートの中では、「主キー」や「外部キー」も表現することができ、 主キーとなる項目は、エンティティ上部で線で区切って表じし、外部キーとなる項目は、 項目名の後ろに「(FK)」と書いてわかりやすく表現します。

その他の項目は、項目名のみ記載されます。

リレーション(関係)

リレーションは英語で「Relation」と書くことができ「関係」という意味があります。

ER図ではリレーションは、エンティティどうしの関係を表すための線であり、 リレーションの詳細は、「カーディナリティ」という記号を使って表現します。

カーディナリティ(多重度)

カーディナリティ(多重度)は、リレーションでつないだエンティティの関係の詳細を 表すために使われるER図の記号です。

「1対1」「1対多」「多対多」といった関係をカーディナリティを使って表せます。

1対1のカーディナリティ

1対1のカーディナリティは、エンティティAの各インスタンス(1行分のデータ)が エンティティBのただ一つのインスタンスとだけ関連する場合、及びその逆が 成立する場合に定義されます。

この型のカーディナリティは比較的まれで、厳密な依存関係が存在する場合に限られます。

1対多のカーディナリティ

1対多のカーディナリティは、エンティティAの一つのインスタンスがエンティティBの 複数のインスタンスと関連付けられる場合に発生します。

この型のカーディナリティは非常に一般的で、多くのデータモデルやビジネスルールを 表現するのに適しています。

多対多のカーディナリティ

多対多のカーディナリティは、エンティティAの複数のインスタンスがエンティティBの 複数のインスタンスと関連付けられる場合に定義されます。

この型のカーディナリティは、エンティティ間で複雑な関連を表現する必要がある場合に 使用されます。

多対多の関係をデータベースに直接表現することはできないため、関連テーブルや 中間テーブルを使用してモデル化されます。

カーディナリティの正確な定義はデータベース設計において重要で、適切なデータモデルを 構築するために必要です。

これにより、データの整合性を保ちながら、効率的な情報の検索、更新、管理が 可能になります。

依存・非依存関係

エンティティ間には依存関係・非依存関係という関係性があり「親エンティティ」と 「子エンティティ」としてエンティティ間の関係が表現されます。

双方のエンティティに紐づくデータが必ず存在する関係であるため、どちらかのデータが 欠ければシステムが成り立ちません。

ER図の表記法

ER図の表記法にはIDEF1X(Integreation Definition 1X:アイデフワンエックス)、 IE(Information Engineering:アイイー)という代表的な表記法があります。

以下で各表記法について学び、必要なシチュエーションに合わせていつでも 使えるようにしましょう。

IDEF1X表記法

IDEF1X表記法は、NIST(米国立標準技術研究所)で規格化されたER図の表記法です。

この表記法では、カーディナリティを「●」や「◇」の記号や英字、数字を 組み合わせて表現します。

IE表記法

IE表記法は、鳥の足に似たリレーションを使用することから「鳥の足記法」とも 呼ばれることがあります。

IDEF1X表記法と比較して、直感的に関係把握がしやすい特徴があり、カーディナリティ の「ゼロ」を「○」、「1」を「|(縦棒)」、「多」を「鳥の足」の記号を使って表し、 これらの記号を組み合わせることで様々な関係をこの表記法で表現できます。

ER図の書き方

ここまで、ER図についてや要素・記号、表記法について詳しく理解していただけたと 思います。

このセクションでは、実際のER図の書き方をステップにまとめてご説明します。

Step 1:要件定義を行う

ER図の作成を開始する前に、データベース設計の目的を明確にするための要件を 定義しましょう。

要件定義の際には、ユースケース図と表で表したユースケース記述も合わせて 作成することで、システムの使用場面がイメージしやすくなり、要件定義をスムーズに 進められます。

Step 2:エンティティを洗い出す

次にデータベースを形成するすべてのエンティティを洗い出しましょう。

データベースやソフトウェアをマッピングする場合は、そのソフトウェアの主要な 要素をすべて特定します。

しかし、プロセスやビジネス構造に重点を置く場合は、ビジネス要素と関連する役割に 焦点を当てます。

以下ではER図に記入するエンティティの例をご紹介します。

ヒト:例として顧客や従業員、学生、患者のことを指します。

モノ:例えば、製品、機械、自動車などを指します。

イベント:例えば、顧客獲得、販売完了、アカウントの更新などを指します。 この時点では、要素の順番はあまり気にしないでください。これは、リレーションシップを 特定するときに行うことになります。その代わり、データベース図ができるだけ 正確になるように、すべてのエンティティを洗い出すことに集中しましょう。

Step 3:アトリビュートを追加する

ここではエンティティにアトリビュートを追加していきます。

以下でアトリビュートの例を見ていきましょう。

エンティティの1つが製品の色であるとします。このエンティティの中で、 属性は以下のようになる可能性があります。

  • 色の名称

  • カラーコード

  • カラー ID

アトリビュートは、エンティティに詳細を加えるためのものです。

データベースを設計する場合やビジネスプロセスの全体像を表す場合、 必ず「アトリビュート」が必要になります。

Step 4:エンティティ間の関係を整理する

エンティティとアトリビュートを洗い出した後はその関係をER図に整理していきます。

ここでは、主キー・外部キーの設定などを行うために、エンティティどうしの関連性を 整理・定義していきます。

また、カーディナリティでの「1対1」「1対多」「多対多」といった相互関係を 専用の記号や線を使ってまとめていきましょう。

関係を整理し終わった後は、リレーションの種類を表すラベルを追加します。

例として「顧客」と「注文」という2つのエンティティが存在するとしましょう。

これらのエンティティがどのように関連しているかを示すために、接続線にラベルを 追加することができます。

ラベルには「場所」と記入され、これはエンティティが特定のアクション (顧客が 注文したとき) を通じて相互に関連していることを示します。

この情報は一見必要がなさそうなものですが、図を読む人にとって、ある要素が どのように、そしてなぜつながっているのかを十分に理解するための補足情報として 役立ちます。

Step 5:作成したER図を他の人と共有する

上記の「ER図を活用するメリット」でも少し触れたように、ER図は情報を 共有するためのドキュメントでもあります。

そのため、運用・保守フェーズにおいて設計作業に関わるすべての人が情報を いつでも参照できるように、図が完成したら共有するようにしましょう。

作成した人が異動であったり、退職する場合も引き継ぎ用の資料としてER図が活躍します。

まとめ

ER図(ERD)は、データベース設計(データモデリング)でよく使用される図です。

「エンティティ」「アトリビュート」「リレーション」「カーディナリティ」と 呼ばれるオブジェクトで構成されており、ER図を作成することでデータ構造を俯瞰的に 設計することができるようになります。

また、ER図の作成には「IDEF1X表記法」と「IE表記法」の2つの表記法があり、 図の詳細や使いたい記号に合わせて使い分けることができます。

ER図を作成することによりデータベース内の改善点や運用プロセス、要素をわかりやすく 可視化することができるため、データベース設計(データモデリング)を効率化できます。

初心者や熟練のエンジニアの方に関係なく、ER図を使ってデータモデリングプロセスを 効率化しましょう。

ER図の作成ならMiroがおすすめ

オンラインワークスペースであるMiroでは、便利ツールやテンプレートを使って いつでもER図を作成することができます。

また、ボード内のPlantUMLやMermaidアプリも活用することで、図をコードから 自動で生成することもでき、時間のかかる作図作業の自動化を実現できます。

オンラインでER図を作成するので、プロジェクトチームやクライアントともいつでも 簡単に作成した図や進捗の共有が可能です。

アカウント作成も無料なので、ぜひMiroでER図を作成してみてください。

以下のリンクから製品ページをご確認いただけます。

Miroの作図ツールMiroのER図作成ツールMiroのデータベース設計ツールMiroのER図テンプレートMiroの作図テンプレート

新しい働き方を Miro で実現しましょう!

Miro はチームで課題を解決し、新しいアイデアを発見するための「ワークスペース」です。