1. ホーム
  2. 記事一覧
  3. DB分野におけるER図の書き方やツールについて

2022.12.28

DB分野におけるER図の書き方やツールについて

この記事では10種類ほどあるER図の表記法の中から代表的な、IDEF1X(アイデフワンエックス、Integreation Definition 1Xの略)表記とIE(アイイー、Information Engineering)表記に焦点を当て、解説していきます。

ER図とは?

ER図(Entity Relationship Diagram)とは、データベース設計における代表的な設計図のことです。E(エンティティ=モノ)と、R(リレーション=関係)の組み合わせでシステムのデータやデータ間の処理構造を設計します。また、「エンティティ」「アトリビュート」「カーディナリティ」「リレーション」と呼ばれるオブジェクトで構成します。

なぜER図が必要か?

設計書自体を作らず物理テーブルを構築するという方法もありますが、テーブル数が多くなればなるほど、不整合が起こるリスクや、プログラマが仕様を理解できない、または勘違いすることで後戻りによるコストが発生してしまいます。そこで設計段階でER図という図を作成することで、システム全体の構成が俯瞰でき、品質の高いデータベースおよびプログラムを構築できるようになります。

ER図の作成順序

ER図はシステムの上流工程の中で段階的に設計します。各工程で作成するER図の状態のことを「データモデル」と呼びます。データモデルには「概念モデル」「論理モデル」「物理モデル」があり、以下の順番でデータモデルを作成します。

概念モデル

要件定義工程で作成するデータモデルです。最初にシステム全体における「もの」や「できごと」をエンティティ、リレーションシップとして洗い出し、概要を表したものとなります。

  • エンティティとは

    システムに登場する「モノ」を洗い出し、エンティティとして定義します。エンティティは以下の3種類に分離されます。また、独立エンティティ(他のテーブルのデータに依存することなくデータを保持できるエンティティ)を角の尖った四角で示し、従属エンティティ(他のテーブルが存在しないとデータを保持することができないエンティティ)を角の丸い四角で示します。

    • リソースエンティティ

      マスターテーブルとして管理される類いの情報です。基本的には参照(SELECT)される事が多く、更新(INSERT/UPDATE)される事は少ないです。

      例)顧客、商品、部門

    • イベントエンティティ

      定期的に発生するトランザクション等のテーブルとして管理される類いの情報で、

      「~日」等の属性を持ち、日次や月次等で起こる業務処理の事です。

      基本的には更新(INSERT/UPDATE)が多く発生します。

      例)受注、貸出、請求

    • サマリーエンティティ

      リソース系とイベント系のデータを、あるタイミングで集計した結果のサマリを格納するエンティティです。定期的な処理(分析やレポート)のための情報を格納するのが一般的です。

      例)商品別売上集計、部門別売上集計

  • リレーションシップとは

    エンティティ同士の関係を表現する線のことです。リレーションシップには向きがあり、関連の「主語」から「目的語」に向かって線を引きます。主語となるエンティティを「親エンティティ」、目的語となるエンティティを「子エンティティ」と呼びます。また、リレーションシップには以下の種類があります。

    • 依存型

       リレーションシップを引いた両エンティティ間で依存関係が成立する場合は、依存型のリレーションシップです。依存関係とは、「親エンティティのデータが存在しない場合、子エンティティのデータも存在できない」という意味です。依存型の場合は、親エンティティの「主キー」が子エンティティに於いても「主キー」となります。

    • 非依存型

      親エンティティが存在しなくても、独立して存在できる場合は非依存型のリレーションシップです。非依存型の場合は、親エンティティの「主キー」は子エンティティに於いて「外部キー」となります。  下図の社員マスタと社内サークルマスタは社員番号をもとにリレーションシップが成り立っていますが、紐づくデータがなくてもシステム的に成り立ちます。非依存型の場合、どちらのエンティティも四角の枠線で表現します。

論理モデル

論理モデルでは概念モデルに対して様々な肉付けを行います。具体的には属性(アトリビュート)、アイデンティファイア(主キー)、外部キーの定義や、リレーションの線には、エンティティが関連する最小件数 (オプショナリティ) と最大件数 (カーディナリティ (多重度) ) を示すための記号を使用します。ただし、論理モデルではデータ型の定義などの物理データベース向けの設計は行いません。つまり、論理モデルは「特定のデータベースに依存しないレベルで具体化した状態」となります。

  • アトリビュート(属性)とは

    エンティティの中の属性情報のことです。アトリビュートの中で「主キー」や「外部キー」も表現します。主キーとなる項目は、エンティティ上部で四角に囲い明示します。外部キーとなる項目は、項目名の後ろに「(FK)」と書いて明示します。その他の項目は、項目名のみ記述します。

    • 主キー(PK)とは

      主キー(Primary Key)はエンティティのレコードを検索するときに使用するカラムです。カラムの値は必ず一意(ユニーク)になります。

    • 外部キー(FK)とは

      外部キー(Foreign Key)は関連するエンティティの整合性を保つために設定します。たとえば予約情報テーブルの「ユーザID」の値は必ずログインマスタに存在する、などです。

  • カーディナリティとオプショナリティ

    カーディナリティとは、「1対1」「1対多」「多対多」など、リレーションの詳細を表現する記号のことです。日本語では「多重度」と呼ばれています。

    オプショナリティとは、IE記法で多重度にゼロが含むかを区別して表記するものです。「0以上」や「0または1」といったことも表現することができます。

    両者を使ってリレーションの始点と終点を定められた記号で表現します。IE記法とIDEF1X記法では表記方法が異なります。

ER図のIE記法とIDEF1X記法の例

物理モデル

詳細設計工程で作成するデータモデルです。Oracle Database等の特定の物理データベース向けに論理モデルの変換を行います。例えばデータ型を追加したり、物理データベースに即したアルファベットに変換します。ER図の最終形態がこの物理モデルとなります。物理モデル完成後は、その情報をもとに物理データベースを作成することができます。

ER図の作成ツール

ER図についてはExcelやVisioなどのアプリケーションで作成することも可能ですが、罫線や図形オブジェクトを使って作図するのは時間がかかります。昨今ではER図を作成する専用ツールが出ており、これらのツールを活用することで効率良くER図が作成できます。ここでは、無料で利用できるER図作成ツールを紹介します。

  • GitMind

    価格:無料

    無料で使用できるオンラインマインドマップ、及び概念データモデル作るWebツール「GitMind」は、作図に役立つ様々な図形や矢印などが提供されています。さらに、図を非公開にしたり、他の人と共有したり、機密コンテンツが含まれている場合にパスワードで保護したりできます。テンプレートが多く用意されているから、ER図書き方はとても簡単です。デスクトップ版もリリースしたので、Webで作図したくない時に利用でき、とても便利です。もちろんWebツールと同じく無料でも利用可能です。

    おすすめポイント:

    • オンライン無料で利用可能
    • 様々な実用な図形などが用意
    • URLで共有できる
  • Draw.io

    価格:無料

    登録を必要とせずにER図を作る無料Webツールです。図の保存場所はGoogleドライブ、Dropbox、またはコンピューターのハードドライブに指定できますので、再編集や閲覧、共有が非常に便利です。異なる国のユーザーのために使用する時に言語を選択できます。さらに、JiraやConfluenceなどの統合されたプログラムに合わせて図を編集し続けることができます。

    おすすめポイント:

    • 作成した図の保存場所を指定できる
    • 複数の言語をサポート
    • JiraとConfluenceの統合
  • Lucidchart

    価格:無料(制限あり)。月間7.95ドル/一人

    実体関連図作成ツールを使用して、リレーショナルおよび論理的な方法でデータベース構造を視覚化します。ドラッグアンドドロップでの操作のおかげで、使い方はとても簡単になります。1から図を作成したり、DBMSからERD図を自動的に生成して、データベーステーブルをアップロードしたりすることもできます。また、ERDをMySQL、Oracle、SQLServerなどのデータベースサービスにエクスポートできます。

    おすすめポイント:

    • ドラッグアンドドロップで操作可能
    • ERDを自動生成可能
    • 作成したER図をデータベースサービスにエクスポート可能

まとめ

ER図の書き方の手順とツールについて解説しました。表記方法の違いはありますが、考え方は同じです。重要なのは、いきなりER図を書き始めるのではなく、大枠から徐々に詳細に落とし込んでいくことです。これはER図に限らずシステム設計全般に言えることです。ER図を段階的に作成することによって、システムの全容を把握しつつ、質の高いデータベースを構築することを可能にします。

エンベーダー編集部

エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。

RareTECH 無料体験授業開催中! オンラインにて実施中! Top10%のエンジニアになる秘訣を伝授します! RareTECH講師への質疑応答可

関連記事