ER図とは?
ER図とは、人、オブジェクト、コンセプトといった「エンティティ」のシステム内での関連を示す設計図の一種です。ER図は、主にソフトウェアエンジニアリング、企業情報システム、教育および研究の分野における関係データベース設計やデバッグを目的として広く利用されています。
ERD または ER モデルとしても知られ、長方形、ひし形、楕円形などの一連の定義された記号と接続線を用いて、エンティティ、リレーションとそのアトリビュート(属性)の間の相互関連性を表すものです。エンティティを名詞、リレーションを動詞とした文法構造を反映する図でもあります。エンティティリレーション図とも呼ばれ、英語では(Entity Relationship Diagram)とも呼びます。
ER図は、エンティティそのものの間の関連ではなく、エンティティ内の要素の関連に重きを置いたデータ構造図(DSD)に関連した図です。また、ER図はしばしば、プロセスやシステムの流れを描き出すデータフロー図(DFD)とも関連して用いられます。
ER図の使い方と活用メリット
データベースの設計:
ER図は、関係データベースのモデリングや設計において、ロジックやビジネスのルール(論理データモデルの場合)および実装する特定の技術(物理データモデルの場合)に関して使用されます。ソフトウェアエンジニアリングにおいては、ER図は情報システムプロジェクトの要件を判断する最初のステップとして用いられるのが一般的です。その後のステップでは、特定のデータベースのモデル化にも用いられます。関係データベースには同値関係表が含まれ、必要に応じてこの表の方式で表すことが可能です。
データベースのトラブルシューティング:
ER図は、既存のデータベースを分析し、ロジックや実装における問題を特定して、解決するために使用されます。図を描画することで、問題点が浮き彫りとなります。
企業情報システム:
ビジネスプロセスに用いられる関係データベースの設計や分析にER図が使用されます。エンティティ、行動、相互作用に関する処理済みのデータを用いるビジネスであれば、関係データベースの作成が役立つ可能性があります。プロセスの効率化、情報の発見が容易となり、成果の改善につながります。
業務改革(BPR):
ER図は、業務改革に用いるデータベースの分析や新たなデータベースの作成に役立ちます。
教育:
現在の教育現場でデータベースは、教育目的で使用する関連情報を保存し、後に活用するために広く活用されています。こうしたデータ構造の計画にER図を活用することができます。
研究:
構造化データを主なテーマとする研究は数多いため、データ分析のための有用なデータベース構築においてER図は重要な役割を果たす可能性があります。
ER図の3つの種類
通常、ERモデルとデータモデルは、以下の3種の詳細レベルまでで構成されます。
概念データモデル
最高レベルの層で、モデルに含まれる詳細が3層の中で最も少ないものです。このレベルの値はモデルの全体的な範囲を示し、システムアーキテクチャを反映します。小規模なシステムの場合には、このモデルを作成せずに論理データモデルの作成から開始することもできます。
論理データモデル
概念モデルに比べてより多くの詳細が含まれるモデルです。運用や処理に係るエンティティをより詳細に定義することができます。論理モデルは、実装予定の技術の影響を受けない独立したモデルです。
物理データモデル
各論理モデルから1つまたは複数の物理モデルを作成することができます。物理モデルは、実際のデータベース構築と実装に必要な技術的詳細を示したものでなければなりません。
同様の詳細や範囲レベルはデータフロー図など他の種類の図にも存在しますが、情報をやや異なる方法で分類するソフトウェアエンジニアリングの三層スキーマアプローチの点で相違が見られます。階層を追加してデータベース設計に必要な情報を追加し、ER図を拡張するエンジニアも見られます。スーパークラスやサブクラスの追加により、グルーピングを上下に拡張する例がその一つです。
ER図には何を書く?4つの基本要素
ER図は、エンティティ、リレーションとアトリビュートで構成されます。また、数字でリレーションを定義するオプショナリティという概念も用いられます。以下の用語集をご覧ください。
1. エンティティ(実体)
人、オブジェクト、概念やイベントなど、定義可能で、関連するデータを格納可能な存在を指します。エンティティは名詞として捉えることが可能で、顧客、学生、車、または製品などがあり、一般に長方形で表されます。
-
エンティティ型: エンティティが特定の学生やアスリート個人を指すのに対し、エンティティ型は学生やアスリートのグループといった定義可能な集団を指します。複数の顧客、学生、車、または製品なども例として挙げられます。
-
エンティティ集合: エンティティ型と同じですが、例えば初日に授業に登録した学生など、特定の時点で定義されます。その他の例としては、先月購入した顧客、フロリダ州で登録された車などが挙げられます。関連用語としてインスタンスがあり、この場合には、特定の人や車がエンティティ集合のインスタンスとして表されます。
-
エンティティの分類: エンティティは強エンティティ、弱エンティ ティ、関連エンティティに分類されます。強エンティティは自身のアトリビュートのみにより定義可能であるのに対し、弱エンティティは自身のアトリビュートのみでは定義不可能です。関連エンティティは、エンティティ集合内のエンティティ(または要素)をリレーションさせます。
-
エンティティのキー: エンティティ集合内でエンティティを一意に定義するアトリビュートを指します。エンティティのキーにはスーパーキー、候補キー、主キーの3種類があります。
- スーパーキー: エンティティ集合内でエンティティを共同で定義する一連のアトリビュート(1つまたは複数)。
- 候補キー: スーパーキーとして定義するためのアトリビュートを最小限有する(=極小の)スーパーキー。エンティティ集合には複数の候補キーが含まれる場合もあります。
- 主キー: エンティティ集合を一意に定義するためにデータベース設計者が選択した候補キー。
- 外部キー: エンティティ間のリレーションを定義するキー。
ERDは、実体、関連と属性で構成されます。また、数字で関連を定義する濃度という概念も用いられます。以下の用語集をご覧ください。
2. リレーション
エンティティの相互作用に加え、エンティティ同士が関連する方法を示します。リレーションは動詞として捉えることができます。例えば、名前のある学生が講義に登録するとします。その学生と登録対象の講座が2つのエンティティとなります。そして、これら2つのエンティティを登録という行為で接続するのがリレーションとなります。一般に、リレーションはひし形やラベルの形で接続線に直接表示されます。
- 再帰リレーション: リレーションに複数回参加する同一のエンティティを指します。
3. アトリビュート
エンティティの性質や特徴。一般に楕円や円で表示されます。
-
記述アトリビュート: エンティティに対するリレーションの特性や性質を指します。
-
アトリビュートの分類: アトリビュートは単純アトリビュート、複合アトリビュート、派生アトリビュート、さらに単一値アトリビュートと複数値アトリビュートに分類されます。
- 単純アトリビュート: アトリビュート値が不可分であり、これ以上分割できないことを意味します(電話番号など)。
- 複合アトリビュート: アトリビュートの副アトリビュートを指します。
- 派生アトリビュート: 他のアトリビュートから算出または派生したアトリビュートを指します(生年月日から算出した年齢など)。
- 複数値アトリビュート: 複数のアトリビュート値を表すものを指します(ある人の複数の電話番号など)。
- 単一値アトリビュート: 1つのアトリビュート値を表すものを指します。これらの分類を組み合わせて、単純単一値アトリビュート、または複合複数値アトリビュートなどとすることもできます。
4. オプショナリティ(濃度)
2つのエンティティまたはエンティティ集合間のリレーションの数値属性を定義します。最も重要なリレーションは、一対一、一対多、多対多の3つです。
-
一対一: 1つのメールアドレスに関連付けられた1人の学生など。
-
一対多(多対一): 1人の学生が複数の講義に登録しており、これらの講義すべてがその学生に1本の線で結び付けられているケース。
-
多対多: 学生グループが複数の教員と関連付けられ、他方で教員が複数の学生に関連付けられているケース。
-
オプショナリティの表示: 記号の表示箇所に応じて、オプショナリティは反対側と同じ側のどちらにも表示することができます。
-
オプショナリティ制約: リレーションに適用される最大数または最小数を指します。
ER図の記号と表記
一般的なER図の表記法
基本的な構成要素は共通ですが、ER図を視覚的に表現するために異なる表記法が用いられます。これらの表記法を理解することは、効果的に図を解釈し作成するために不可欠です。
-
カラスの足表記法(Crow's Foot Notation): これは広く使用されている表記法で、カラスの足に似た記号を使用してカーディナリティを明確に示します。
- 1本の線は「1つ」を示します。
- 円は「ゼロまたは1つ」(オプション)を示します。
- カラスの足(3つの枝)は「ゼロ、1つ、または複数」を示します。
- 1本の線とカラスの足は「1つまたは複数」を示します。
-
IDEF1X (Integration Definition for Information Modeling, Extended): 政府機関や防衛関連でよく使用されるIDEF1Xは、異なる記号を使用します。
- エンティティはラベル付きの長方形で表され、主キーは通常、長方形内の水平線の上に配置されます。
- リレーションシップは線で示され、線の終端の記号がカーディナリティとオプション性を示します。塗りつぶされた丸は必須の関係を、白丸はオプションの関係を示すことが多いです。
-
IE(Information Engineering)表記法: もう1つの一般的な表記法であるIEは、カーディナリティに異なる記号を使用します。
- 1本の線は「正確に1つ」を示します。
- 円は「ゼロまたは1つ」を示します。
- カラスの足は「ゼロ以上」を示します 。
- 破線は識別関係を示します。
どの表記法を選択するかは、多くの場合、特定のプロジェクト要件、組織の標準、および図の対象読者によって異なります。しかし、Lucidchart では、直感的なグラフィック形式を持つカラスの足記法を ERD 記法として推奨しています。
カーディナリティとオプショナリティ
ER図におけるリレーションシップを理解する上で重要な概念が、カーディナリティとオプショナリティです。
-
カーディナリティ: あるエンティティの1つのインスタンスが、別のエンティティのインスタンスと関連付けられる最大回数を示します。例えば、「1対多」のリレーションシップでは、一方のエンティティの1つのインスタンスが、他方のエンティティの複数のインスタンスと関連付けられる可能性があります。
-
オプショナリティ: あるエンティティの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図(Entity-Relationship Diagram)の各構成要素は、私たちが普段使う言語の品詞と対応させることができます。この考え方を提唱したのはピーター・チェンであり、この対応関係を利用することで、ER図の概念をより直感的に理解することができます。
以下に、ER図の要素と文法との対応を示します。
-
普通名詞: エンティティ型に対応します。
- 例: 学生、書籍、顧客
- 説明: エンティティ型は、特定のカテゴリや種類のものを指し示す一般的な名称です。例えば、「学生」というエンティティ型は、個々の学生すべてを包括する概念です。
-
固有名詞: エンティティに対応します。
- 例: サリー・スミス(という特定の学生)、ISBN 978-4-87311-832-4(という特定の書籍)
- 説明: エンティティは、エンティティ型の具体的な個々の実例やオブジェクトを指します。例えば、「サリー・スミス」は「学生」というエンティティ型の具体的な一例です。
-
動詞: リレーションシップ型に対応します。
- 例: 登録する、所有する、注文する
- 説明: リレーションシップ型は、エンティティ型とエンティティ型の間の関係性や相互作用を示すものです。例えば、「学生が講義に登録する」という関係において、「登録する」がリレーションシップ型にあたります。
-
形容詞: エンティティの属性に対応します。
- 例: 2回生(の学生)、赤い(表紙の書籍)、VIP(の顧客)
- 説明: エンティティの属性は、エンティティが持つ特性や性質を表します。例えば、「2回生」は「学生」というエンティティの属性の一つです。
-
関係副詞: リレーションシップの属性に対応します。
- 例: オンラインで(提供される講義)、いつ(注文されたか)
- 説明: リレーションシップの属性は、エンティティ間の関係性そのものが持つ詳細な情報を示します。例えば、「講義がオンラインで提供される」という関係において、「オンラインで」はリレーションシップの属性です。
さらに、ERROL (Entity-Relationship Relational Language) というデータベースクエリ言語は、自然言語の構造を模倣して設計されています。ERROLは、関係代数(RRA: Relational Algebra)というデータベース操作の理論に基づいており、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図を作成するには、さまざまな有効なアプローチがあります。図の範囲と目的に応じて必要な情報が含まれていれば、それが良い図と言えるでしょう。