ER図

ER図(Entity Relationship Diagram)でリレーションを可視化する。

 

リレーションの種類

1対 多

最も基本的なリレーションで、正しく正規化されていればほとんど1対多になる。

子供がいない社員もいるので「1対0以上の多」とも言うべき。

 

1対1

1対1のリレーションがある2つのテーブルは、1つのテーブルとしても表現できるため、

論理設計が適切であれば基本的に登場しない

一物一価の商品体系であれば、下記のように1つのテーブルで表現できる

 

ER図作成の実務

大規模なシステムでは、SchemaSpy などのER図自動生成ツールと用いて作成する

 

IE表記法(鳥の足表記法)

  • 主キーは、下線を引く
  • 外部キーは、太字にするか(FK)を添える Foreign keyの意味

ER図作成のステップ

  1. エンティティの枠とテーブル名を書く
  2. カラムを主キー属性と非キー属性に割り振る(外部キーは明示する)
  3. リレーションを記入する
      1対0以上の多 1対1以上の多

 

論理設計の具体的なステップ

  1. 何をするシステムかを考える
    中心となるエンティティを考える
  2. エンティティの抽出
    中心の周辺のエンティティとしてどんなエンティティ(テーブル)が必要かを明確にする
    5W1Hで考える(誰が、何を、いつ、どこで、どのように、なぜ)
  3. エンティティの定義
    エンティティ(テーブル)毎にどんなカラムが必要かを明確にする
    インターフェースまたは仕様書中の項目をエンティティの属性として入れていく
  4. 主キーと外部キー(テーブル間のリレーション)を設定する
    主キーとして適切なカラムが存在するか? なければIDを導入する
    最初に主キー、次に外部キー
  5. 正規化
    テーブルを分割することでデータの冗長性(ムダ・重複)をなくす
    第1~第3の正規形を満たしているかを確認する
  6. ER図の作成
    エンティティ(テーブル)間の関係を視覚的にわかりやすく作図する

 

注文書のER図

出勤伝票のエンティティ

・出勤

出金ID

支払先ID

出金日

・支払先

支払先ID

支払先名

・出金明細

出金明細ID

出金ID

勘定科目コード

適用

金額

・勘定科目

勘定科目コード

勘定科目


※非キー属性は省略してもよい。リレーションを見やすくする