##記事の対象##
・データベースを学び始めた初学者の方
・ER図の書き方があまり理解できていない方
###ER図が必要となる理由###
ER図とは「データベース設計(データモデリング)で使う設計手法」の一つででデータベース設計の基礎になる部分です。ER図がなくともデータベース設計はできますが、規模が大きくなるにつれ設計ミスや、システムの仕様が理解しずらくなります。その際にER図があれば設計ミスを未然に防ぐことができ、またシステムの仕様も理解しやすくなります。
ER図でデータベース構造などを整理することで、システム全体の構成を俯瞰することができ、手戻りを起こす可能性を減少させることができる為ER図が必要になります。
##基本的な用語##
###エンティティ###
データベースを構成するデータのまとまりのことです。エンティティの中にアトリビュート(属性)があります。
###アトリビュート(属性)###
エンティティの中の属性情報のことです。アトリビュートの中で「主キー」や「外部キー」も表現します。主キーとなる項目は、エンティティ上部に書きます。外部キーとなる項目は、項目名の後ろに(FK)を付けます。その他の項目は、項目名のみ記述します。
###リレーション###
エンティティ同士の関係を表現する線のことです。
リレーションの詳細は、「カーディナリティ」という記号を使って表現します。
###カーディナリティ###
「1対1」「1対多」「多対多」など、リレーションの詳細を表現する記号のことです。「0以上」や「0または1」といったことも表現することができます
##ER図を書く手順##
ER図はいきなり書いていくのではなく、大枠から考えて徐々に詳細に落とし込んでいきます。(概念設計→倫理設計→物理設計。
今回はこれらの説明は省くので自身で調べて見て下さい。)
今回は通販サイトを題材にしたものから手順を説明します。(説明の為簡略化して記載します。本来はもっと複雑なER図になります。)
・管理すべき情報はどのようなものが必要になるか整理する(エンティティを考える)
(例)顧客の情報、商品の情報、注文の情報など
・整理したのものをより細かい情報へ深掘りしていく。(アトリビュートを考える)
(例)氏名、住所、メールアドレス、電話番号など
・整理された情報から各情報ごとの結びつきを整理する(リレーションを考える)
・各々の結びつきに対しての詳細を整理する(カーディナリティを考える)
(例)一人の顧客に対して商品はいくつ存在するのか。逆に一つの商品に対して顧客は何人存在しているのかという感じで考えていく。
<補足>今回の場合のようにカーディナリティを考えている段階で多対多の関係にな理想な場合は中間テーブルを作成する必要があります。
##まとめ##
今回はER図の書き方の初歩的な部分を説明しました。どう書いていけばいいか分からず躓いている方達の助けになればと簡易的に説明しているので。正規化の説明や多対多のカーディナリティが生じた際の中間テーブルの作成の説明など省いていることもあります。まずは一度ER図を作成してみて、そこから詳細を調べて行ってもらえたらと思います。参考サイトにより詳細なER図の書き方のサイトのURLを載せていますので調べて見てください。
参考サイト
https://it-koala.com/entity-relationship-diagram-1897
https://products.sint.co.jp/ober/blog/create-er-diagram
http://itref.fc2web.com/technology/entity_relationship_diagram.html