0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DB設計④

Posted at

正規化

DBをマスターしたい

前回に引き続き、DBの基本知識を学習している
今回はER図についてまとめる

参考文献

達人に学ぶDB設計徹底指南書


目次

  1. ER図の役割
  2. 正規化とは
  3. ストレージの冗長構成
  4. バックアップ設計

1.ER図の役割

テーブルが多すぎる

 正規化していくと、テーブルの数が増えていく
 =管理が難しくなってくる
 そこでテーブルがどのように関連してるかを見えるようにする=ER図

ER図とは

 ER図はEntity(実体)とRelationship(かんれん)の略である
 つまりテーブル同士の関連についての図であると言える

2つの表記法

 E-R図の表記法はIDEF1XとIE表記法の2つある。

2.テーブルの関連

テーブルの関連は3種類ある

  • 1対1
  • 1対多
  • 多対多

1対1

 あまり見かけない
 二つのレコードのテーブルが1対1に対応するということ
 普通は一つのテーブルにまとめてしまって問題ない

1対多

 最もよくある関連のタイプ
「会社-社員」、「部署-社員」などが該当する
 1つの会社に対して複数の社員が所属する関係

3.E-R図の描き方

テーブル(エンティティ)の表記方法

 テーブルは以下のように表記します
 どちらの表記でも同じです。

スクリーンショット 2024-12-04 22.37.47.png

IE表記法でのE-R図

  • 会社と社員の関係
     「会社」エンティティ側の横棒はカーディナリティが1であることを表す
     「社員」エンティティは0以上の複数を表します
     これは、社員が所属していない会社のレコードがある事を指す
     ※カーディナリティ:相手のエンティティに対応するレコード数のこと
  • 社員と部署の関係
     「部署」エンティティ側のカーディナリティは同じく1
     「社員」エンティティ側のカーディナリティは1以上の複数を表します
     これは、社員が所属していない部署のレコードはない事を指す
    スクリーンショット 2024-12-04 22.53.25.png

カーディナリティの記述パターンは以下となる
スクリーンショット 2024-12-04 23.10.04.png

IDEF1XでのE-R図

  • 独立エンティティ
     表記方法は角の尖った四角のエンティティ
     他のテーブルのデータに依存することのなく、データを保持できるエンティティ
     ex)会社テーブル、部署テーブル

  • 従属エンティティ
     表記方法は角の丸い四角のエンティティ
     他のテーブルにデータが存在しなければ、データを保持できないエンティティ
     ex)社員テーブル

※双方の区別は主キーに外部キーが含まれているかどうかで判断する

スクリーンショット 2024-12-05 23.19.08.png

カーディナリティの記述パターンは以下となる
スクリーンショット 2024-12-05 23.26.28.png

4.「多対多」と関連実体

「多対多」の具体例

  • 学生と講義のリレーション
     1人の学生は複数の講義を受講できる=カーディナリティは「多」となる
     1つの講義を複数の学生が受講できる=カーディナリティは「多」となる
    スクリーンショット 2024-12-06 22.25.52.png

  • 解決方法は「関連実体」
     この多対多の関係を解決する方法が「関連実体」である
    スクリーンショット 2024-12-06 22.38.47.png

関連実体(associative entity)は2つのエンティティの間に作られる
学生と講義それぞれに対して「1対多」の関係となる

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?