ERモデルはデータベースの概念ビューを定義するものである。 これは実世界の実体とその間の関連性を扱うものである。
Entity
実体とは、現実世界のオブジェクトで、生死にかかわらず、容易に識別できるものである。 例えば、学校のデータベースでは、生徒、教師、クラス、提供されるコースがエンティティと見なすことができます。
エンティティセットとは、類似したタイプのエンティティの集合である。 エンティティ・セットは、類似の値を共有する属性を持つエンティティを含むことができる。 例えば、Studentsセットには学校のすべての学生が含まれ、同様にTeachersセットにはすべての学部からの学校のすべての教師が含まれるかもしれません。
Attributes
エンティティは、属性と呼ばれるプロパティによって表現されます。 すべての属性は値を持つ。 例えば、学生のエンティティは、属性として名前、クラス、年齢を持つことができる。 たとえば、学生の名前は数値にすることはできません。 それはアルファベットでなければなりません。
属性の種類
-
単純属性 – 単純属性は、さらに分割できない原子値である。 例えば、生徒の電話番号は10桁の原子値です。
-
複合属性 – 複合属性は、複数の単純属性から構成されています。 たとえば、学生の完全な名前には first_name と last_name があります。
-
派生属性 – 派生属性とは、物理データベースには存在しないが、その値がデータベースに存在する他の属性から派生する属性のことです。 たとえば、部門の平均給与はデータベースに直接保存されるべきではありませんが、その代わりに派生させることができます。 別の例では、年齢は data_of_birth から取得できます。
-
Single-value attribute – Single-value attributes には単一の値が含まれます。 例えば、Social_Security_Number.
-
Multi-value attribute – Multi-value attributes may contain more than one values.例えば、Social_Security_Number.
-
Multi-value attributeは複数の値を含む。 たとえば、1 人の人が複数の電話番号、email_address などを持つことができます。
これらの属性タイプは、次のような方法で一緒になることができます –
- simple single-valued attributes
- simple multi-valued attributes
- composite single-valued attributes
- composite multi-valued attributes
Entity-Set and Keys
キーはエンティティセット間でエンティティを一意に識別する属性または属性のコレクションである。
例えば、学生のroll_numberは、学生の間でその人を識別可能にします。
-
Super Key -エンティティセット内のエンティティを集合的に識別する属性(1つ以上)のセットです。
-
Candidate Key – 最小のスーパーキーを候補キーと呼びます。
-
Primary Key – 主キーは、エンティティセットを一意に識別するために、データベース設計者が選択した候補キーの1つです。 例えば、従業員はある部署で働き、学生はあるコースに入学する。 ここで、Works_atとEnrollsは関係と呼ばれます。
Relationship Set
同様のタイプの関係の集合は関係集合と呼ばれます。 エンティティと同様に、関係も属性を持つことができる。 これらの属性は記述属性と呼ばれる。
関係の程度
関係に参加するエンティティの数は、関係の程度を定義する。
- Binary = degree 2
- Ternary = degree 3
- n-ary = degree
Mapping Cardinalities
Cardinality は、あるエンティティセット内のエンティティ数、それは関係セットを介して他のセットのエンティティ数と関連付けられることが定義される。
-
One-to-one – エンティティセットAからの1つのエンティティは、エンティティセットBの最大1つのエンティティに関連付けることができ、逆もまた同様です。
-
One-to-many – エンティティセットAからの1つのエンティティは、エンティティセットBの複数のエンティティと関連付けることができますが、エンティティセットBからのエンティティは、最大で1つのエンティティと関連付けることができます。
-
Many-to-one – エンティティセットAからの複数のエンティティは、エンティティセットBの最大1つのエンティティに関連付けることができますが、エンティティセットBからのエンティティはエンティティセットAからの複数のエンティティに関連付けることができます。
-
Many-to-many – Aからの1つのエンティティは、Bからの複数のエンティティと関連付けることができ、逆もまた同様です。