📌 結論から理解する
エンティティの種類=強・弱・関連の3タイプ
ER図のエンティティは性質によって3種類に分けられます。試験では特に弱エンティティと関連エンティティが問われます。
エンティティの3種類
① 強エンティティ(独立エンティティ)
それ自体の主キーで存在を識別できるエンティティ。
例:顧客(顧客IDで識別)、商品(商品IDで識別)
例:顧客(顧客IDで識別)、商品(商品IDで識別)
② 弱エンティティ(依存エンティティ)
他のエンティティの主キーを借りないと識別できないエンティティ。
例:注文明細(注文IDがないと「どの注文の明細か」が不明)
例:注文明細(注文IDがないと「どの注文の明細か」が不明)
③ 関連エンティティ(交差エンティティ)
多対多(M:N)を解消するための中間テーブル。
例:受講(学生IDと講座IDの組み合わせで識別)
例:受講(学生IDと講座IDの組み合わせで識別)
属性の種類
| 属性の種類 | 説明 | 例 |
|---|---|---|
| 単純属性 | それ以上分割できない | 年齢、価格 |
| 複合属性 | 複数の要素からなる | 住所(都道府県+市区町村+番地) |
| 多値属性 | 複数の値を持てる | 電話番号(複数持てる) |
| 導出属性 | 他の属性から計算できる | 年齢(生年月日から算出) |
| 識別属性 | エンティティを一意識別 | 顧客ID、注文ID |
多値属性はそのままテーブルに入れられません。別テーブルに分離する必要があります(第1正規形の基本)。
リレーションシップの参加制約
全参加(必須)
エンティティの全インスタンスがリレーションに参加しなければならない
例:注文は必ず顧客に紐づく
例:注文は必ず顧客に紐づく
部分参加(任意)
参加しないインスタンスがあっても構わない
例:顧客は注文がない場合もある
例:顧客は注文がない場合もある
🧠 確認クイズ
Q1. 弱エンティティの説明として正しいのはどれか?
Q2. 多値属性をリレーショナルDBで表現するには?
Q3. 関連エンティティ(交差エンティティ)を作る主な目的は何か?