ER図
ER図(実体関連図、Entity Relationship Diagram, ERD)とは、データを「実体(entity)」と「関連(relationship)」、
「属性(attribute)」という3つの構成要素でモデル化する「ERモデル」を図で表したものです。
データベースを設計する際などに広く用いられています。
エンティティ
エンティティ(実体、entity)とは、エンティティとは実体すなわち実在するものです。
システム化対象業務において、管理すべき実体のことを指します。
エンティティは一般的に名詞で表現され、具体的には、「社員」「顧客」「店舗」「商品」「売上」「口座」等がそれにあたります。
リレーションシップ
リレーションシップ(関連、relationship)とは、エンティティ間の関係を示します。
エンティティは、様々に結びつき、関連付けられています。
リレーションシップは一般的に動詞であり、具体的には、各社員は唯一の部署に「属する」、支店は複数の店舗を「担当する」、得意先は多数の商品を「購入する」等がそれにあたります。
アトリビュート
アトリビュート(属性、attribute)とは、個々のファイルやデータに関する固有の情報、特性のことです。
関係モデル (リレーショナルモデル) においては、属性名と定義域の名称のペア (属性名と定義域名から構成されるコンポーネント)のことを示します。
組 (タプル、行) は、ある特定の属性の順序づけられていない集合とそれぞれの属性値から、構成されており、
関係 (リレーション、表) の見出しは、順序づけられていない属性の集合から、構成されています。
組における属性(組の型の例)
属性名 | 定義域名 |
---|---|
製品コード | 文字列型 |
製品名 | 文字列型 |
単価 | 整数型 |
組における属性(組の例)
製品コード (文字列型) |
製品名 (文字列型) |
単価 (整数型) |
---|---|---|
A010001 | キズぐすり | 200 |
A010002 | いいキズぐすり | 700 |
IE形式でのER図
IE(Information Engineering)は、データベースの概念設計においてER図を記述する形式のひとつです。
Crow's Foot(カラスの足)記法にて2つの実体の関連を表現します。
なお、IE形式には、IDEF1Xのような規格は存在しません。
そのため、人や使用するソフトウェアによって、異なるER図が描かれる場合があります。
以下に記すのは一般的なIE形式での記法である為、注意してください。
実体(entity)
実体を矩形(四角形)で表し、矩形の上には実体名を記述します。
また実体は、他の実体に依存せずに存在できる非依存実体(Identifier-IndependentEntity)と依存して存在する依存実体(Identifier-Dependent Entity)に分けることができます。
なお、依存実体は角の丸い四角形として記述されます。
関連(relationship)
関連は矩形同士を結ぶ直線で表され、その両端にカーディナリティ(多重度)を示す記号(Crow's Foot)を記述します。
また、実線の中央に動詞句を記述します。(省略可)
属性(attribute)
主キー(Primary Key)となる項目は、エンティティ上部で四角に囲い明示します。
外部キー(Foreign Key)となる項目は、項目名の後ろに「(FK)」と書いて明示します。
その他の項目は、項目名のみ記述します。
カーディナリティ(多重度、cardinality)
あるエンティティのインスタンス1つに対応する、別エンティティのインスタンスの最大数を記述します。
オプショナリティ(optionality)
あるエンティティのインスタンス1つに対応する、別エンティティのインスタンスの最小数を記述します。
オプショナリティには2パターンあり、0を許容しない場合を Mandatory、インスタンスが0のケースもありえるのが Optional と呼びます。
リレーションシップの表現でオプショナリティを行うかどうかは任意になりますが、行ったほうが当然ながらデータモデルの正確性は増します。
多重度の記述方法
名称 | シンボル | カーディナリティ | オプショナリティ | UML |
---|---|---|---|---|
One-Mandatory | 1 | 必須 | 1 | |
Many-Mandatory | 多 | 必須 | 1 .. * | |
One-Optional | 1 | 任意 | 0 .. 1 | |
Many-Optional | 多 | 任意 | 0 .. * |
IE形式でのER図 記述例
IDEF1X形式でのER図
DEF1Xは、IDEF(integration definition)と呼ばれ、データベースの概念設計においてER図を記述する形式のひとつです。
また、IDEF1Xは米国のNIST(国立標準技術研究所)によってFIPS(連邦情報処理標準)として標準化されており、IE(Information Engineering)と並んでER図の記述方法として一般的なものです。
IDEF1Xでは、ERモデルにおける実体を矩形(四角形)として記述し、矩形との間に線を引くことによって関連を表現します。
以下にIDEF1X形式での記法となります。
実体(entity)
実体を矩形(四角形)で表し、矩形の上には実体名を記述します。
また実体は、他の実体に依存せずに存在できる非依存実体(Identifier-IndependentEntity)と依存して存在する依存実体(Identifier-Dependent Entity)に分けることができます。
なお、依存実体は角の丸い四角形として記述されます。
関連(relationship)
関連は矩形同士を結ぶ直線で表され、その両端にカーディナリティ(多重度)を示す記号を記述します。
実線の中央に動詞句を記述します。(省略可)
なお、依存実体との関連には実線、非依存実体との関連には破線を使用します。
属性(attribute)
主キー(Primary Key)となる項目は、エンティティ上部で四角に囲い明示します。
外部キー(Foreign Key)となる項目は、項目名の後ろに「(FK)」と書いて明示します。
その他の項目は、項目名のみ記述します。
カーディナリティ(多重度、cardinality)の表現
あるエンティティのインスタンス1つに対応する、別エンティティのインスタンスの最大数を記述します。
親エンティティ側と子エンティティ側で異なるカーディナリティの記号を使用します。
多重度の記述方法
名称 | シンボル | カーディナリティ | 備考 | UML |
---|---|---|---|---|
親 | 0または1 | 非依存リレーションシップ でのみ使用する |
0 .. 1 | |
1 | ― | 1 | ||
子 | 0以上 | ― | 0 .. * | |
1以上 | 「P」は「Positive」の略 | 1 .. * | ||
0または1 | 「Z」は「Zero」の略 | 0 .. 1 | ||
N固定 | N ≥ 1 | N | ||
N以上M以下 | N < M、N ≥ 0、M ≥ 1 | N .. M |
IDEF1X形式でのER図 記述例