実体関連モデル

実体関連モデル（じったいかんれんモデル、英: Entity-relationship Model, ERM）は、概念的データモデルの高レベルな記述を可能とするモデルの一種である。また、実体関連モデルによって具体的なシステムのデータモデルを図で表現したものを実体関連図（英: Entity-relationship Diagram, ERD）あるいはER図と呼ぶ。本項ではピーター・チェンの1975年の論文で提唱された技法を中心に解説する。ただし、同様のアイデアはそれ以前から存在し、実体と関連を扱う様々な派生モデルが考案されている。

構成要素: 実体、関連、属性

実体 (entity) は、独立した存在として認識され、一意に識別されるものと定義できる。実体とは、ある領域の複雑さから抽象したものである。実体は、実世界のある面だけを取り出し、他の面を捨象したものである。
実体は家や自動車といった物理的な物体ということもあるし、住宅販売や自動車サービスといったイベントということもあるし、客単価や注文といった概念ということもある。実体という用語はよく使われるが、チェンによれば「実体」と「実体型」を明確に区別すべきである。実体型はカテゴリである。そして実体は、厳密にいえば1つの実体型のインスタンスである。1つの実体型には多数のインスタンスが存在するのが普通である。しかし、「実体」という用語で実体型も指すような使い方をすることが多い。
実体は名詞に対応すると考えることができる。例えば、コンピュータ、従業員、楽曲、数学的定理といった名詞である。
関連 (relationship) は2つの実体間の関係を捉えたものである。関連は2つ以上の名詞句を結び付ける動詞に対応すると考えることができる。例えば、企業とコンピュータの間の「所有する」(owns) という関連、従業員と部門の間の「監督する」(supervises) という関連、アーティストと楽曲の間の「演奏する」(performs) という関連、数学者と定理の間の「証明した」(proved) という関連などである。
このような言語的側面を利用したのが宣言型データベースクエリ言語 ERROLであり、自然言語の構成を真似ている。ERROLの意味論と実装は reshaped relational algebra (RRA)に基づいており、RRAは実体関連モデルの言語的側面を捉えた関係代数の一種である。
実体と関連はどちらも属性 (attribute) を持つことができる。例えば、「従業員」という実体は「社会保障番号」(SSN) という属性を持つことがある。また、「証明した」という関連は（証明した）「日付」という属性を持つことがある。
全ての実体は（弱実体でない限り）、一意に識別可能な最低限の属性集合を持たなければならない。この属性の集合を実体の主キーと呼ぶ。
実体関連図はインスタンスとしての実体やインスタンス間の関連を表したものではなく、むしろ実体の集合と関連の集合を表したものである。例えば、ある特定の楽曲はインスタンスとしての実体であり、データベース内の全ての楽曲が実体の集合である。子どもと昼食の間に「食べた」という関連があるとき、データベース内の全ての「食べた」関連が関連の集合である。言い換えれば、関連の集合は数学における関係に対応し、個々の関連はその関係の個数に対応して存在する。
関連の集合上に濃度制約が設けられることもある。

役割

チェンの最初の論文で、関連とその役割 (role) についての例が示されている。彼が示した例は「結婚」関連と「夫」と「妻」という2つの役割である。役割とは、関連を持つ2つの実体について、関連から見たそれぞれの名称ということができる。結婚という関連において、夫という役割を演じる人物と、妻という役割を演じる人物がいる。これらの関連と役割は名詞である。
しかし、今では関連や役割の「名前」は動詞または動詞句にすることが多い。特に is-the-owner-of（-は-の所有者である）とか is-owned-by（-は-に所有されている）といった句を使うことが多い。これを名詞で表すなら「所有者」(owner) や「所有」(possession) である。

濃度

役に立つ改良も加えられてきた。チェンは役割と関連する相手側の濃度 (cardinality)、すなわち対応する実体の数を論じていた。Oracle Designer が採用している Barker-Ellis 記法では、役割の側の最小濃度と相手側の最大濃度（カラスの足）を採用している。
Meriseや Elmasri & Navatheなどでは、最小濃度も最大濃度も役割と同じ側に設定する傾向がある。最近の研究者ら（Feinerer、Dullea et al.）は、このような方式の方が2項を超えるN項関係にも一貫して適用できることを示した。
Dullea et al. によれば、UMLに見られるような相手側に濃度を記述する記法では、2項を超える多項関係の参加制約の意味論を効果的に表現できないとしている。
Feinerer でも同様にUMLで使われている相手側での濃度指定では問題が生じるとしている。Hartmann がそういった状況を調査した。

Crow's Foot （カラスの足）記法

Crow's Foot（カラスの足）記法は、Barker's Notation、SSADM、IE で使われている。その場合、実体を矩形で表し、関連は矩形同士を結ぶ直線で表される。その直線の両端の形状によって関連の濃度を表現する。
この記法は1980年代にCACIがコンサルタント業務で使っていた。Richard Barker を含むCACIのコンサルタントらがオラクルイギリス支社に移籍し、CASEツールを開発。そこでこの記法を採用したことで広く知られるようになった。カラスの足記法を使っているツールとしては、ARIS、System Architect、Visio、PowerDesigner、Toad Data Modeler、DeZign for Databases、Devgems Data Modeler、OmniGraffle、MySQL Workbench、SQL Developer Data Modeler などがある。CAテクノロジーズの CA Gen もこの記法を採用している。

ER図作成ツール

ER図を描画する様々なツールが存在する。ERモデルやSQLを入力としてER図を生成し、データベースを分析できるフリーソフトウェアとして MySQL Workbench、Open ModelSphere（オープンソース）がある。ER図からデータベースやアプリケーション層のコード（Webサービス）を生成できるフリーウェアのERツールとして RISE Editor がある。SQL Power Architect はプロプライエタリだが、フリーなバージョンもある。
プロプライエタリなER図描画ツールとしては、Avolution、dbForge Studio for MySQL、ER/Studio、ERwin、MagicDraw、ModelRight、Navicat Data Modeler 、OmniGraffle、Oracle Designer、PowerDesigner、Rational Rose、Sparx Enterprise Architect、SQLyog、IBM Rational System Architect、Toad Data Modeler、Visual Paradigm などがある。
単に描画だけが可能なフリーソフトウェアの描画ツールもある。SQLの生成といった機能はない。例えば、label=Creately、yEd、LucidChart、Calligra Flow、Dia などがある。

ERと意味論的モデリング

ERモデリングを考案したピーター・チェンは、その論文で次のように述べている。
実体関連モデルは現実の世界が実体と関連から構成されるというさらに自然な見方を採用している。それは実世界についての重要な意味情報の一部を含んでいる。
これは、古代ギリシアの哲学者ソクラテス、プラトン、アリストテレスからパース、フレーゲ、ラッセルに始まる現代の認識論・記号学・論理までの流れを踏まえた上での言葉である。プラトンのイデア論では、不変の範型があるとし、それらの関係を論じている。1976年の論文でチェンは実体関連モデルと様々なレコードモデリング技法を明確に対比させて次のように記している。
データ構造図はレコード群の構成を表現したものであり、実体と関連を正確に表現したものではない。
この考え方を支持する人々もいる。
意味論的モデルは概念のモデルであり「プラットフォームに依存しないモデル」である。また、内包的なモデルである。ルドルフ・カルナップ以来、次のようなことが常識となっている。
ある概念の完全な意味は内包と外延という2つの側面から成る。前者は世界を構成する全概念における概念の埋め込み、すなわち他の概念とのあらゆる関連の総体からなる。後者はその概念の指示的意味を確立するもので、実世界や可能世界にそれに対応するものが存在する。
外延的モデルは、特定の方法論やテクノロジーの要素群にマッピングされるもので、「プラットフォーム固有のモデル」である。UML仕様においてクラスモデルの関係は外延的だと明確に記されており、そのことは仕様上さまざまな装飾が追加されている点からもUMLの元になった「意味論モデリング言語」群が提供したものからも自明である。