ER図の正体。実は箱と線を引くだけの「相関図」です

リレーション データベース

ER図は、ただの「お絵描き」です

ER図のイメージがうまくつかめずお困りのあなたへいきなり核心を突きます。

ER図とは、ドラマの公式サイトにある「人物相関図」の親戚です。

新番組が始まると必ず公開されますね。主人公が真ん中にいて、ヒロインが隣にいて、敵役がいて。「好き」「対立」「親子」といった線が縦横無尽に走っている、あの図です。

エンジニアが仕事中に描いているER図、あれと全く同じです。

ER図のERは「Entity Relationship」の略です。日本語に訳すと「実体と関連」。仰々しいですね。思わず逃げ出したくなります。

ですが、怯える必要はありません。

「エンティティ」とは「登場人物」のこと。「リレーションシップ」とは「彼らの関係」のこと。それ以上でも以下でもありません。

エンジニアたちは、難しそうな顔をしてホワイトボードに四角い箱を描き、線を引っ張っています。彼らは複雑な計算をしているのではありません。

「このデータとあのデータ、付き合ってるの? それともただの友達?」という噂話を図にまとめているだけです。

紙とペンを用意してください。

この記事で、あなたの「ER図アレルギー」を粉砕します。


世界は3つの要素でできている

どんなに複雑で巨大なショッピングサイトも、銀行のシステムも、その設計図はたった3つの要素で構成されています。

  • 箱(エンティティ):主役
  • 中身(アトリビュート):プロフィール
  • 線(リレーションシップ):関係性

箱(エンティティ)

物語の「主役」です。システムの中に登場する名詞を、四角い箱で囲みます。

  • 人(顧客、社員、オタク)
  • モノ(商品、チケット、推しグッズ)
  • コト(注文、予約、炎上)

これだけです。「このシステムには何が登場する?」と考え、思いついたものを片っ端から四角で囲む。これが第一歩です。

中身(アトリビュート)

箱の中に書き込む「プロフィール」です。

「顧客」という箱があったとします。その中にはどんな情報が必要か。
名前、電話番号、住所、誕生日、推しのカラー。

これらがアトリビュートです。RPGで言えば、キャラクターの強さや装備品が表示されるステータス画面の中身。難しく考える必要はありません。必要な情報を箇条書きにするだけです。

線(リレーションシップ)

箱と箱をつなぐ「糸」です。

顧客が、商品を、買う。
オタクが、ファンクラブに、入る。

動詞で説明できる関係を、線で表現します。この線があることで、バラバラに浮遊していた箱たちが繋がり、ひとつのシステムとして機能し始めます。


挫折ポイント「カラスの足」を攻略する

ER図の学習者を絶望の淵に叩き落とすのが、「線の形」です。

線の一方が三股に分かれていたり、丸がついていたりします。「カラスの足」と呼ばれるこの記号。これが意味するのは「数」です。

専門用語では「多重度」や「カーディナリティ」と呼びますが、忘れてください。

これは「一途か、浮気か」という話です。

パターンは3つしかありません。

1対1(あなたと分身)

一人の夫に対して、妻は一人。一人の社員に対して、社員証は一枚。

非常に硬い結束です。めったに登場しません。なぜなら、そんなにガッチリ結びついているなら、最初から一つの箱に入れてしまえばいいからです。

1対多(アイドルとファン)

これがER図の9割を占める基本形です。

あるアイドル(1)から見れば、ファンは大勢います(多)。

しかし、あるファン(箱推しではなく単推しのガチ勢)から見れば、担当アイドルはその人(1)だけです。

ER図では、「ファン」という箱の方に、三股のマーク(カラスの足)をつけます。
三股がついている側が「いっぱいある方」です。

「親と子」「クラスと生徒」「注文と明細」。世の中の情報のほとんどは、この構造で成り立っています。

多対多(カオス)

一つのサークルに学生がたくさんいて、学生も複数のサークルを掛け持ちしている状態。
あっちもこっちも「多」。

これはシステムとして管理不能です。放置すればデータは破綻し、エンジニアは死にます。

だから我々は、この二者の間に「部員名簿」のように新しい箱を無理やり割り込ませて整理します。喧嘩しているカップルの間に仲裁役を入れるようなものです。


なぜ、わざわざ図を描くのか

なぜ、わざわざ図を書くのか。日本語は不完全だからです。

「会員は複数のカードを持てます」という文章を見てください。

「同時に何枚も持てる」のか、「古いカードを破棄すれば新しいのを持てる」のか。人によって解釈が変わります。

システム開発において、この認識のズレは致命傷になります。完成直前に「えっ、そういう意味だったんですか?」となれば、数千万円が灰になりえます。

ER図には曖昧さがありません。
線が三股になっていれば「複数OK」という意味。一本線なら「一つだけ」という意味。

誰が見ても同じ解釈になる。これが、エンジニアが図を崇拝する理由です。


まずは「落書き」から始める

いきなりパソコンを開いて、専用の作図ソフトを使おうとしてはいけません。ツールの使い方を覚えることに脳のリソースを奪われ、肝心の「整理」ができなくなるからです。

必要なのは、A4の裏紙か、チラシの裏。そしてボールペン一本。

頭に浮かんだ「モノ」を箱に書き、適当に線で結んでみる。
「客と注文……客は何度も注文するから、こっちがカラスの足だな」と矢印を書き足す。

この汚いメモ書きこそが、システムの骨格になります。美しく清書するのは、構造が決まった後で十分です。

まずは手を動かし、箱を描くこと。それだけで、あなたはデータの海で溺れることがなくなります。

では、さっそく紙を用意して、世界を整理してみましょう。

コメント

タイトルとURLをコピーしました