主題
- #リレーショナルデータモデリング
- #データベース
- #概念データモデリング
作成: 2024-04-08
作成: 2024-04-08 04:00
概念的なデータモデリングは、関連する情報をエンティティ単位に分割し、エンティティ間の関係をERDで表現するプロセスです。
エンティティとは、実在し、独立しており、データを保存できる何かを意味します。
また、属性とは、エンティティが持つデータのことを指します。
例えば、学校の先生と生徒は上記の条件を満たしています。
ここで、先生は名前、年齢、科目などのデータを含むエンティティであり、生徒も名前、学年、年齢、学籍番号などのデータを含むエンティティです。
ここで分離されたエンティティは、論理データモデリングのプロセスでリレーショナルデータベースのテーブルとなり、属性はそのテーブルの列になります。
日本は、住民基本台帳番号制度を通じて、各国民を固有に識別しています。
このとき、住民の住民基本台帳番号は、その人が誰か識別できる識別子です。
住民基本台帳番号は、特定の人を固有に識別できるようにするため、他の誰とも重複しません。
ERDでエンティティを表す場合も、識別子を指定して、その情報を一意に確認できるようにする必要があります。
ここで指定された識別子は、論理データモデリングのプロセスで主キー(Primary Key)になります。
もし、自然に識別子として指定できる固有の属性が存在しない場合は、人工キー(Artificial Key)を使用します。
しかし、すべての状況において人工的に生成されたキーは変更されるリスクがないため、一般的に使用されます。
エンティティで識別子として使用できる属性をすべて候補キー(Candidate Key)と呼び、
主キーを除いて、その他の識別子として使用できる属性を代替キー(Alternate Key)といいます。
そして、これらの代替キーは、パフォーマンス向上のため、インデックスを付与するのに適しています。
その他に、部署と社員間の所属を表すエンティティでは、部署番号と社員番号を一緒にキーとして使用する場合があります。これは複合キー(Composite Key)といいます。
関係とは、エンティティ間の相互作用を意味し、関係は存在による関係と行動による関係に分けられます。
会社を例にとると、社員は部署が存在しなければ存在できないため、存在による関係です。
社員は申請によって部署を異動することができます。この場合は、行動による関係です。
この関係は、論理データモデリングのプロセスで外部キー(Foreign Key)、結合(Join)などで表現されます。
1つのエンティティと別のエンティティの関係をカーディナリティといいます。これは、互いの数量関係を表します。
これは、各エンティティ間の1:1関係(一対一)、1:N関係(一対多)、N:M(多対多)関係などでも表されます。
上記の関係のうち、N:M関係はリレーショナルデータベースでは表現できないため、中間テーブルを作成して表現します。
コメントシステムを例に挙げると、各コメントは必ず1人の作成者を持つ一方、作成者の立場からはコメントを作成しないこともできます。
上記の場合、作成者(Mandatory)ーコメント(Optional)の関係を持ちます。
必須はMandatoryといい、選択的なオプションはOptionalといいます。
つまり、エンティティのインスタンスがそのデータを必須で持つ必要があるのか、選択的に持つ必要があるのかを表します。
コメント0