【いーあーるず】

ER図(実体関連図) とは?

公開:
💡 データの間取り図を描こう
📌 このページのポイント
ER図(実体関連図)のイメージ ユーザー PK: user_id 名前 メールアドレス 注文 PK: order_id FK: user_id 注文日 合計金額 1対多 商品 PK: product_id 商品名 / 価格 多対多 エンティティ リレーション
ER図のイメージ
ひよこ ひよこ
ER図って何なの?設計図みたいなもの?
ペンギン先生 ペンギン先生
そうだよ!データベースの設計図そのものだね。マンションの間取り図みたいに、「どんなデータがあって、それぞれがどう関係しているか」を箱と線で描いたものだよ。
ひよこ ひよこ
箱と線だけで表せるの?
ペンギン先生 ペンギン先生
箱がエンティティテーブル)で、中に属性(カラム)を書くよ。たとえば「ユーザー」という箱には「名前」「メールアドレス」が入る。箱同士を線でつないで「ユーザーは複数の注文を持つ」みたいな関係を表すんだ。
ひよこ ひよこ
1対多とか多対多ってよく聞くけど、どういう意味なの?
ペンギン先生 ペンギン先生
カーディナリティと呼ばれるもので、関係の「数」を表すよ。たとえば「1人のユーザーが複数の注文をする」なら1対多。「学生が複数の授業を取り、授業にも複数の学生がいる」なら多対多だね。
ひよこ ひよこ
ER図っていつ作るものなの?
ペンギン先生 ペンギン先生
データベースを作る前の設計段階で描くのが基本だよ。いきなりテーブルを作り始めると、後から「この関係おかしい!」となって大変なことになる。チームで「この設計で合ってるよね?」と確認するのにも使うんだ。
ひよこ ひよこ
記法にも種類があるって聞いたんだけど…?
ペンギン先生 ペンギン先生
いい質問だね。代表的なのはIE記法(鳥の足記法)とUML記法の2つだよ。IE記法は線の端に「鳥の足」みたいな記号をつけてカーディナリティを表す。現場ではIE記法が多いけど、UMLクラス図と統合して使うチームもあるよ。
ひよこ ひよこ
大きいシステムだとER図も巨大になりそうだね!
ペンギン先生 ペンギン先生
そうなんだよ。数百テーブルになると全体を一枚に描くのは無理だから、サブシステムごとに分割して描くのがコツだね。A5:SQL Mk-2やdbdiagram.ioみたいな専用ツールを使うと、テーブル定義から自動生成もできて便利だよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ER図」って出てきたら「データベーステーブル同士の関係を図にしたもの」と思えればだいたいOK!
📖 おまけ:英語の意味
「Entity-Relationship Diagram」 = 実体関連図
💬 Entity(実体)とRelationship(関係)を図にしたもの。1976年にピーター・チェンが提案した歴史ある設計手法だよ
← 用語集にもどる