Dbms-er-model-basic-concepts
ERモデル-基本概念
ERモデルは、データベースの概念図を定義します。 実世界のエンティティとそれらの間の関連付けを回避します。 ビューレベルでは、ERモデルはデータベースの設計に適したオプションと見なされます。
エンティティ
エンティティは、簡単に識別できる実世界のオブジェクト(アニメーションまたは無生物)にすることができます。 たとえば、学校のデータベースでは、提供される生徒、教師、クラス、およびコースをエンティティと見なすことができます。 これらすべてのエンティティには、それらにアイデンティティを与えるいくつかの属性またはプロパティがあります。
エンティティセットは、類似したタイプのエンティティのコレクションです。 エンティティセットには、同様の値を共有する属性を持つエンティティが含まれる場合があります。 たとえば、学生セットには学校のすべての学生が含まれる場合があります。同様に、教師セットには、すべての学部の学校のすべての教師を含めることができます。 エンティティセットはばらばらである必要はありません。
属性
エンティティは、*属性*と呼ばれるプロパティによって表されます。 すべての属性には値があります。 たとえば、学生のエンティティには、名前、クラス、年齢が属性として含まれている場合があります。
属性に割り当てることができるドメインまたは値の範囲が存在します。 たとえば、生徒の名前を数値にすることはできません。 アルファベットでなければなりません。 学生の年齢を負にすることはできません。
属性の種類
- シンプル属性-シンプル属性は原子値であり、さらに分割することはできません。 たとえば、学生の電話番号は10桁の原子値です。
- 複合属性-複合属性は、複数の単純属性で構成されます。 たとえば、学生の完全な名前にはfirst_nameとlast_nameが含まれる場合があります。
- 派生属性-派生属性は、物理データベースには存在しない属性ですが、その値はデータベースに存在する他の属性から派生しています。 たとえば、部門のaverage_salaryをデータベースに直接保存するのではなく、導出できます。 別の例として、年齢はdata_of_birthから導出できます。
- 単一値属性-単一値属性には単一値が含まれます。 たとえば-Social_Security_Number。
- 複数値属性-複数値属性には複数の値を含めることができます。 たとえば、人は複数の電話番号、email_addressなどを持つことができます。
これらの属性タイプは、次のような方法でまとめることができます-
- 単純な単一値属性
- 単純な多値属性
- 複合単一値属性
- 複合多値属性
エンティティセットとキー
キーは、エンティティセットの中でエンティティを一意に識別する属性または属性のコレクションです。
たとえば、学生のroll_numberは、学生の間で識別可能にします。
- Super Key -エンティティセット内のエンティティを集合的に識別する一連の属性(1つ以上)。
- 候補キー-最小限のスーパーキーは候補キーと呼ばれます。 エンティティセットには、複数の候補キーがある場合があります。
- プライマリキー-プライマリキーは、エンティティセットを一意に識別するためにデータベース設計者が選択した候補キーの1つです。
関係
エンティティ間の関連付けは、関係と呼ばれます。 たとえば、従業員は部門に works_at 、学生はコースに*登録*します。 ここでは、Works_atとEnrollsを関係と呼びます。
関係セット
同様のタイプの関係のセットは、関係セットと呼ばれます。 エンティティと同様に、関係も属性を持つことができます。 これらの属性は、*記述属性*と呼ばれます。
関係度
関係に参加するエンティティの数は、関係の程度を定義します。
- バイナリ=次数2
- 三項= 3次
- n項=度
カーディナリティのマッピング
- カーディナリティ*は、1つのエンティティセット内のエンティティの数を定義します。これは、関係セットを介して他のセットのエンティティの数に関連付けることができます。
- 1対1 -エンティティセットAの1つのエンティティは、エンティティセットBの多くても1つのエンティティに関連付けることができ、その逆も可能です。
- * 1対多*-エンティティセットAの1つのエンティティは、エンティティセットBの複数のエンティティに関連付けることができますが、エンティティセットBのエンティティは最大1つのエンティティに関連付けることができます。
- 多対一-エンティティセットAの複数のエンティティは、エンティティセットBの最大1つのエンティティに関連付けることができますが、エンティティセットBのエンティティは、エンティティセットAの複数のエンティティに関連付けることができます。
- 多対多-Aの1つのエンティティをBの複数のエンティティに関連付けることができ、逆も同様です。