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とか実体関連図とも呼ばれます。