30分でわかるER図の書き方 (1)
ER図生成ツールの作成時にER図の書き方を調べたので、わかった事をまとめます。記事数は10くらいになる予定です。*1
あくまで、ER図の表記方法についての説明であり、データモデリングやDB設計に関する説明は含みません。そのような情報が欲しい方は、別のサイトや書籍を参考にしてください。また、ER図の表記法は、IE形式とIDEF1X形式をメインにします。
なお、このページは私の個人的な理解に基づいて記述していますので、細かい部分で間違いがあるかもしれません。
前回: -
次回: id:simply-k:20100704:1278214995
目次: id:simply-k:20100716:1279237959
ERモデル
ERモデル(Entity Relationship Model)*2は、概念データモデルの一種です。1976年にピーター・チェン(Peter Chen)博士によって提案されました。ERモデルでは、モデル化対象の世界をエンティティ(entity)*3とリレーションシップ(relationship)*4で表現します。
- エンティティ*5
- 同じような特徴を持った物事をひとまとめにしたもの。システムの中では、データとして表現されます。
- リレーションシップ
- エンティティとエンティティの関連性を表現したもの。システムの中では、データ間のルールとして表現されます。
エンティティはインスタンスを持ちます。*6 例えば、「社員」エンティティに対し、社員の「Aさん」や「Bさん」はインスタンスになります。また、エンティティとリレーションシップは、属性(attribute)によって特徴づけられます。
エンティティとリレーションシップをRDBMSを前提にして説明すると、次のようになります。
- エンティティ
- テーブルやビューで表現されるもの。
- リレーションシップ
- 外部キー制約で表現されるもの。*7
ER図
ER図(Entity Relationship Diagram)*8は、元々はERモデルを表記するための図でした。しかし、リレーショナル・データベースとの相性が良いことから、RDBMSを前提としたデータモデルの表記にも使用されるようになりました。その際、IE形式やIDEF1X形式といった、オリジナルとは別の表記法がいくつも考案され、現在に至っています。
ピーター・チェンの表記法
実際のシステム開発では、ほとんど使われません。ここでは概略だけ説明します。次の図は、ピーター・チェンの表記法によるER図の一例です。
- 長方形
- エンティティ
- 菱形
- リレーションシップ
- 楕円
- エンティティまたはリレーションシップの属性 (下線が引かれているのは主キー)
他にも表記ルールはあるのですが省略します。
次回からは、実際のシステム開発でよく使われる、IE形式やIDEF1X形式の説明に入ります。
前回: -
次回: id:simply-k:20100704:1278214995
目次: id:simply-k:20100716:1279237959
*1:1記事3分×10回で30分にしました。
*2:ERMとか実体関連モデルとも呼ばれます。
*3:「実体」とも呼ばれます
*4:「関連」とも呼ばれます。なお、リレーションと省略するのはやめましょう。意味が変わってしまいます。
*5:厳密にはエンティティ・タイプと呼ぶべきですが、一般的にエンティティといったらエンティティ・タイプなので、ここでもエンティティと呼びます。
*6:「エンティティ≒(プログラミング言語の)データ型」といった感じです。
*7:場合によっては他の制約やトリガー、アプリケーションの処理で表現されます。また、多対多のリレーションシップの場合はテーブルが対応します。
*8:ERDとか実体関連図とも呼ばれます。