目次
目的
ER図(ERD: Entity Relationship Diagram)とは、データを「実体(entity)」と「関連(relationship)」、「属性(attribute)」という3つの構成要素でモデル化する「ERモデル」を図で表したものである。ER図はおもに データベースのテーブルを設計する際に用いられている。
ERモデルにおいて、実体(エンティティ)とは管理の対象として存在するものであり、名詞で表現されるものである。関連(リレーション)とは、実体と実体の関係を示したものや、実体に対する操作などのことであり、動詞で表現することができる。また、属性とは、実体の特性や実体に関する情報のことを指す。
データモデル表現の標準的手法であるERモデルは静的モデルであるため、エンティティ(データ)が生成されたり、更新されるタイミングを表現できない。これらを表現するにはCRUD図を用いる。
ER図では、実体を四角形、関連を線として表す。
エンティティ
論理モデルのER図の場合、エンティティ(実体)は業務におけるひとまとまりのデータを表している。物理モデルのER図の場合、エンティティはデータベースのテーブルを表す。
エンティティには2種類あり、非依存実体と依存実体に分けられる。
非依存実体
非依存実体とは他のエンティティに依存せずに存在できるエンティティである。非依存実体は四角形の記号で表し、四角形の上にはエンティティ名を記述する。
依存実体
依存実体とは他のエンティティに依存して存在するエンティティである。依存実体は角の丸い四角形として記述する。
属性
エンティティを表す四角形の中には属性を記述する。四角形を線で上下に区切り、上には主キーとなる属性名、下には主キーでない属性名を記述する。
外部キー(FK)
外部キー(Foreign Key)となる属性には、属性名の後に「(FK)」という文字を付ける。
リレーション
リレーションはエンティティ間の関連である。エンティティを表す四角形の間に線を引くことでエンティティを表し、線の横に関連名を記述する。依存実体との関連には実線、非依存実体との関連には破線を使用する。
関連によってつながった実体間には親子関係が成り立ち、子となる実体に結び付けられた線の先には黒く塗り潰した円を記述する。
カーディナリティ(多重度)
リレーションには多重度(カーディナリティ)を記述することができる。多重度とは、エンティティ間が何対何でつながっているかということを表現するものである。
リレーションのカーディナリティ(多重度)の書き方には2種類あり、IDEF1X記法とIE記法に分けられる。
IDEF1X記法
IDEF1X (Integration Definition)記法とは、米国標準技術研究所(NIST)が規格化した、データベースの設計に特化したER図表記法である。
IDEF1X記法におけるER図の書き方の例を示す。
子の多重度が0または1の場合、関係線にZ (zero)を記述する。子の多重度が1以上の場合、関係線にP (positive)を記述する。
親の多重度が0または1の場合、関係線に菱形を記述する。
1 対 0または1
1 対 1
1 対 0以上
1 対 1以上
1 対 3
0または1 対 0または1
0または1 対 1
0または1 対 0以上
0または1 対 1以上
0または1 対 3
IE記法
IE (Information Engineering)記法とは、James Martin氏が提唱したデータベースの設計に特化したER図表記法である。
IE記法におけるER図の書き方の例を示す。
関連の上には、関連の多重度(カーディナリティ)を記述することができる。多重度は、実体間が何対何でつながっているかということを表す。多重度の構文を次に示す。
cardinality ::= [ lower-bound ] upper-bound
lower-bound ::= '○' | '|'
upper-bound ::= '|' | 鳥足
記号 | 意味 |
---|---|
○(白丸) | 0 |
|(関連に交差する棒) | 1 |
鳥足(3本に広がる線) | 多 |
カーディナリティ記号の例を示す。
上記のER図の場合、下限が0で上限が1であるから、Bは0か1である。
上記のER図の場合、下限が0で上限が多であるから、Bは0以上である。
上記のER図の場合、下限が1で上限が1であるから、Bは1である。
上記のER図の場合、下限が1で上限が多であるから、Bは1以上である。
論理モデル
論理モデルとは、システム化する業務のエンティティとリレーションを実装技術に依存しない形で行うモデリングである。
たとえば、ひとつのプロジェクトに複数の従業員が属し、ひとりの従業員が複数のプロジェクトに属する場合、プロジェクトと従業員は多対多の関係になる。これを論理ER図で示すと次のようになる。
物理モデル
物理モデルとは、実装を考慮してエンティティをRDBMSのテーブルと1対1になるようモデリングしたものである。RDBMSで多対多の関係を表す場合、中間テーブルが必要になるので、これをエンティティとして表現する。
前述の論理ER図を物理ER図で表現すると、次のようになる。
論理モデルのエンティティにおいて、テーブルのキーとなる自然キー(ナチュラル・キー)が存在しても、物理モデルではシステム上の都合で代理キー(サロゲート・キー)を追加することがある。 たとえば、業務で従業員番号を数字3桁で管理していたものが、会社の規模拡大に応じて桁数が増えたり、所属部署を表すアルファベットが頭に付くようになったりすることがある。 この従業員番号(ナチュラル・キー)をそのままテーブルの主キーとしてしまうと、テーブルの主キー変更がたびたび発生してしまう。 そこで、システム上は単純に1からの連番をキーとすることがある。これが代理キー(サロゲート・キー)である。
ER図作成ツール
ツール | 説明 |
---|---|
ERMaster | フリーのEclipseプラグイン |
MySQL Workbench | MySQLのツール |