logo

ERモデルの紹介

Peter Chen は 1976 年に ER 図を開発しました。ER モデルは、データベースの構造とロジックを表現するためのシンプルでわかりやすいモデルを提供するために作成されました。それ以来、拡張 ER モデルやオブジェクト関係モデルなどのバリエーションに進化してきました。

エンティティ リレーショナル モデルは、データベース内で表現されるエンティティを識別し、それらのエンティティがどのように関連しているかを表現するためのモデルです。 ER データ モデルは、データベースの全体的な論理構造をグラフィカルに表すエンタープライズ スキーマを指定します。



エンティティ関係図は、データベース内に存在するエンティティ間の関係を説明します。 ER モデルは、人、車、会社などの実世界のオブジェクトと、これらの実世界のオブジェクト間の関係をモデル化するために使用されます。つまり、ER 図はデータベースの構造形式です。

DBMS で ER 図を使用する理由

  • ER 図は、データベース内の E-R モデルを表すために使用され、関係 (テーブル) への変換が容易になります。
  • ER 図は、オブジェクトを実際にモデリングする目的を提供し、それを目的に使用します。
  • ER 図には技術的な知識やハードウェアのサポートは必要ありません。
  • これらの図は非常に理解しやすく、初心者でも簡単に作成できます。
  • データを論理的に視覚化するための標準的なソリューションを提供します。

ER モデルで使用される記号

ER モデルは、次のシンボルで構成されるデータの観点からシステムの論理ビューをモデル化するために使用されます。

  • 長方形: 長方形は ER モデル内のエンティティを表します。
  • 楕円: 楕円は ER モデルの属性を表します。
  • ダイヤモンド: ダイヤモンドはエンティティ間の関係を表します。
  • 行数: 線は、他の関係タイプを持つエンティティおよびエンティティ セットへの属性を表します。
  • 二重楕円: 二重楕円は表します 複数値の属性
  • 二重長方形: 二重長方形は弱いエンティティを表します。

ER図で使用される記号



ER図の構成要素

ER モデルは、データベース システム内のエンティティ、属性、エンティティ間の関係で構成されます。

パワーシェルとバッシュの比較

ER図の構成要素

実在物

エンティティは、特定の人、車、家、従業員など、物理的に存在するオブジェクトである場合もあれば、会社、仕事、大学のコースなど、概念的な存在を持つオブジェクトである場合もあります。



エンティティには 2 つのタイプがあります

1.有体物 – 車や人など、触れることができるもの。

2.非有形の実体 – 空気や銀行口座など、触れることができないもの。

エンティティセット: EntityはEntity Typeのオブジェクトであり、すべてのEntityの集合をEntity Setと呼びます。たとえば、E1 はエンティティ タイプが学生を持つエンティティであり、すべての学生のセットはエンティティ セットと呼ばれます。 ER 図では、エンティティ タイプは次のように表されます。

エンティティセット

エンティティセット

ER 図ではエンティティ セットを表現できますが、エンティティはリレーション内の行と列であり、ER 図はデータのグラフィカル表現であるため、ER 図ではエンティティを表現できません。

1. 強い存在

強い存在 キー属性を持つエンティティのタイプです。強力なエンティティは、スキーマ内の他のエンティティに依存しません。これには、一意に識別するのに役立つ主キーがあり、長方形で表されます。これらは強力なエンティティ タイプと呼ばれます。

2. 弱い存在

エンティティ タイプには、エンティティ セット内の各エンティティを一意に識別するキー属性があります。ただし、主要な属性を定義できないエンティティ タイプもあります。これらはと呼ばれます 弱いエンティティの種類

例えば、 企業は、従業員の扶養家族(親、子供、配偶者)の情報を保管する場合があります。しかし、扶養家族は従業員なしでは存在できません。したがって、Dependent は 弱いエンティティの種類 従業員は扶養家族の識別エンティティ タイプになります。つまり、 強力なエンティティのタイプ

弱いエンティティ タイプは二重四角形で表されます。弱いエンティティ タイプの参加は常に完全です。弱いエンティティ タイプとそれを識別する強いエンティティ タイプの間の関係は識別関係と呼ばれ、二重ひし形で表されます。

強いエンティティと弱いエンティティ

強いエンティティと弱いエンティティ

属性

属性 エンティティ タイプを定義するプロパティです。たとえば、Roll_No、Name、DOB、Age、Address、Mobile_No は、エンティティ タイプ Student を定義する属性です。 ER 図では、属性は楕円で表されます。

属性

属性

1. キー属性

属性 各エンティティを一意に識別します エンティティ セット内の はキー属性と呼ばれます。たとえば、Roll_No は生徒ごとに一意になります。 ER 図では、キー属性は下に線が付いた楕円形で表されます。

キー属性

キー属性

2. 複合属性

属性 他の多くの属性で構成される は複合属性と呼ばれます。たとえば、学生エンティティ タイプの Address 属性は、Street、City、State、および Country で構成されます。 ER 図では、複合属性は楕円で構成される楕円で表されます。

複合属性

複合属性

3. 複数値の属性

特定のエンティティの複数の値で構成される属性。たとえば、Phone_No (特定の生徒に対して複数の可能性があります)。 ER 図では、複数値の属性は二重の楕円で表されます。

複数値の属性

複数値の属性

4. 派生属性

エンティティ タイプの他の属性から派生できる属性は、派生属性と呼ばれます。例えば。;年齢 (DOB から導き出すことができます)。 ER 図では、派生属性は破線の楕円で表されます。

派生属性

派生属性

完全なエンティティ タイプ Student とその属性は次のように表すことができます。

エンティティと属性

エンティティと属性

関係タイプと関係セット

関係タイプは、エンティティ タイプ間の関連を表します。たとえば、「登録済み」は、エンティティ タイプ Student と Course の間に存在する関係タイプです。 ER 図では、関係タイプはひし形とエンティティを線で結ぶことで表されます。

エンティティ関係セット

エンティティ関係セット

同じタイプの関係のセットは、関係セットと呼ばれます。次の関係セットは、S1 が C2 に登録されているものとして、S2 が C1 に登録されているものとして、S3 が C3 に登録されているものとして示されています。

関係セット

関係セット

関係セットの次数

関係セットに参加するさまざまなエンティティ セットの数は、 関係セットの程度。

1. 単項関係: 関係に参加するエンティティ セットが 1 つだけの場合、その関係は単項関係と呼ばれます。たとえば、ある人は 1 人の人とだけ結婚しています。

単項関係

単項関係

2. 二項関係: 関係に参加する 2 つのエンティティ セットがある場合、その関係はバイナリ関係と呼ばれます。たとえば、学生がコースに登録されているとします。

二項関係

二項関係

3. 三項関係: 関係に参加する n 個のエンティティ セットがある場合、その関係は n 項関係と呼ばれます。

カーディナリティ

エンティティ セットのエンティティが関係セットに参加する回数は、次のように呼ばれます。 カーディナリティ 。カーディナリティにはさまざまなタイプがあります。

1. 1対1: 各エンティティ セット内の各エンティティがリレーションシップに 1 回だけ参加できる場合、カーディナリティは 1 対 1 になります。男性は 1 人の女性と結婚でき、女性は 1 人の男性と結婚できると仮定します。したがって、関係は 1 対 1 になります。

ここで使用できるテーブルの合計数は 2 です。

ワントゥワン

1対1のカーディナリティ

セットを使用すると、次のように表すことができます。

1対1の集合表現

1対1の集合表現

2. 1 対多: 1 対多のマッピングでも、各エンティティを複数のエンティティに関連付けることができ、これで使用できるテーブルの総数は 2 です。1 つの外科医部門が多数の医師を収容できると仮定します。したがって、カーディナリティは 1 から M になります。これは、1 つの部門に多くの医師がいることを意味します。

使用できるテーブルの合計数は 3 です。

1対多の

1対多のカーディナリティ

セットを使用すると、1 対多のカーディナリティは次のように表現できます。

1対多の集合表現

3. 多対 1: 1 つのエンティティ セット内のエンティティがリレーションシップ セットに 1 回だけ参加でき、他のエンティティ セット内のエンティティがリレーションシップ セットに複数回参加できる場合、カーディナリティは多対 1 になります。学生が受講できるコースは 1 つだけですが、1 つのコースを多くの学生が受講できると仮定します。したがって、基数は n 対 1 になります。これは、1 つのコースには n 人の学生が存在できますが、1 人の学生には 1 つのコースしか存在しないことを意味します。

ここで使用できるテーブルの合計数は 3 です。

たくさんの人

多対 1 の基数

セットを使用すると、次のように表すことができます。

多対 1 の集合表現

多対 1 の集合表現

この場合、各学生は 1 つのコースしか受講していませんが、1 つのコースは多くの学生によって受講されています。

4. 多対多: すべてのエンティティ セット内のエンティティがリレーションシップに複数回参加できる場合、カーディナリティは多対多です。学生が複数のコースを受講でき、1 つのコースを多数の学生が受講できると仮定します。したがって、関係は多対多になります。

ここで使用できるテーブルの合計数は 3 です。

たくさんの

多対多の基数

セットを使用すると、次のように表すことができます。

Javaのconstとは何ですか
多対多の集合表現

多対多の集合表現

この例では、学生 S1 は C1 と C3 に登録され、コース C3 は S1、S3、および S4 によって登録されます。つまり、多対多の関係になります。

参加の制約

参加の制約 関係セットに参加しているエンティティに適用されます。

1. 総参加 – エンティティ セット内の各エンティティ 関係に参加しなければなりません。各学生がコースに登録する必要がある場合、学生の参加は合計となります。参加総数は ER 図では二重線で示されています。

2. 部分参加 – エンティティ セット内のエンティティは、関係に参加する場合と参加しない場合があります。一部のコースに学生が登録していない場合、コースへの参加は部分的となります。

この図は、完全に参加している学生エンティティ セットと部分的に参加しているコース エンティティ セットを含む「登録済み」関係セットを示しています。

全員参加と部分参加

全員参加と部分参加

Set を使用すると、次のように表すことができます。

全員参加と部分参加のセット表現

全員参加と部分参加のセット表現

Student Entity セット内のすべての生徒は関係に参加していますが、関係に参加していないコース C4 が存在します。

ER図を描くには?

  • 最初のステップは、すべてのエンティティを識別し、それらを長方形の中に配置し、それに応じてラベルを付けることです。
  • 次のステップは、それらの間の関係を特定し、ダイヤモンドを使用して適切に配置し、関係が互いに接続されていないことを確認することです。
  • エンティティに属性を適切にアタッチします。
  • 冗長なエンティティと関係を削除します。
  • 適切な色を追加して、データベースに存在するデータを強調表示します。