Diagram Illustration

ER図(実体関連図)とは?


目次

データベース設計などに使われる「ER図(実体関連図)」の起源、記法、例、コンポーネント、種類、制限などを、Lucidchartの5分で学べるかんたんガイドで、ER図を描く手順を学びましょう。

ER 図とは?

実体関連 (ER) 図は、人、オブジェクト、コンセプトといった「実体」のシステム内での関連を示すフローチャートの一種です。ER 図は、主にソフトウェアエンジニアリング、企業情報システム、教育および研究の分野における関係データベースの設計やデバッグを目的として広く利用されています。ERD または ER モデルとしても知られ、長方形、ひし形、楕円形などの一連の定義された記号と接続線を用いて、実体、関連とその属性の間の相互関連性を表すものです。実体を名詞、関連を動詞とした文法構造を反映する図でもあります。

ERD の例

ER 図は、実体そのものの間の関連ではなく、実体内の要素の関連に重きを置いたデータ構造図 (DSD) に関連した図です。また、ER 図はしばしば、プロセスやシステムの流れを描き出すデータフロー図 (DFD) とも関連して用いられます。

ER モデルの歴史

現在、ピッツバーグのカーネギーメロン大学教員を務めるピーター・チェン(別名ピーター・ピンシャン・チェン)が、1970年代にデータベース設計のために ER モデルを開発した人物として知られています。MIT のスローン経営学大学院助教授を務めていた1976年に、彼は「実体関連モデル: 一体化されたデータ像を目指して (The Entity-Relationship Model: Toward a Unified View of Data)」と題した著名な論文を発表しています。

より広い意味では、事物の相互関連性の描写の起源は、古代ギリシャ時代のアリストテレス、ソクラテスやプラトーの業績に見られます。近代では、チャールズ・サンダース・パースやゴットロープ・フレーゲといった哲学者、論理学者の19世紀と20世紀の 業績にも見られる内容です。

1960年代および1970年代までに、チャールズ・バックマン (写真上) や A.P.G. ブラウンはチェンのアプローチの先達に当たる研究者たちと共同で研究を進めていました。 バックマンは一種のデータ構造図を開発し、この図は彼の名からバックマン図と名付けられています。ブラウンは実世界のシステムのモデル化に関する論文を発表しています。 また、ジェームズ・マーティンは ERD をより洗練されたものに進化させました。チェン、バックマン、ブラウン、マーティンを始めとする研究者らは、ソフトウェア設計に広く使われる統一モデリング言語 (UML) の開発にも貢献しています。         

実体関連図の用途

  • データベースの設計: ER 図は、関係データベースのモデリングや設計において、ロジックやビジネスのルール (論理データモデルの場合) および実装する特定の技術 (物理データモデルの場合) に関して使用されます。ソフトウェアエンジニアリングにおいては、ER 図は情報システムプロジェクトの要件を判断する最初のステップとして用いられるのが一般的です。その後のステップでは、特定のデータベースのモデル化にも用いられます。関係データベースには同値関係表が含まれ、必要に応じてこの表の方式で表すことが可能です。
  • データベースのトラブルシューティング: ER 図は、既存のデータベースを分析し、ロジックや実装における問題を特定して、解決するために使用されます。図を描画することで、問題点が浮き彫りとなります。
  • 企業情報システム: ビジネスプロセスに用いられる関係データベースの設計や分析に ER 図が使用されます。実体、行動、相互作用に関する処理済みのデータを用いるビジネスであれば、関係データベースの作成が役立つ可能性があります。プロセスの効率化、情報の発見が容易となり、成果の改善につながります。
  • 業務改革 (BPR): ER 図は、業務改革に用いるデータベースの分析や新たなデータベースの作成に役立ちます。
  • 教育: 現在の教育現場でデータベースは、教育目的で使用する関連情報を保存し、後に活用するために広く活用されています。こうしたデータ構造の計画に ER 図を活用することができます。
  • 研究: 構造化データを主なテーマとする研究は数多いため、データ分析のための有用なデータベース構築において ER 図は重要な役割を果たす可能性があります。

ER 図の構成要素と特徴

ER 図は、実体、関連と属性で構成されます。また、数字で関連を定義する濃度という概念も用いられます。以下の用語集をご覧ください。

エンティティ

人、オブジェクト、概念やイベントなど、定義可能で、関連するデータを格納可能な存在を指します。実体は名詞として捉えることが可能で、顧客、学生、車、または製品などがあり、一般に長方形で表されます。

実体型: 実体が特定の学生やアスリート個人を指すのに対し、実体型は学生やアスリートのグループといった定義可能な集団を指します。複数の顧客、学生、車、または製品なども例として挙げられます。

実体集合: 実体型と同じですが、例えば初日に授業に登録した学生など、特定の時点で定義されます。その他の例としては、先月購入した顧客、フロリダ州で登録された車などが挙げられます。関連用語としてインスタンスがあり、この場合には、特定の人や車が実体集合のインスタンスとして表されます。

実体の分類: 実体は強実体、弱実体、関連実体に分類されます。強実体 が自身の属性のみにより定義可能であるのに対し、弱実態 は自身の属性のみでは定義不可能です。関連実体は、実体集合内の実体 (または要素) を関連させます。 

実体のキー: 実体集合内で実体を一意に定義する属性を指します。実体のキーには超キー、候補キー、主キーの3種類があります。超キー: 実体集合内である実体を共同で定義する一連の属性 (1つまたは複数)。候補キー: 超キーとして定義するための属性を最小限有する (=極小の) 超キー。実体集合には複数の候補キーが含まれる場合もあります。主キー: 実体集合を一意に定義するためにデータベース設計者が選択した候補キー。外部キー: 実体間の関連を定義するキー。

関係

実体の相互作用に加え、実体同士が関連する方法を示します。関連は動詞として捉えることができます。例えば、名前のある学生が講義に登録するとします。その学生と登録対象の講座が2つの実体となります。そして、これら2つの実体を登録という行為で接続するのが関連となります。一般に、関連はひし形やラベルの形で接続線に直接表示されます。

再帰関連: 関連に複数回参加する同一の実体を指します。

属性

実体の性質や特徴。一般に楕円や円で表示されます。

記述属性: 実体に対する関連の特性や性質を指します。

属性の分類: 属性は単純属性、複合属性、派生属性、さらに単一値属性と複数値属性に分類されます。単純属性: 属性値が不可分であり、これ以上分割できないことを意味します (電話番号など)。複合属性: 属性の副属性を指します。派生属性: 他の属性から算出または派生した属性を指します (生年月日から算出した年齢など)。

複数値属性: 複数の属性値を表すものを指します (ある人の複数の電話番号など)。

単一値属性: 1つの属性値を表すものを指します。これらの分類を組み合わせて、単純単一値属性、または複合複数値属性などとすることもできます。

濃度

2つの実体または実体集合間の関連の数値属性を定義します。最も重要な関連は、一対一、一対多、多対多の3つです。一対一の例としては、1つのメールアドレスに関連付けられた1人の学生が挙げられます。一対多の例 (関連の方向によっては多対一)としては、1人の学生が複数の講義に登録しており、これらの講義すべてがその学生に1本の線で結び付けられているケースが挙げられます。多対多の例: 学生グループが複数の教員と関連付けられ、他方で教員が複数の学生に関連付けられているケースが挙げられます。

濃度の表示: 記号の表示箇所に応じて、濃度は反対側と同じ側のどちらにも表示することができます。

濃度制約: 関連に適用される最大数または最小数を指します。

自然言語のマッピング

ピーター・チェンに習い、ER の構成要素は品詞に例えることができます。以下に、ER 図と文法との対応を示します。

  • 普通名詞: 実体型。例: 学生。
  • 固有名詞: 実体。例: サリー・スミス。
  • 動詞: 関連型。例: 登録。(他の実体型となる講義への登録など。)
  • 形容詞: 実体の属性。例: 2回生。
  • 関係副詞: 関係の属性。例: デジタルで。

データベースクエリ言語である ERROL は、自然言語の構造を模倣したものです。ERROL は関係代数の一種 (RRA) に基づき、ER モデルの言語的側面を捉えたものであり、ER モデルと共に用いられます。

ERD 記号と表記

記法には複数あり、いずれも内容は似ていますが、いくつか相違する点があります。

チェンの記法

カラスの足/マーティン/情報工学形式

バックマン形式

IDEF1X 形式

バーカー形式

 

それぞれの記法で作成した ERD 図の例を以下に示します。

概念/論理/物理データモデル

通常、ER モデルとデータモデルは、以下の3層の詳細レベルまでで構成されます。

  • 概念データモデル: 最高レベルの層で、モデルに含まれる詳細が3層の中で最も少ないものです。このレベルの値はモデルの全体的な範囲を示し、システムアーキテクチャを反映します。小規模なシステムの場合には、このモデルを作成せずに論理モデルの作成から開始することもできます。
  • 論理データモデル: 概念モデルに比べてより多くの詳細が含まれるモデルです。運用や処理に係る実体をより詳細に定義することができます。論理モデルは、実装予定の技術の影響を受けない独立したモデルです。
  • 物理データモデル: 各論理モデルから1つまたは複数の物理モデルを作成することができます。物理モデルは、実際のデータベース構築と実装に必要な技術的詳細を示したものでなければなりません。

同様の詳細や範囲レベルはデータフロー図など他の種類の図にも存在しますが、情報をやや異なる方法で分類するソフトウェアエンジニアリングの三層スキーマアプローチの点で相違が見られます。階層を追加してデータベース設計に必要な情報を追加し、ER 図 を拡張するエンジニアも見られます。スーパークラスやサブクラスの追加により、グルーピングを上下に拡張する例がその一つです。

ER 図とモデルにおける制約

  • 関連するデータのみ利用可能: ER 図の本来の目的は、関連を示すことにあるため、関連構造を示すためにのみ使用されます。
  • 非構造化データは利用不可: データが個別のフィールド、列、行に明確に記述されていない場合には、ER 図の有用性も限定的なものとなります。データの一部のみが利用可能な半構造化されたデータについても同様です。
  • 既存のデータベースとの統合の困難さ: アーキテクチャが異なるため、ER モデルを既存のデータベースに統合する際には問題が生じる可能性があります。

基本的な ER 図の作成方法

  1. 目的と範囲: 分析やモデル化の目的と範囲を定義する必要があります。

  2. 実体: 図に含める実体を特定します。特定できたら、長方形 (またはお使いの記法で用いる形) で実体を作成し、名詞としてラベルを付けます。

  3. 関連: すべての実体を関連させる方法を決めます。実体間に関連を示す線を描画し、ラベルを付けます。関連付けられない実体もありますが、問題はありません。関連にひし形でラベルを付けるもの、長方形のラベルを付けるもの、接続線の上にラベルを直接付けるものなど、記法によって方法はさまざまです。

  4. 属性: 実体の主要な属性を追加し、さらに詳細を表現します。属性は通常、楕円形で表示されます。 

  5. 濃度: 関連が一対一、一対多、多対多のいずれであるかを示します。

 

ER 図に関するその他のヒント

  1. 目的に合った詳細レベルを用いましょう。必要な詳細度に応じて、概念、論理、物理モデルのどれを作成するかを決めることをおすすめします。(各レベルの詳細については上記を参照してください。)

  2. 冗長な実体や関連がないかどうか確認します。

  3. データベースに関する問題のトラブルシューティングが目的の場合には、関連の抜け、実体や属性の漏れに注意しましょう。

  4. 実体と関連のすべてにラベルが付いていることを確認しましょう。

  5. 作成したい図の完成に必要であれば、関連する表と ER 図を複数回変換することも可能です。

  6. 作成した ER 図が格納すべきデータすべてに対応していることを確認しましょう。

  7. ER 図の作成には、有効なアプローチが多数存在します。図の範囲と目的に沿った必要な情報が含まれていれば、良い図ができたと言えるでしょう。