連想エンティティとは
ソフトウェアエンジニアリングでデータが抽象的および概念的に表現されるエンティティリレーションシップモデルでは、関連エンティティはモデルの一部です。 リレーショナルモデルは、多くの場合、データベースまたはシステム内のデータを表すために作成されます。リレーショナルモデルは、データを理解可能で読み取り可能なスキーマに整理するために使用されます。 リレーショナルモデルのエンティティは、人、場所、オブジェクト、イベント、概念など、あらゆるものを表すことができます。 連想エンティティは、2つの異なるエンティティ間の関係を記述する接続です。 これらのエンティティは、多対多の関係を持つことができます。つまり、関連付けられたエンティティの1つが、親エンティティまたは子エンティティに対して複数の関係と接続を持つ場合があります。
連想エンティティは、属性と接続に関する情報を伝達します。 それらは属性を持っているためエンティティと見なされ、エンティティをリンクしているためリレーションシップと見なされます。 これらの種類のエンティティは非常に頻繁に多くの関係と接続を持っていますが、これは帰属するためですが、他のエンティティから独立した意味を持つことができます。 関連付けエンティティのリレーショナルモデルでは、少なくとも、識別子エンティティと区別できる属性を1つ持つことをお勧めします。 関連付けられたエンティティは、関連付けられたエンティティの関係とは別の関係に参加することもできます。
主キーは、リレーショナルモデルの特定のテーブルに隣接する識別子であるため、連想エンティティの一部でもある必要があります。 テーブルに含めることができるのは1つだけですが、主キーは行を一意に指定する列の組み合わせです。 一意キーと主キーには違いがあります。主キーは、テーブルまたはエンティティに「非null」制約を適用できるためです。 主キーと一意のキーを区別するもう1つの側面は、主キーが最も重要な、または最初に重要なキーとして選択されることです。 プライマリインデックスは、プライマリキーの管理、およびデータベースマネージャによる使いやすさと強制のために作成されます。
連想エンティティは、ジャンクションテーブル(2つ以上の他のテーブルの共通フィールドを含むリレーショナルモデルのテーブル)に含まれ、使用されます。 ジャンクションテーブルは、特定のデータベース内の多対多のリレーションシップを処理できるために採用されています。 ジャンクションテーブルを使用して関連エンティティを使用するデータベースの1つの例は、コースへの学生の登録です。 この場合、学生に関するデータを含むテーブルは、接続テーブルからの学生およびコースデータに関連付けられたデータを含む中間テーブルを介して、コースに関するデータを含むテーブルに間接的に接続されます。