DB設計 ER図について
はじめに
チーム開発に向けてデータベース設計について復習&予習中の初心者です🔰
間違いなどあればコメントで教えてください!
ER図とは
「Entity Relationship Diagram」の略
ER図とは、「データベース設計(データモデリング)で使う設計手法」
「エンティティ」「アトリビュート」「リレーション」「カーディナリティ」と呼ばれるオブジェクトで構成されており、ER図を活用してデータ構造を俯瞰的に設計します。
データベースが必要なWEBサイトやシステムの設計では必ずと言ってよいほど作成される🙆🏻♀️
データベース設計の基本中の基本!!
このツールを利用して書いていく!
主なER図の種類
ER図は10種類近くの記法がある!
現在は、「IE記法」と「IDEF1X記法」の2種類が最もポピュラー
IE記法(Information Engineering)
リレーションが鳥の足のような形をしていることから、別名「鳥の足記法」とも呼ばれるらしい。
IDEF1X記法に比べて、リレーションが直感的に理解しやすい。
新人研修などではIE記法が積極的に使われている!
IDEF1X記法 (Integration Definition)
リレーションを「●」などで表現することが特徴。
IE記法より細かい表現ができることで人気がある!
が、その分IE記法に比べて直感的な分かりやすさは低くなる。
🌱わかりやすい記事
ER図は、4要素で構成されています!
要素 | 意味 |
---|---|
エンティティ | 実体(登場人物や物、概念など) |
アトリビュート | 属性(エンティティの付加情報) |
リレーション | エンティティ同士の関係性 |
カーディナリティー | エンティティ間の多重度 |
1. エンティティ
データのまとまりのこと。エンティティの中に、アトリビュートという属性情報がある。
エンティティには2種類あり、
非依存実体
他のエンティティに依存せずに存在できるエンティティのこと。
非依存実体は四角形の記号で表し、四角形の上にはエンティティ名を記述する。
依存実体
他のエンティティに依存して存在するエンティティのこと。
依存実体は角の丸い四角形として記述する。
(依存 = リレーションされるエンティティに親子関係があるかないか。)
🌱わかりやすい記事
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対多の関係
🌱参考にさせていただいた記事
🏋🏻この動画でとっってもわかりやく説明してくれてます!!🏋🏻
Bookersの時に軽く自分なりにER図を書いて勉強してたけど、
枠や線に細かい意味があるとは知らずに使っていた!!
上記の動画がめちゃわかりやすくて頭の整理になりました🙆🏻♀️
Discussion