제이의 블로그

概念データモデリング

作成: 2024-04-08

作成: 2024-04-08 04:00

概念的なデータモデリングは、関連する情報をエンティティ単位に分割し、エンティティ間の関係をERDで表現するプロセスです。

エンティティの分離と属性の定義

エンティティとは、実在し、独立しており、データを保存できる何かを意味します。

また、属性とは、エンティティが持つデータのことを指します。

例えば、学校の先生と生徒は上記の条件を満たしています。

ここで、先生は名前、年齢、科目などのデータを含むエンティティであり、生徒も名前、学年、年齢、学籍番号などのデータを含むエンティティです。

ここで分離されたエンティティは、論理データモデリングのプロセスでリレーショナルデータベースのテーブルとなり、属性はそのテーブルの列になります。

識別子とキー

日本は、住民基本台帳番号制度を通じて、各国民を固有に識別しています。

このとき、住民の住民基本台帳番号は、その人が誰か識別できる識別子です。

住民基本台帳番号は、特定の人を固有に識別できるようにするため、他の誰とも重複しません。

ERDでエンティティを表す場合も、識別子を指定して、その情報を一意に確認できるようにする必要があります。

ここで指定された識別子は、論理データモデリングのプロセスで主キー(Primary Key)になります。


もし、自然に識別子として指定できる固有の属性が存在しない場合は、人工キー(Artificial Key)を使用します。

しかし、すべての状況において人工的に生成されたキーは変更されるリスクがないため、一般的に使用されます。


エンティティで識別子として使用できる属性をすべて候補キー(Candidate Key)と呼び、

主キーを除いて、その他の識別子として使用できる属性を代替キー(Alternate Key)といいます。

そして、これらの代替キーは、パフォーマンス向上のため、インデックスを付与するのに適しています。


その他に、部署と社員間の所属を表すエンティティでは、部署番号と社員番号を一緒にキーとして使用する場合があります。これは複合キー(Composite Key)といいます。

関係の把握

関係とは、エンティティ間の相互作用を意味し、関係は存在による関係と行動による関係に分けられます。

  • 存在による関係

会社を例にとると、社員は部署が存在しなければ存在できないため、存在による関係です。

  • 行動による関係

社員は申請によって部署を異動することができます。この場合は、行動による関係です。


この関係は、論理データモデリングのプロセスで外部キー(Foreign Key)、結合(Join)などで表現されます。

カーディナリティ(Cardinality)

1つのエンティティと別のエンティティの関係をカーディナリティといいます。これは、互いの数量関係を表します。

これは、各エンティティ間の1:1関係(一対一)、1:N関係(一対多)、N:M(多対多)関係などでも表されます。

上記の関係のうち、N:M関係はリレーショナルデータベースでは表現できないため、中間テーブルを作成して表現します。

オプション性(Optionality)

コメントシステムを例に挙げると、各コメントは必ず1人の作成者を持つ一方、作成者の立場からはコメントを作成しないこともできます。

上記の場合、作成者(Mandatory)ーコメント(Optional)の関係を持ちます。

必須はMandatoryといい、選択的なオプションはOptionalといいます。


つまり、エンティティのインスタンスがそのデータを必須で持つ必要があるのか、選択的に持つ必要があるのかを表します。




コメント0