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の裏紙か、チラシの裏。そしてボールペン一本。
頭に浮かんだ「モノ」を箱に書き、適当に線で結んでみる。
「客と注文……客は何度も注文するから、こっちがカラスの足だな」と矢印を書き足す。
この汚いメモ書きこそが、システムの骨格になります。美しく清書するのは、構造が決まった後で十分です。
まずは手を動かし、箱を描くこと。それだけで、あなたはデータの海で溺れることがなくなります。
では、さっそく紙を用意して、世界を整理してみましょう。


コメント