🦖

DB設計 ER図について

2023/05/10に公開

はじめに

チーム開発に向けてデータベース設計について復習&予習中の初心者です🔰
間違いなどあればコメントで教えてください!

ER図とは

「Entity Relationship Diagram」の略
ER図とは、「データベース設計(データモデリング)で使う設計手法」

「エンティティ」「アトリビュート」「リレーション」「カーディナリティ」と呼ばれるオブジェクトで構成されており、ER図を活用してデータ構造を俯瞰的に設計します。

データベースが必要なWEBサイトやシステムの設計では必ずと言ってよいほど作成される🙆🏻‍♀️
データベース設計の基本中の基本!!

このツールを利用して書いていく!
https://www.draw.io/

主なER図の種類

ER図は10種類近くの記法がある!

現在は、「IE記法」と「IDEF1X記法」の2種類が最もポピュラー

IE記法(Information Engineering)

リレーションが鳥の足のような形をしていることから、別名「鳥の足記法」とも呼ばれるらしい。
IDEF1X記法に比べて、リレーションが直感的に理解しやすい。
新人研修などではIE記法が積極的に使われている!

IDEF1X記法 (Integration Definition)

リレーションを「●」などで表現することが特徴。
IE記法より細かい表現ができることで人気がある!
が、その分IE記法に比べて直感的な分かりやすさは低くなる。

🌱わかりやすい記事
https://it-koala.com/entity-relationship-diagram-1897

ER図は、4要素で構成されています!

要素 意味
エンティティ 実体(登場人物や物、概念など)
アトリビュート 属性(エンティティの付加情報)
リレーション エンティティ同士の関係性
カーディナリティー エンティティ間の多重度

1. エンティティ

データのまとまりのこと。エンティティの中に、アトリビュートという属性情報がある。

エンティティには2種類あり、
非依存実体
他のエンティティに依存せずに存在できるエンティティのこと。
非依存実体は四角形の記号で表し、四角形の上にはエンティティ名を記述する。

依存実体
他のエンティティに依存して存在するエンティティのこと。
依存実体は角の丸い四角形として記述する。

(依存 = リレーションされるエンティティに親子関係があるかないか。)

🌱わかりやすい記事
https://segakuin.com/diagram/entity-relationship-diagram.html

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

エンティティの中の属性情報のこと。
アトリビュートの中で「主キー」や「外部キー」も表現する。
主キーとなる項目は、エンティティ上部で四角に囲い明示し、外部キーとなる項目は、項目名の後ろに「(FK)」と書いて明示する!その他の項目は、項目名のみ記述する。

3. リレーション

「リレーション」とは、エンティティ同士の関係を表現する線のこと。
リレーションの詳細は、「カーディナリティ」という記号を使って表現する。

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

「1対1」「1対多」「多対多」など、リレーションの詳細を表現する記号のこと。
IE記法とIDEF1X記法では、カーディナリティの表現方法が異なる!!

カーディナリティの書き方<IE記法>

IE記法は、「○」「l」「鳥の足(3つ股の線)」という3つの記号を組合せて表現します。記号の意味は下記です。3つの記号さえ覚えればIE記法のER図が書けます。

記号 意味
0(ゼロ)
l 1(イチ)

これらの記号を組みあわせて様々な表現ができる!

1対1の関係

1対多の関係(あいまいな表現)

よく使われる表現ですが、リレーションがあいまいな状態(最適な定義ではない)です。
「1対多という関係は決まっているが、それ以上は決まっていない」という、データベース設計の初期段階の時に使います。設計が進むにつれ、「1対0以上の関係」「1対1以上の関係」のように具体化していきます。

1対0以上の関係

1対1以上の関係

多対多の関係

0または1対多の関係

🌱参考にさせていただいた記事

https://product.strap.app/magazine/post/knowhow_entity-relationship-diagram
https://zenn.dev/airiswim/articles/b808c73d9116bc
https://www.ntt.com/business/sdpf/knowledge/archive_50.html#:~:text=ER図とは、「データベース,的に設計します。

🏋🏻この動画でとっってもわかりやく説明してくれてます!!🏋🏻

https://www.youtube.com/watch?v=Yg546Zua39A&ab_channel=だれでもエンジニア%2F山浦清透

Bookersの時に軽く自分なりにER図を書いて勉強してたけど、
枠や線に細かい意味があるとは知らずに使っていた!!
上記の動画がめちゃわかりやすくて頭の整理になりました🙆🏻‍♀️

Discussion