データベース設計の基本とも言えるER図ですが、プログラミング初心者の場合その存在も知らないことも多いはず。
そこで今回は、
・そもそもER図ってなに?
・具体的にどう書くかわからない
という方のために
・ER図とは何か
・ER図の書き方
・ER図が書ける無料ツール
をご紹介します。
データベース設計には欠かせないER図の書き方をこの機会にマスターしてみましょう!
目次
ER図とは何か
ER図とはEntity Relationship Diagramという意味で、データベース設計で使う設計手法のことです。
ER図を使うことでデータベースのデータ構造を視覚的にわかりやすく表現することができます。データベースが必要なWEBサイトやシステム設計では必ずと言っていいほど使われており、ER図なしにはデータベースを構築できないといっても過言ではありません。
ER図にはいくつもの記法がありますが、「IE記法」と「IDEF1X記法」の2種類が最もポピュラーとされています。
どちらも概念は似ているのですが、カーディナリティの記法が若干異なります。今回は初心者でも直感的に理解しやすい「IE記法」を使ったER図についてご紹介しますね。
ER図の基本要素5つ
次に、ER図を書く上で必要になる基本要素を解説します。
エンティティ
エンティティとは、データのまとまりのこと。エンティティの中には「アトリビュート」という属性情報が入ります。userテーブルなど、データベースのテーブルがエンティティにあたりますね。
アトリビュート
アトリビュートとは、エンティティの中の属性情報のこと。
userテーブルの中のid・password・emailなど、テーブルのカラム名がアトリビュートにあたりますね。
アトリビュートではidのような「主キー」や他のテーブルと関連付ける「外部キー」を視覚的にわかりやすいように、
・主キーはエンティティの上部の枠内
・外部キーは項目名の後ろに(FK)
と書いて以下のように表現します。
リレーション
リレーションとは、エンティティ同士の関係を表す線のこと。つまり、テーブル同士がどんな関係にあるかということですね。
カーディナリティ
カーディナリティとは、リレーションの詳細を表現できる記号になります。記法によって異なりますが、今回は「IE記法」についてご紹介します。
1を表す場合は「|」、0を表す場合は「◯」など、見た目で意味がわかりやすくなっています。詳しくは以下を参照してください。
意味 | 記号 |
---|---|
1 | |
多 | |
1対1 | |
0または1 | |
1以上 | |
0以上 |
依存・非依存関係
テーブル間の関係が依存しているか依存していないかで、エンティティの形を変えます。依存・非依存は互いの存在が必要かどうかで判断します。
依存
エンティティ間が親子関係になり、必ず紐づくデータが存在しなければならない関係
非依存
エンティティ間に親子関係がなく、紐づくデータがなくてもシステムが成り立つ関係
例えば上の図のようなstudyテーブルとlessonテーブルの場合、lessonが所属するstudyテーブルが必ず必要になります。つまり、studyテーブルが親でlessonテーブルが子の親子関係にあたりますね。
親であるか子であるか、依存か非依存かどうかでエンティティの形が変わるので注意が必要です。
関係 | 形 |
---|---|
子 | 角丸 |
親または非依存関係 | 四角 |
ER図が書ける無料ツール2選
それでは実際にER図を書ける無料ツールをご紹介しますね。有料プランもありますが、初心者がプログラミング学習で使うくらいであれば、無料プランで問題ないでしょう。
Lucidchart
ブラウザ上で利用できるWEBアプリです。ツールを使って簡単にER図が作成できます。
https://www.lucidchart.com/pages/ja/resources
draw.io
こちらもブラウザ上で利用できるWEBアプリです。作ったER図は、Google Driveなどのクラウドストレージ上に保存することもできます。
まとめ
以上、ER図について
・ER図とは何のためにあるのか
・IE記法を使ったER図の書き方と基本要素5つ
・ER図が書ける無料ツール2選
をご紹介しました。ER図の書き方を覚えれば、データベース設計がかなり楽になります。
プログラミング初心者の方はぜひ参考にしてみてくださいね。