Open2
データベース設計
Db設計の大きな流れ
概念設計 → 論理設計 → 物理設計
概念設計
目的
データベースの全体像を掴むこと
やること
E-R図の作成
ER図
エンティティとリレーションで構成された設計図
- エンティティテーブルみたいなものであり、属性と呼ばれるものを複数持つ
- 属性はそのテーブルのカラムに対応するもの
主キー(Primary Key)
主キーは一意性とNOT NULLの制約を持つ
リレーション
多重度
リレーションには4種類の関係がある
- 1対1、1対多、多対1、多対多
1の場合は「-」、多の場合は「→」で表現する
オプショナリティ
リレーションがあるエンティティの間において、インスタンスに対応するものがない場合を許容する場合は「〇」、必ず1つ以上を要請する場合は「●」で図示する。
基本的に多対多のリレーションは論理データモデルの段階で非正規形となってしまい都合が悪い。
多対多のリレーションは連関エンティティを作成することで1体多に変換する。
** 連関エンティティと核エンティティ **
多対多のリレーションに対して、両端のエンティティの主キーを属性に持つ連関エンティティを作成し、両端のエンティティの間に挿入する。
両端のエンティティは核エンティティと呼ばれる。
特殊な例
- 外部キーとしてエンティティの主キーを設定する
- 自己参照したいテーブルなどで用いる
- あるエンティティの属性に同一の外部キーが複数ある場合、リレーションも複数存在する