ERモデル-基本概念
ERモデルは、データベースの概念ビューを定義します。これは、実世界のエンティティとそれらの間の関連付けを回避します。ビューレベルでは、ERモデルはデータベースを設計するための優れたオプションと見なされています。
エンティティ
エンティティは、簡単に識別できる、生物または無生物の実世界のオブジェクトにすることができます。たとえば、学校のデータベースでは、提供される学生、教師、クラス、およびコースをエンティティと見なすことができます。これらすべてのエンティティには、アイデンティティを与えるいくつかの属性またはプロパティがあります。
エンティティセットは、同様のタイプのエンティティのコレクションです。エンティティセットには、同様の値を共有する属性を持つエンティティが含まれる場合があります。たとえば、Studentsセットには、学校のすべての生徒が含まれる場合があります。同様に、Teachersセットには、すべての学部の学校のすべての教師が含まれている場合があります。エンティティセットは互いに素である必要はありません。
属性
エンティティは、と呼ばれるプロパティによって表されます。 attributes。すべての属性には値があります。たとえば、学生エンティティには、属性として名前、クラス、および年齢が含まれる場合があります。
属性に割り当てることができるドメインまたは値の範囲が存在します。たとえば、学生の名前を数値にすることはできません。アルファベットでなければなりません。学生の年齢がマイナスになることはありません。
属性の種類
Simple attribute−単純属性はアトミック値であり、これ以上分割することはできません。たとえば、学生の電話番号は10桁のアトミック値です。
Composite attribute−複合属性は、複数の単純な属性で構成されています。たとえば、学生の完全な名前には、first_nameとlast_nameが含まれる場合があります。
Derived attribute−派生属性は、物理データベースには存在しない属性ですが、それらの値は、データベースに存在する他の属性から派生しています。たとえば、部門のaverage_salaryはデータベースに直接保存するのではなく、導出することができます。別の例として、年齢はdata_of_birthから導出できます。
Single-value attribute−単一値属性には単一値が含まれます。例-Social_Security_Number。
Multi-value attribute−複数値属性には、複数の値が含まれる場合があります。たとえば、1人の人が複数の電話番号やemail_addressなどを持つことができます。
これらの属性タイプは、次のようにまとめることができます。
- 単純な単一値の属性
- 単純な複数値属性
- 複合単一値属性
- 複合多値属性
エンティティセットとキー
キーは、エンティティセット内でエンティティを一意に識別する属性または属性のコレクションです。
たとえば、学生のroll_numberは、学生の間で彼/彼女を識別可能にします。
Super Key −エンティティセット内のエンティティを集合的に識別する属性のセット(1つ以上)。
Candidate Key−最小のスーパーキーは候補キーと呼ばれます。エンティティセットには、複数の候補キーが含まれる場合があります。
Primary Key −主キーは、エンティティセットを一意に識別するためにデータベース設計者が選択した候補キーの1つです。
関係
エンティティ間の関連付けは、関係と呼ばれます。たとえば、従業員works_at 学部、学生 enrollsコースで。ここで、Works_atとEnrollsはリレーションシップと呼ばれます。
関係セット
同様のタイプの関係のセットは、関係セットと呼ばれます。エンティティと同様に、関係にも属性を含めることができます。これらの属性は呼ばれますdescriptive attributes。
関係の程度
関係に参加しているエンティティの数は、関係の程度を定義します。
- バイナリ=次数2
- 三項=次数3
- n項=度
カーディナリティのマッピング
Cardinality 1つのエンティティセット内のエンティティの数を定義します。これは、関係セットを介して他のセットのエンティティの数に関連付けることができます。
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の複数のエンティティに関連付けることができ、その逆も可能です。