目次
目的
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のツール |