ER図の種類
そもそも知らなかったがER図には複数の書き方があるらしく、有名なのは「IE記法」と「IDEF1X記法」というものらしい。ふたつの記法は似ているがカーディナリティの違いがあるとか。
IDEF1X記法はリレーションを「●」などで表現することが特徴でIE方より細かい表現ができるが、その分直観さが失われるらしい。複雑なのは避けたいので、今回はIE記法で進めていく。
そもそもIE記法しかないと思っていた……。
カーディナリティの種類
記号 | 意味 |
---|---|
○ | 0 |
l | 1 |
鳥の足(3つ股の線) | 2以上 |
主にこんな感じの記号を駆使していく。
実際にやってみる
内田百閒という好きな作家でER図を作っていく。
ちなみにおすすめは、下記3作品。
1対1の関係
これはまあ、シンプルに内田百閒とその詳細を表すときが該当する。 例えば内田百閒という漢字とその読み方を表すと下記のようなER図になる。
内田百閒という作家名は「うちだひゃっけん」という読み方しかないので、1対1の関係になる。
1対多の関係
良く使われる表現だが、曖昧な状況を表している。
「1対多という関係は決まっているが、それ以上は決まっていない」という、データベース設計の初期段階の時に使う。
設計が進むにつれ、「1対0以上の関係」「1対1以上の関係」のように具体化してく必要がある。
例えば内田百閒とその作品はこれに該当する。
内田百閒はたぶん複数の著作を持っているので、1対多の関係になる。
1対0以上の関係
それじゃあ、1対多の関係を具体化していく。
1対多とはいえ、1に紐づくものが0の場合も存在する場合は、1対0以上の関係になる。
過去に遡り、百間がまだ著作を出版していなかった時、下記のようなER図で表現できる。
もしかすると百間は著作を出版することなく人生を終える可能性もあるので、0を許容する必要がある。 そういう場合は1対0以上の関係になる。
1対1以上の関係
とはいえ、百間は最高の作品を複数残した。
そのため、少なくとも1件以上は彼に紐づけることができる。
つまり、1対1以上の関係の関係になり、下記のように表現することができる。
多対多の関係
なんとなくこれがいまいち理解できてない気がする。
そして内田百閒だけだとこれは表現できない気がするので、「作家」と「出版社」というリレーションにする。
作家は0以上の出版社から本を出版することができ、出版社から出版する人が0人以上いる。
うん、そういうこと。
たぶんここら辺を理解できれば問題ないと思われる。
あとは結局数をこなしていけば、必然的に覚えれる。