🧠

【DB設計】 ER図の知識

2023/07/12に公開

🍍ER図とは?

ER図=Entity Relationship Diagram
データベースの設計書として用いられる。
データベースにはたくさんの情報が格納されるため、それらの情報の関係性やつながりを図で表現する。

ER図って何かわかる?って聞かれたら大体下記画像のようなものを思い浮かべれたらOK

🍍ER図の構成

ER図は4つの要素によって構成されている。

エンティティ

上記の図で言えば、ユーザーや食事という枠組みに当たる。
データのまとまりのこと。

アートリビュート(属性)

エンティティの中の属性情報のこと。

  • 主キー→PK
  • 外部キー→FK
    言葉で説明するよりも図を見たほうがわかりやすい🐣

リレーション

エンティティ同士の繋がりを表現する線。
ただ、繋がっているという情報だけなのでどういう関係なのかはわからない。
リレーションの詳細はカーディナリティを用いて表す。

カーディナリティ(多重度)

リレーションの詳細を表現することができる記号。

ER図のリレーションを表示する主な表記法には「IE記法」と「IDEF1X記法」があります。「IE記法」には直感的な理解がしやすいという特徴が、「IDEF1X記法」にはIE記法よりも細かな表示ができるという特徴があります。
今回はIE記法を使用したので、こちらのみまとめます!

🍍カーディナリティの表記法

IE記法では、カーディナリティの「ゼロ」を「○」、「1」を「|(縦棒)」、「多」を「鳥の足」の記号で表示し、これらの記号を組み合わせることで様々な関係を表示します。

1:1の関係


1:1の関係なので縦棒は両端に1本ずつついています。

例えば、従業員に1つの履歴書がある場合履歴書は1人にのみ属します。(知らない人の履歴書もらっても意味ないからね)
上の図は2つのエンティティー間に1:1の関係が存在することを表しています。
この場合、従業員は1つの履歴書のみ持つことができ、履歴書は1人の従業員にのみ属することができることができることを反映しています。

💎線が1本で1:1なら線が2本になったら2:1とかになるってことだよね?
けど、表記法では1までしか言われてないから違うんじゃねい?

💎どういうときに使う??

1:多の関係

上の図では、2 つのエンティティー (部門と従業員) 間に 1 対多の関係が存在することを表しています。
部門は多くの従業員を持つことができますが、個々の従業員は 1 つの部門でのみ働くことができるという事です。

1:0以上の関係

💎0以上ってどういうこと??0以上ってことだから0でもいいよってことだよね?

会員登録したからユーザーアカウントはあるけど注文はしたことないから注文は0でも関係は成り立つよってこと

1:1以上の関係

例えば、注文テーブルと注文詳細テーブルがあった時。
注文されたことによって初めて注文詳細が生きてくるので注文詳細にとって注文は1以上なければならない。

0または1:多の関係

🍍まとめ

こんな感じで自分的には理解できてるつもり、、
ER図を描くことが初めてで何すればいいのかパニックになってます😟
せめてもの思いでまとめました

学んだサイト

https://www.ibm.com/docs/ja/db2-for-zos/13?topic=modeling-entities-different-types-relationships
https://product.strap.app/magazine/post/knowhow_entity-relationship-diagram?utm_medium=direct

Discussion