エンティティ関係モデル(ERモデル)は、エンティティ関係図(ER図)と呼ばれる図を使ってデータベースの構造を説明します。ERモデルは、後でデータベースとして実装できるデータベースのデザインまたは設計図です。E-Rモデルの主要なコンポーネントはエンティティセットとリレーションシップセットです。
目次
エンティティ関係図(ER図)とは?
ER図はエンティティセット間の関係を示します。エンティティセットは類似のエンティティのグループであり、これらのエンティティには属性があります。DBMSの観点では、エンティティはデータベース内のテーブルまたはテーブルの属性です。したがって、テーブルとその属性の関係を示すことで、ER図はデータベースの完全な論理構造を示します。このコンセプトを理解するために、シンプルなER図を見てみましょう。
シンプルなER図:
次の図では、2つのエンティティ、StudentとCollege、およびそれらの関係があります。StudentとCollegeの関係は多対1であり、大学は多くの学生を持つことができますが、学生は同時に複数の大学で学ぶことはできません。StudentエンティティにはStu_Id、Stu_Name、Stu_Addrなどの属性があり、CollegeエンティティにはCol_ID、Col_Nameなどの属性があります。
以下は、ER図での幾何学的な形状とその意味です。これらの用語については、このガイドの次のセクション(ER図のコンポーネント)で詳しく説明しますので、今はあまり心配せずに一度通読してください。
- 長方形:エンティティセットを表します。
- 楕円形:属性
- ダイヤモンド:リレーションシップセット
- 線:属性をエンティティセットに、エンティティセットをリレーションシップセットにリンクします。
- 二重楕円:多値属性
- 破線楕円:派生属性
- 二重長方形:弱いエンティティセット
- 二重線:エンティティの関係セットへの完全な参加
ER図のコンポーネント
上記の図に示されているように、ER図には3つの主要なコンポーネントがあります。
- エンティティ
- 属性
- リレーションシップ
1. エンティティ
エンティティはデータのオブジェクトまたはコンポーネントです。ER図では長方形で表されます。
例:次のER図では、2つのエンティティ、StudentとCollegeがあり、これら2つのエンティティには多対1の関係があります。関係については後で詳しく説明しますが、今はエンティティに焦点を当ててください。
弱いエンティティ:
自身の属性だけでは一意に識別できないエンティティで、他のエンティティとの関係に依存するエンティティを弱いエンティティと呼びます。弱いエンティティは二重の長方形で表されます。例えば、銀行口座は口座が属している銀行を知らないと一意に識別できないので、銀行口座は弱いエンティティです。
2. 属性
属性はエンティティの特性を記述します。ER図では楕円で表されます。属性には4つのタイプがあります:
- キー属性
- 複合属性
- 多値属性
- 派生属性
1. キー属性:
キー属性はエンティティセットからエンティティを一意に識別できるものです。例えば、学生の学籍番号は学生の中から一意に学生を識別できます。キー属性は他の属性と同様に楕円で表されますが、キー属性のテキストは下線付きです。
2. 複合属性:
他の属性の組み合わせである属性は複合属性として知られています。例えば、学生エンティティでは、学生の住所は他の属性(郵便番号、州、国など)で構成される複合属性です。
3. 多値属性:
複数の値を持つ属性は多値属性として知られています。ER図では二重の楕円で表されます。例えば、1人の人が複数の電話番号を持つことができるため、電話番号属性は多値属性です。
4. 派生属性:
値が動的で他の属性から導出される属性は派生属性と呼ばれます。ER図では破線の楕円で表されます。例えば、人の年齢は時間とともに変化するため、別の属性(生年月日)から派生する派生属性です。
多値属性と派生属性を持つER図:
3. リレーションシップ
リレーションシップはER図でダイヤモンド形状で表され、エンティティ間の関係を示します。リレーションシップには4つのタイプがあります:
- 一対一
- 一対多
- 多対一
- 多対多
一対一リレーションシップ
1つのエンティティのインスタンスがもう1つのエンティティのインスタンスと関連付けられているとき、これを一対一リレーションシップと呼びます。例えば、1人の人が1つのパスポートしか持たない場合などです。
2. 一対多リレーションシップ
1つのエンティティのインスタンスが別のエンティティの複数のインスタンスと関連付けられているとき、これを一対多リレーションシップと呼びます。例えば、1人の顧客が多くの注文を出せる場合などですが、注文が多くの顧客から出されることはありません。
3. 多対一リレーションシップ
複数のエンティティのインスタンスが1つのエンティティのインスタンスと関連付けられているとき、これを多対一リレーションシップと呼びます。例えば、多くの学生が1つの大学で学ぶ場合などですが、1人の学生が同時に多くの大学で学ぶことはありません。
4. 多対多リレーションシップ
複数のエンティティのインスタンスが複数の別のエンティティのインスタンスと関連付けられているとき、これを多対多リレーションシップと呼びます。例えば、1つのプロジェクトが多くの学生に割り当てられ、1人の学生が多くのプロジェクトに割り当てられる場合などです。
エンティティセットの総参加
エンティティセットの総参加は、エンティティセット内の各エンティティが関係セット内で少なくとも1つの関係を持つ必要があることを示します。これは強制的な参加とも呼ばれます。例:次の図では、各大学は少なくとも1つの関連する学生を持たなければなりません。総参加はエンティティセットと関係セットの間に二重線を使用して表されます。
エンティティセットの部分参加
エンティティセットの部分参加は、エンティティセット内の各エンティティがその関係セット内で参加しても参加しなくてもよいことを示します。これは任意の参加とも呼ばれます。
部分参加はエンティティセットと関係セットの間に単一の線を使用して表されます。
例:IT企業の例を考えてみましょう。企業で働いている多くの従業員がいます。従業員と役割ソフトウェアエンジニアとの関係の例を取り上げましょう。すべてのソフトウェアエンジニアは従業員ですが、すべての従業員がソフトウェアエンジニアであるわけではありません。清掃員、マネージャー、CEOなど、他の役割の従業員もいます。したがって、従業員エンティティセットがソフトウェアエンジニア関係に対する部分的な参加を持っていると言えます。
コメントを残す