ER図とは?
ER図とは、人、オブジェクト、コンセプトといった「エンティティ」のシステム内での関連を示す設計図の一種です。ER図は、主にソフトウェアエンジニアリング、企業情報システム、教育および研究の分野における関係データベース設計やデバッグを目的として広く利用されています。
ERD または ER モデルとしても知られ、長方形、ひし形、楕円形などの一連の定義された記号と接続線を用いて、エンティティ、リレーションとそのアトリビュート(属性)の間の相互関連性を表すものです。エンティティを名詞、リレーションを動詞とした文法構造を反映する図でもあります。エンティティリレーション図とも呼ばれ、英語では(Entity Relationship Diagram)とも呼びます。
ER図は、エンティティそのものの間の関連ではなく、エンティティ内の要素の関連に重きを置いたデータ構造図(DSD)に関連した図です。また、ER図はしばしば、プロセスやシステムの流れを描き出すデータフロー図(DFD)とも関連して用いられます。
ER図の使い方と活用メリット
データベースの設計:
ER図は、関係データベースのモデリングや設計において、ロジックやビジネスのルール(論理データモデルの場合)および実装する特定の技術( 物理データモデルの場合)に関して使用されます。ソフトウェアエンジニアリングにおいては、ER図は情報システムプロジェクトの要件を判断する最初のステップとして用いられるのが一般的です。その後のステップでは、特定のデータベースのモデル化にも用いられます。関係データベースには同値関係表が含まれ、必要に応じてこの表の方式で表すことが可能です。
データベースのトラブルシューティング:
ER図は、既存のデータベースを分析し、ロジックや実装における問題を特定して、解決するために使用されます。図を描画することで、問題点が浮き彫りとなります。
企業情報システム:
ビジネスプロセスに用いられる関係データベースの設計や分析にER図が使用されます。エンティティ、行動、相互作用に関する処理済みのデータを用いるビジネスであれば、関係データベースの作成が役立つ可能性があります。プロセスの効率化、情報の発見が容易となり、成果の改善につながります。
業務改革(BPR):
ER図は、業務改革に用いるデータベースの分析や新たなデータベースの作成に役立ちます。
教育:
現在の教育現場でデータベースは、教育目的で使用する関連情報を保存し、後に活用するために広く活用されています。こうしたデータ構造の計画にER図を活用することができます。
研究:
構造化データを主なテーマとする研究は数多いため、データ分析のための有用なデータベース構築においてER図は重要な役割を果たす可能性があります。
ER図には何を書く?4つの基本要素
ER図は、エンティティ、リレーションとアトリビュートで構成されます。また、数字でリレーションを定義するオプショナリティという概念も用いられます。以下の用語集をご覧ください。
エンティティ(実体)
人、オブジェクト、概念やイベントなど、定義可能で、関連するデータを格納可能な存在を指します。エンティティは名詞として捉えることが可能で、顧客、学生、車、または製品などがあり、一般に長方形で表されます。
-
エンティティ型: エンティティが特定の学生やアスリート個人を指すのに対し、エンティティ型は学生やアスリートのグループといった定義可能な集団を指します。複数の顧客、学生、車、または製品なども例として挙げられます。
-
エンティティ集合: エンティティ型と同じですが、例えば初日に授業に登録した学生など、特定の時点で定義されます。その他の例としては、先月購入した顧客、フロリダ州で登録された車などが挙げられます。関連用語としてインスタンスがあり、この場合には、特定の人や車がエンティティ集合のインスタンスとして表されます。
-
エンティティの分類: エンティティは強エンティティ、弱エンティティ、関連エンティティに分類されます。強エンティティは自身のアトリビュートのみにより定義可能であるのに対し、弱エンティティは自身のアトリビュートのみでは定義不可能です。関連エンティティは、エンティティ集合内のエンティティ(または要素)をリレーションさせます。
-
エンティティのキー: エンティティ集合内でエンティティを一意に定義するアトリビュートを指します。エンティティのキーにはスーパーキー、候補キー、主キーの3種類があります。
- スーパーキー: エンティティ集合内でエンティティを共同で定義する一連のアトリビュート(1つまたは複数)。
- 候補キー: スーパーキーとして定義するためのアトリビュートを最小限有する(=極小の)スーパーキー。エンティティ集合には複数の候補キーが含まれる場合もあります。
- 主キー: エンティティ集合を一意に定義するためにデータベース設計者が選択した候補キー。
- 外部キー: エンティティ間のリレーションを定義するキー。
ERDは、実 体、関連と属性で構成されます。また、数字で関連を定義する濃度という概念も用いられます。以下の用語集をご覧ください。
リレーション
エンティティの相互作用に加え、エンティティ同士が関連する方法を示します。リレーションは動詞として捉えることができます。例えば、名前のある学生が講義に登録するとします。その学生と登録対象の講座が2つのエンティティとなります。そして、これら2つのエンティティを登録という行為で接続するのがリレーションとなります。一般に、リレーションはひし形やラベルの形で接続線に直接表示されます。
- 再帰リレーション: リレーションに複数回参加する同一のエンティティを指します。
アトリビュート
エンティティの性質や特徴。一般に楕円や円で表示されます。
-
記述アトリビュート: エンティティに対するリレーションの特性や性質を指します。
-
アトリビュートの分類: アトリビュートは単純アトリビュート、複合アトリビュート、派生アトリビュート、さらに単一値アトリビュートと複数値アトリビュートに分類されます。
- 単純アトリビュート: アトリビュート値が不可分であり、これ以上分割できないことを意味します(電話番号など)。
- 複合アトリビュート: アトリビュートの副アトリビュートを指します。
- 派生アトリビュート: 他のアトリビュートから算出または派生したアトリビュートを指します(生年月日から算出した年齢など)。
- 複数値アトリビュート: 複数のアトリビュート値を表すものを指します(ある人の複数の電話番号など)。
- 単一値アトリビュート: 1つのアトリビュート値を表すものを指します。これらの分類を組み合わせて、単純単一値アトリビュート、または複合複数値アトリビュートなどとすることもできます。
オプショナリティ(濃度)
2つのエンティティまたはエンティティ集合間のリレーションの数値属性を定義します。最も重要なリレーションは、一対一、一対多、多対多の3つです。
-
一対一: 1つのメールアドレスに関連付けられた1人の学生など。
-
一対多(多対一): 1人の学生が複数の講義に登録しており、これらの講義すべてがその学生に1本の線で結び付けられているケース。
-
多対多: 学生グループが複数の教員と関連付けられ、他方で教員が複数の学生に関連付けられているケース。
-
オプショナリティの表示: 記号の表示箇所に応じて、オプショナリティは反対側と同じ側のどちらにも表示することができます。
-
オプショナリティ制約: リレーションに適用される最大数または最小数を指します。
ER図の3つのレベル
通常、ERモデルとデータモデルは、以下の3層の詳細レベルまでで構成されます。
概念データモデル
最高レベルの層で、モデルに含まれる詳細が3層の中で最も少ないものです。このレベルの値はモデルの全体的な範囲を示し、システムアーキテクチャを反映します。小規模なシステムの場合には、このモデルを作成せずに論理データモデルの作成から開始することもできます。
論理データモデル
概念モデルに比べてより多くの詳細が含まれるモデルです。運用や処理に係るエンティティをより詳細に定義することができます。論理モデルは、実装予定の技術の影響を受けない独立したモデルです。
物理データモデル
各論理モデルから1つまたは複数の物理モデルを作成することができます。物理モデルは、実際のデータベース構築と実装に必要な技術的詳細を示したものでなければなりません。
同様の詳細や範囲レベルはデータフロー図など他の種類の図にも存在しますが、情報をやや異なる方法で分類するソフトウェアエンジニアリングの三層スキーマアプローチの点で相違が見られます。階層を追加してデータベース設計に必要な情報を追加し、ER図を拡張するエンジニアも見られます。スーパークラスやサブクラスの追加により、グルーピングを上下に拡張する例がその一つです。
ER図の記号と表記
一般的なER図の表記法
一般に、カラスの足記法が最も直感的なスタイルとされますが、好みに応じて OMT、IDEF、バックマン、UML 記法などを用いる場合もあります。しかし、Lucidchart では、直感的なグラフィック形式を持つカラスの足記法を ERD 記法として推奨しています。
カーディナリティとオプショナリティ
カーディナリティと は、1つのエンティティのインスタンスが他のエンティティのインスタンスに関連付けられる最大回数を指します。一方、オプショナリティとは、1つのエンティティのインスタンスが関連するエンティティのインスタンスに関連付けられる最小回数を指します。
カーディナリティとオプショナリティは、選択した記法に従い、リレーションを示す線とその終点のスタイル設定により表現されます。
概念 ER 図の記号
概念データモデルは、モデルセットに含めるべき内容の概略を定めるものです。概念 ERD は、論理データモデルの基礎として使用できます。また、ER モデル間にデータモデル統合の基礎となる共通リレーションを形成する目的でも使用されます。以下の記号はすべて、Lucidchart の UML 実体関連/実体関連図ライブラリに含まれています。
ERD エンティティの記号
エンティティとは、重要なデータを表すオブジェクトや概念を指します。エンティティは通常、製品、顧客、場所やプロモーションなどの名詞として表現されます。エンティティ関連図で一般に使用されるエンティティには以下の3つの種類があります:
実体の記号 | 名称 | 説明 |
---|---|---|
| 強実体 |
他のエンティティに依存せず、主キーを持つエンティティ。親エンティティと呼ばれることもある。 |
| 弱実体 |
他のエンティティに依存し、主キーを持たない。親となるエンティティがなければ意味を持たない。 |
| 関連実体 | 複数のエンティティ間のリレーションを表し、関連に固有のアトリビュートも持つ。 |
ERD リレーションシップの記号
実体関連図において、リレーションシップは2つのエンティティ間の相互作用を記録するために用いられます。リレーションシップは通常、エンティティ型のみでは識別することができない「割り当てる」や「関連付ける」、「追跡する」や「有益な情報を提供する」などの動詞の形をとります。
関連の記号 | 名称 | 説明 |
---|---|---|
| 関係 |
リレーションシップは、複数のエンティティ間のつながりを示します。 |
| 弱関連 |
弱リレーションシップは、弱実体とその所有者との間のつながりを示します。 |
ERD アトリビュートの記号
ユーザーがデータベースへの理解を深める上で役立つエンティティの特性が ERD アトリビュートです。アトリビュートには、概念 ER 図で強調されるさまざまなエンティティに関する詳細が含まれます。
属性の記号 | 名称 | 説明 |
---|---|---|
| アトリビュート |
アトリビュートは、エンティティ、リレーション(一対多や多対多)または一対一のリレーションの特性を示します。 |
| 多値アトリビュート |
多値アトリビュートは、複数の値を取ることができるアトリビュートです。 |
| 派生アトリビュート |
派生アトリビュートは、関連するアトリビュートの値からその値を計算できるアトリビュートです。 |
| リレーション |
リレーションは、複数のエンティティ間のつながりを示します。 |
物理 ER 図の記号
物理データモデルは、エンティティリレーション図(ERD)のうち最も詳細なもので、データベースへの情報の追加プロセスを表します。物理 ER モデルは、列名、列のデータ型、列の制約、主キー、外部キー、表間のリレーションなど、表の構造すべてを示します。
以下に示すとおり、表を使ってエンティティを表すこともできます。エンティティ関連表の主な要素を紹介します。
フィールド
フィールドは、対象のエンティティのアトリビュートを定める表の一部を構成します。アトリビュートは通常、ERD でモデル化する対象のデータベースの列とみなされます。
上記の図では、InterestRate と LoanAmount はいずれもエンティティのアトリビュートで、フィールドとして含まれています。
キー
アトリビュートを分類する方法のひとつがキーです。ER 図は、整理され、効率的で高速な状態にデータベ ースを保つためのさまざまな表により、ユーザーによるデータベースのモデル化に寄与します。データベース内のさまざまな表を最も効率的に相互リンクするためにキーが使われます。
-
主キー: 主キーは、エンティティの唯一のインスタンスを一意に識別するアトリビュートまたはアトリビュートの組み合わせです。
-
外部キー: 外部キーは、アトリビュートが他のアトリビュートと一対一または一対多のリレーションで関連付けられるたびに生成されます。
例えば、それぞれの車に対して資金提供を行うことができるのは銀行1行のみです。そのため、Bank(銀行)表の主キー「BankId」は Car(車)表で外部キー「FinancedBy」として用いられます。この「BankId」は複数の車の外部キーとして用いることができます。
型
型とは、表内の対応するフィールド内のデータの種類を指します。また、エンティティの組成を示すエンティティ型を指すこともあります。例えば、書籍のエンティティ型は著者、書名、発行日となります。
ER図の書き方
1. ER 図のエンティティを決定します
エンティティは通常、車、銀行、学生、製品などの名詞にあたります。エンティティは ER 図で最も重要なパーツです。ここでは例として、ある学生がある教授による講義に登録するという簡単な仕組みを概念的な ER 図で表していきます。この ER 図の例では、「学生」、「講義」、「教授」の 3 つがエンティティとなります。
2. ER 図のリレーションを特定します
リレーションは、エンティティが相互に作用する方法を示すものです。リレーションは通常、「購入する」、「含む」、「実行する」などの動詞にあたります。この例では、「登録する」と「講義を行う」というリレーションが 3 つのエンティティ間の相互作用を効果的に表しています。
3. アトリビュートを追加します
アトリビュートは、あるエンティティの特性を示し、モデルにとって重要な情報を精緻化するものです。ER 図では、各エンティティに含まれる特性を図式化する上で欠かせないものです。「ID 番号」、「氏名」や「SKU」などのアトリビュートが一般に使用されます。
4. 図の完成
わかりやすい図を作成する上では、論理的に ERD を整理することが非常に重要です。エンティティリレーション図の主な目的は、複雑なデータベースをモデル化することにあります。従って、シンプルで論理的な ERD の作成方法を学ぶことが肝要です。
Lucidchart を使ってERDを簡単に作成
Lucidchart のアカウントをお持ちでない方には、無料で登録することをおすすめします。
ログインし、テンプレートを選択するか、文書を新規作成します。
Lucidchart のインポート機能を使い、Visio, Excel, PowerPoint などの他の作図プラットフォームから既存の図をインポートして作成途中の文書を共同編集したり、作業を続行することも可能です。
自然言語のマッピング
ピーター・チェンに習い、ER 図の構成要素は品詞に例えることができます。以下に、ER 図と文法との対応を示します。
-
普通名詞: エンティティ型
例: 学生
(エンティティ型は、一般的なカテゴリやタイプを示すものです) -
固有名詞: エンティティ
例: サリー・スミス
(エンティティは、実際の個別のインスタンスやオブジェクトを示します) -
動詞: リレーション型
例: 登録
(リレーション型は、エンティティ間の関係や相互作用を示すものです。例として、「学生が講義に登録する」などの動作を表します) -
形容詞: エンティティのアトリビュート
例: 2回生
(アトリビュートは、エンティティやリレーションの特性や属性を示すものです) -
関係副詞: リレーションのアトリビュート
例: デジタルで
(リレーションのアトリビュートは、エンティティ間の関係の詳細を示します。例えば、ある講義が「オンラインで」提供される場合など)
また、ERROL というデータベースクエリ言語は、自然言語の構造を模倣したものです。ERROL は関係代数の 一種(RRA)に基づいており、ER モデルの言語的側面を捉えたもので、ER モデルと共に使用されます。
ER図とモデルにおける制約
関連するデータのみ利用可能
ER 図の本来の目的は、リレーションを示すことにあります。そのため、リレーション構造を示すためにのみ使用されます。ER 図は、データ間の関連性を可視化するために設計されています。
非構造化データは利用不可
データが個別のアトリビュートやフィールド、列、行に明確に記述されていない場合、ER 図の有用性は限定的になります。また、データの一部のみが利用可能な半構造化データにおいても、ER 図を使ったモデリングは適用が難しいことがあります。
既存のデータベースとの統合の困難さ
アーキテクチャが異なるため、ER モデルを既存のデータベースに統合する際に問題が生じることがあります。データベースの設計や構造が異なる場合、ER 図を活用する際に追加の調整や変換が必要になることがあります。
関連図や概念モデル図との違い
概念モデル図と ER 図(エンティティリレーション図)は、両方ともデータモデリングの手法であり、データベースやシステムの設計プロセスで使用されますが、 それぞれ異なる側面を強調しています。
概念モデル図は、ビジネス上の要件やプロセスを抽象化して表現し、ビジネス全体の理解を目的とします。概念モデル図は、非技術者向けに設計されており、ビジネスプロセスや要件の理解を促進するために使用されます。
一方、ER 図(エンティティリレーション図)は、データベースの設計や実装を示すために使用され、エンティティとそれらの間のリレーションを視覚的に表現します。ER 図は、データベース開発者や技術者向けに具体的なデータベース構造を示すもので、システムのデータの構造やその相互作用を明確にするために使用されます。
ER図の歴史
現在、ピッツバーグのカーネギーメロン大学の教員を務めるピーター・チェン(別名ピーター・ピンシャン・チェン)は、1970年代にデータベース設計のためにERモデルを開発した人物として知られています。MITのスローン経営学大学院助教授を務めていた1976年に、彼は「実体関係モデル: 統一されたデータの視点を目指して(The Entity-Relationship Model: Toward a Unified View of Data)」という著名な論文を発表しました。
より広 い意味では、事物の相互関連性を描写する概念の起源は、古代ギリシャのアリストテレスやソクラテス、プラトンの業績に見られます。近代においては、チャールズ・サンダース・パースやゴットロープ・フレーゲといった哲学者・論理学者による19世紀および20世紀の業績に見られる内容です。
1960年代および1970年代にかけて、チャールズ・バックマン(写真上)やA.P.G.ブラウンは、チェンのアプローチの先駆者たちと共に研究を進めていました。バックマンは一種のデータ構造図を開発し、これをバックマン図と呼びます。ブラウンは実世界のシステムのモデル化に関する論文を発表しました。また、ジェームズ・マーティンはER図をさらに洗練された形に進化させました。チェン、バックマン、ブラウン、マーティンをはじめとする研究者たちは、ソフトウェア設計で広く使用される統一モデリング言語(UML)の開発にも貢献しています。
ER図に関するその他のヒント
- 目的に応じた適切な詳細レベルを選択しましょう。必要な詳細度に基づいて、概念モデル、論理モデル、物理モデルのいずれを作成するかを決定することをおすすめします(各レベルの詳細については、上記を参照してください)。
- 冗長なエンティティやリレーションシップがないかを確認しましょう。
- データベースの問題のトラブルシューティングを目的とする場合、リレーションシップの抜けやエンティティ、アトリビュートの漏れに注意を払うことが重要です。
- すべてのエンティティとリレーションシップに適切なラベルが付けられていることを確認しましょう。
- 作成したい図の完成に必要であれば、ER図と関連するテーブルとの間で変換を複数回行うこともできます。
- 作成したER図が、格納すべきすべてのデータに対応していることを確認しましょう。
- ER図を作成するには、さまざまな有効なアプローチがあります。図の範囲と目的に応じて必要な情報が含まれていれば、それが良い図と言えるでしょう。