ER図の使い方と活用メリット
- データベースの設計: ER 図は、関係データベースのモデリングや設計において、ロジックやビジネスのルール (論理データモデルの場合) および実装する特定の技術 (物理データモデルの場合) に関して使用されます。ソフトウェアエンジニアリングにおいては、ER 図は情報システムプロジェクトの要件を判断する最初のステップとして用いられるのが一般的です。その後のステップでは、特定のデータベースのモデル化にも用いられます。関係データベースには同値関係表が含まれ、必要に応じてこの表の方式で表すことが可能です。
- データベースのトラブルシューティング: ER 図は、既存のデータベースを分析し、ロジックや実装における問題を特定して、解決するために使用されます。図を描画することで、問題点が浮き彫りとなります。
- 企業情報システム: ビジネスプロセスに用いられる関係データベースの設計や分析に ER 図が使用されます。実体、行動、相互作用に関する処理済みのデータを用いるビジネスであれば、関係データベースの作成が役立つ可能性があります。プロセスの効率化、情報の発見が容易となり、成果の改善につながります。
- 業務改革 (BPR): ER 図は、業務改革に用いるデータベースの分析や新たなデータベースの作成に役立ちます。
- 教育: 現在の教育現場でデータベースは、教育目的で使用する関連情報を保存し、後に活用するために広く活用されています。こうしたデータ構造の計画に ER 図を活用することができます。
- 研究: 構造化デー タを主なテーマとする研究は数多いため、データ分析のための有用なデータベース構築において ER 図は重要な役割を果たす可能性があります。
ER図とは?
ER図とは、人、オブジェクト、コンセプトといった「実体」のシステム内での関連を示す設計図の一種です。ER図は、主にソフトウェアエンジニアリング、企業情報システム、教育および研究の分野における関係データベース設計やデバッグを目的として広く利用されています。
ERD または ER モデルとしても知られ、長方形、ひし形、楕円形などの一連の定義された記号と接続線を用いて、実体、関連とその属性の間の相互関連性を表すものです。実体を名詞、関連を動詞とした文法構造を反映する図でもあります。実体関連図とも呼ばれ、英語では(Entity Relationship Diagram)とも呼びます。
ER図は、実体そのものの間の関連ではなく、実体内の要素の関連に重きを置いたデータ構造図 (DSD) に関連した図です。また、ER 図はしばしば、プロセスやシステムの流れを描き出すデータフロー図 (DFD) とも関連して用いられます。
ER図には何を書く?4つの基本要素
ERDは、実体、関連と属性で構成されます。また、数字で関連を定義する濃度という概念も用いられます。以下の用語集をご覧ください。
エンティティ(実体)
人、オブジェクト、概念やイ ベントなど、定義可能で、関連するデータを格納可能な存在を指します。実体は名詞として捉えることが可能で、顧客、学生、車、または製品などがあり、一般に長方形で表されます。
実体型: 実体が特定の学生やアスリート個人を指すのに対し、実体型は学生やアスリートのグループといった定義可能な集団を指します。複数の顧客、学生、車、または製品なども例として挙げられます。
実体集合: 実体型と同じですが、例えば初日に授業に登録した学生など、特定の時点で定義されます。その他の例としては、先月購入した顧客、フロリダ州で登録された車などが挙げられます。関連用語としてインスタンスがあり、この場合には、特定の人や車が実体集合のインスタンスとして表されます。
実体の分類: 実体は強実体、弱実体、関連実体に分類されます。強実体 が自身の属性のみにより定義可能であるのに対し、弱実態 は自身の属性のみでは定義不可能です。関連実体は、実体集合内の実体 (または要素) を関連させます。
実体のキー: 実体集合内で実体を一意に定義する属性を指します。実体のキーには超キー、候補キー、主キーの3種類があります。超キー: 実体集合内である実体を共同で定義する一連の属性 (1つまたは複数)。候補キー: 超キーとして定義するための属性を最小限有する (=極小の) 超キー。実体集合には複数の候補キーが含まれる場合もあります。主キー: 実体集合を一意に定義するためにデータベース設計者が選択した候補キー。外部キー: 実体間の関連を定義するキー。
関係
実体の相互作用に加え、実体同士が関連する方法を示します。関連は動詞として捉えることができます。例えば、名前のある学生が講義に登録するとします。その学生と登録対象の講座が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 図の記号
物理データモデルは、実体関連図のうち最も詳細なもので、データベースへの情報の追加プロセスを表します。物理 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図(Entity Relationship Diagram)は、両方ともデータモデリングの手法であり、データベースやシステムの設計プロセスで使用されますが、それぞれ異なる側面を強調しています。概念モデル図は、ビジネス上の要件やプロセスを抽象化して表現し、ビジネス全体の理解を目的とします。
一方、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図の作成には、有効なアプローチが多数存在します。図の範囲と目的に沿った必要な情報が含まれていれば、良い図ができたと言えるでしょう。