実体関連モデル

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内, 検索

実体関連モデル(じったいかんれんモデル、: Entity-relationship Model, ERM)は、概念的データモデルの高レベルな記述を可能とするモデルの一種である。また、実体関連モデルによって具体的なシステムのデータモデルを図で表現したものを実体関連図: Entity-relationship Diagram, ERD)あるいはER図と呼ぶ。情報システム設計の第一段階(要求分析)でこれを使い、必要な情報を洗い出し、それら情報をデータベースに格納する際の型を決定する。データモデリング技術は、任意の領域についてオントロジー(すなわち、用語とその関連を分類し概観すること)を記述するのに使用可能である。データベースを基盤とする情報システムの設計では、概念的なデータモデルを論理設計などと呼ばれる後の工程で関係モデルなどの論理データモデルにマッピングする。関係モデルはその後さらに物理的設計時に物理的モデルにマッピングされる。ただし、設計工程の呼び方は様々であることに注意されたい。

実体関連図(ER図)の描き方にはいくつもの作法がある。本項目では概念的モデリングを中心に古典的記述法について解説する。データベースの論理設計や物理設計でよく使われる記述法には、Information Engineering、IDEF1X(ICAM DEFinition Language)、多次元モデリングなどがある。

目次

[編集] 主なシンボル

関連を持つ2つの実体
実体と属性
関連と属性

「実体(entity)」は離散的な(数えられる)オブジェクトを表す。実体は大まかに言えば名詞に相当する。例えば、コンピュータ、社員、歌、数学の定理など。「関連(relationship)」は2つ以上の実体が互いに何らかの関係を持つことを示す。関連は大まかに言えば動詞に相当する。例えば、会社はコンピュータを「所有する」。部門と社員の間には「監督」関連がある。アーティストと歌の間には「演奏」関連がある。数学者と定理の間には「証明」関連がある。実体は長方形、関連は菱形で表される。

実体や関連は「属性(attribute)」を持つことができる。例えば、「社員」実体は社員番号という属性を持つ。「証明」関連は日付という属性を持つかもしれない。属性は楕円形で表され、それを所有する実体(か関連)と線でつながれる。

全ての実体は(弱実体でない限り)、一意に識別可能な最低限の属性集合を持たなければならない。この属性の集合を実体の主キーと呼ぶ。

実体関連図は1つの実体や1つの関連のインスタンスを示したものではない。むしろ、実体の集合と関連の集合を表している。例えば、ある特定の歌は1つの実体である。あらゆる歌をデータベース内に集めたものが実体の集合となる。アンドリュー・ワイルズフェルマーの最終定理の間の「証明」関連は1つの関連である。そのような数学者と定理の関連をデータベース内に集めたものが関連の集合となる。

実体の集合と関連の集合に関係があるとき、それらの間に線がひかれる。実体の集合の中の全実体が関連の集合にある関連と関与しなければならない場合、太い線でつなぐ。これを「参加制約(participation constraint)」と呼ぶ。実体集合の中の各実体が、関連集合の中の最大でも1つの関連に関与できる場合、実体集合から関連集合に矢印線をひく。これを「キー制約(key constraint)」と呼ぶ。実体集合の全実体がそれぞれ1つの関連に関与する場合、太い矢印線をひく。

「関連実体(associative entity)」は2つの実体集合間の多対多の関連に関する問題を解決するために用いる[1]。例えば、「社員」と「プロジェクト」の間の関連は多対多となりうる。

「単項関連(unary relationship)」は、1つの実体集合が自分自身と関与する関連である。「社員」実体には「部下」という単項関連を持たせることができる(ある社員から別の社員への関連)。

[編集] その他のシンボル

弱実体は、それ自体の属性だけでは一意に識別できない実体である。したがって、その主キーとして自身の属性だけでなく関連する実体の主キーを使用する。弱実体集合は太線の長方形で描かれ、太線の矢印で菱形(関連)と結ばれる(主キーの一部となる関連を示す)。太線の代わりに二重線を使うこともある。

実体関連モデルでの属性は複数の値を持つ場合がある。多値属性(Multi-valued attribute)は二重線の楕円で表され、各実体のインスタンスが複数の値を持つ可能性があることを示す。例えば、ソフトウェア(アプリケーション実体)に「プラットフォーム」という属性があった場合、そのソフトウェアが複数のオペレーティングシステム (OS) 上で動作するなら、個々の実体のインスタンスは複数の属性値を持つことになる。複合属性(composite attribute)は、それ自身複数の属性を含むもので、全属性を示すよう描かれる。例えば、住所は厳密に言えば複合属性であり、県、市町村、町名などから構成される。導出属性(derived attribute)は他の属性に完全に依存している属性であり、破線の楕円形で描かれる。例えば、社員データベースの社員実体に年齢属性があった場合、年齢属性は誕生日属性から導出でき、しかも導出時の日付によって変化するため、年齢属性は導出属性である。

2つの実体集合がより汎用的な実体集合の下位(詳細化)という場合がある。例えば、プログラマと営業マンは共にあるソフトウェア企業の社員という場合である。これを示すため三角形の中に "ISA" と描いて使用する。上位クラスの実体集合は三角形の上の頂点とつながれ、下位クラスの実体集合群は三角形の底辺とつながれる。

複数の実体集合と関連を1つの実体集合とみなし、別の関連と結びつける「集約(aggregation)」という描き方がある。この場合、集約された図の周りを点線の多角形で囲む。

[編集] 分類

二項関係のみを許す実体関連モデルを BERM(Binary Entity Relationship Model)、そうでないものを GERM(General Entity Relationship Model)と呼ぶ。二項関係とは2つの実体間の関係である。したがって、GERMでは3つかそれ以上の実体間の関係も許されている。

[編集] 関連項目

[編集] ER図作成ツール

[編集] 参考文献

この論文は最もよく引用されている。

[編集] 外部リンク

個人用ツール
名前空間
変種
操作
案内
ヘルプ
ツールボックス
他の言語