Das Entity-Relationship-Modell – kurz ER-Modell oder ERM (mit der sinngemäßen Bedeutung „Modell [zur Darstellung] von Dingen / Gegenständen / Objekten und deren Beziehungen“) – dient dazu, im Rahmen der semantischen Datenmodellierung den in einem gegebenen Kontext (z. B. einem Projekt zur Erstellung eines Informationssystems) relevanten Ausschnitt der realen Welt zu bestimmen und darzustellen. Das ER-Modell besteht im Wesentlichen aus einer Grafik (ER-Diagramm, Abk. ERD) sowie einer Beschreibung der darin verwendeten Elemente.
Ein ER-Modell dient sowohl in der konzeptionellen Phase der Anwendungsentwicklung der Verständigung zwischen Anwendern und Entwicklern (dabei wird nur das Was behandelt, d. h. fachlich-sachliche Gegebenheiten, nicht das Wie, z. B. die Technik) als auch in der Implementierungsphase als Grundlage für das Design der – meist relationalen – Datenbank.
Der Einsatz von ER-Modellen ist der De-facto-Standard für die Datenmodellierung, auch wenn es unterschiedliche grafische Darstellungsformen für Datenmodelle gibt.
Das ER-Modell wurde 1976 von Peter Chen in seiner Veröffentlichung The Entity-Relationship Model vorgestellt. Die Beschreibungsmittel für Generalisierung und Aggregation wurden 1977 von John M. Smith und Diane C. P. Smith eingeführt. Danach gab es mehrere Weiterentwicklungen, so Ende der 1980er Jahre durch Wong und Katz.
Begriffe mini|Einfache Beispiele für ERDs, angelehnt an die Chen-Notation
Grundlage der Entity-Relationship-Modelle ist die Typisierung von Objekten, ihrer Beziehungen untereinander und der über sie zu führenden Informationen (genannt Attribute).
Grundlegende Komponenten In Diskussionen, Beispielen und Konzepttexten wird auf Objekte und Gegebenheiten der realen Welt (im Betrachtungskontext) Bezug genommen; diese werden genannt: Entität (Entity): individuell identifizierbares Objekt der Wirklichkeit; z. B. der Angestellte Müller, das Projekt 3232 Beziehung (Relationship): Verknüpfung / Zusammenhang zwischen zwei oder mehreren Entitäten; z. B. Angestellter Müller leitet Projekt 3232. Eigenschaft (englisch attribute): Was über eine Entität (im Kontext) von Interesse ist; z. B. das Eintrittsdatum des Angestellten Müller.
Im Rahmen der Modellierung werden aus den vorgenannten Sachverhalten gleichartige Typen gebildet und im Modell exakt definiert und beschrieben. Diese Typen unterscheiden sich nach: Entitätstyp: repräsentieren Aspekte der realen Welt auf abstraktem Niveau z. B. Angestellter, Projekt, Buch, Autor, Verlag Beziehungstyp (Relationship-Typ): beschreiben den Zusammenhang zwischen Entitätstypen z. B. Angestellter leitet Projekt Attribut: beschreiben Entitätstypen oder Beziehungstypen näher, z. B. Nachname, Vorname und Eintrittsdatum im Entitätstyp Angestellter. Das Attribut oder die Attributkombination, durch deren Wertausprägungen Entitäten eindeutig erkennbar sind, d. h. diese identifizieren, heißen identifizierende(s) Attribut(e); zum Beispiel ist das Attribut Projektnummer im Entitätstyp Projekt ein identifizierendes Attribut.
Besondere Sachverhalte Zur Beschreibung und Darstellung besonderer Sachverhalte kennt die ER-Modellierung folgende Konstrukte: Starker Entitätstyp: Die Identifikation einer Entität ist durch einen oder mehrere Werte von Attributen des gleichen Entitätstyps möglich; so ist z. B. die Auftragsnummer für den Entitätstyp Auftrag identifizierend. Schwacher Entitätstyp: Zur Identifikation einer solchen Entität ist ein Attributwert einer anderen mit der schwachen Entität in Beziehung stehenden Entität starken Typs erforderlich; so ist z. B. für die Identifikation des schwachen Entitätstyps „Raum“ neben der Raumnummer auch die Angabe eines Gebäudes eines anderen starken Gegenstandtyps „Gebäude“ erforderlich. In Erweiterungen des ER-Modells wie bspw. dem SERM werden Schwacher Entitätstyp und dazugehöriger Beziehungstyp zu einem sogenannten ER-Typen zusammengezogen, wodurch Diagramme kompakter werden. Kardinalität: Die Kardinalität legt (auf der Ebene Beziehungstyp) für jeden der beteiligten Entitätstypen fest, an wie vielen konkreten Beziehungen (dieses Typs) seine Entitäten beteiligt sein können oder müssen. Zur Darstellung der Kardinalität wurden verschiedene Notationsformen entwickelt, von denen Modellierungswerkzeuge meist eine bestimmte unterstützen. Reflexive (selbstbezügliche) Beziehung: Beziehung zwischen einzelnen Entitäten ein und desselben Entitätstyps, somit ein Beziehungstyp zwischen demselben Entitätstyp (zum Beispiel die Baumstruktur einer Aufbauorganisation durch „Organisationseinheit gliedert sich in Organisationseinheit“ und die Netzstruktur einer Stückliste durch „Teil wird verwendet in Teil“). Synonym: Rekursive Beziehung. Grad oder Komplexität eines Beziehungstyps: Anzahl der Entitätstypen, die an einem Beziehungstyp beteiligt sind. Die Regel ist der Grad 2 (binärer Beziehungstyp); selten tritt der Grad 3 (ternärer Beziehungstyp) oder ein höherer Grad auf. Ternäre und höhergradige Beziehungstypen lassen sich näherungsweise durch Einführung eines neuen Entitätstyps (der dem ursprünglichen Beziehungstyp entspricht) auf binäre Beziehungstypen zurückführen. Beispiel: Mitarbeiter betreut Lieferant (für Produktgruppe); neuer Entitätstyp Lieferantenbetreuung mit Beziehungen zu den drei ursprünglichen Entitätstypen. Ein solches Vorgehen kann aber verlustbehaftet sein, d. h., es gibt Sachverhalte, die nur durch mehrstellige Beziehungstypen exakt darstellbar sind. Beziehungsattribute: Üblicherweise haben Beziehungstypen keine Attribute, da sie lediglich die beteiligten Entitätstypen miteinander verbinden. Sind jedoch zusätzlich Attribute erforderlich, so kann aus dem Beziehungstyp – wie bei höhergradigen Beziehungen – ein eigenständiger Entitätstyp mit Beziehungstypen zu den ursprünglich beteiligten Entitätstypen geschaffen werden. Dem neuen (schwachen) Entitätstyp wird dann das Attribut zugeordnet (zum Beispiel Projektbeteiligungsgrad beim Beziehungstyp Angestellter arbeitet am Projekt). Je nach angewendeter Modellierungsmethodik können auch „attributive“ Beziehungen formuliert werden, häufig wird jedoch ersatzweise das Bilden neuer Entitätstypen praktiziert. Abgeleitete Attribute: Abgeleitete Attribute bieten die Möglichkeit, bestimmte Werte auf indirektem Wege aus anderen Datenquellen zu gewinnen. Es besteht daher keine zwingende Notwendigkeit, sie direkt in einer Datenbank zu speichern. Ein exemplarisches Beispiel hierfür ist das Attribut "Alter" eines Mitarbeiters, das mühelos durch die Berechnung des Unterschieds zwischen dem "Geburtsdatum" und dem aktuellen "Tagesdatum" ermittelt werden kann. Uminterpretationen in Datenbankmodellen können in speziellen Situationen dazu führen, dass Beziehungen gleichzeitig als Entitätsmengen betrachtet werden oder umgekehrt, dass Entitäten als Beziehungen interpretiert werden können. Solche Uminterpretationen betreffen sowohl Beziehungstypen als auch Entitätstypen. Ein uminterpretierter Entitätstyp wird somit gleichzeitig als Entitätstyp und als Beziehungstyp betrachtet. Dies wird durch die Überlagerung der Symbole für Entitäten (Rechteck) und Beziehungen (Raute) in der Darstellung verdeutlicht.
Beziehungen mit spezieller Semantik Die inhaltliche Bedeutung der Beziehungstypen zwischen Entitätstypen kommt im ER-Diagramm lediglich durch einen kurzen Text in der Raute (meistens ein Verb) oder als Beschriftung der Kante zum Ausdruck, wobei es dem Modellierer freigestellt ist, welche Bezeichnung er vergibt. Nun gibt es Beziehungen mit spezieller Semantik, die relativ häufig bei der Modellierung vorkommen. Daher hat man für diese Beziehungstypen spezielle Bezeichner und grafische Symbole definiert. Spezialisierung und Generalisierung sowie Aggregation und Zerlegung sind ergänzende Beschreibungsmittel mit einer speziellen Semantik. Mit diesen beiden speziellen Beziehungstypen können die Gegebenheiten der Realwelt exakter und ihrer tatsächlichen Bedeutung entsprechend modelliert und dargestellt werden. Mit fest definierten Namen und speziellen grafischen Symbolen wird gezeigt, dass es sich um semantisch vorbesetzte Beziehungen mit speziellen Regeln handelt.
Diese meist nur in semantischen Datenmodellen speziell modellierten Entitäts- und Beziehungstypen können datenbanktechnisch auf unterschiedliche Weise implementiert werden, etwa (modellierungs-identisch) als jeweils eigene Tabellen oder in gemeinsamen Tabellen mit die Sonderbeziehung kennzeichnenden Kommentaren oder Attributbezeichnungen. Die Umsetzungsentscheidung hierüber erfolgt (wie auch die Bestimmung der Kardinalität für diese speziellen Beziehungen) in den Aktivitäten der Datenbankmodellierung.
Spezialisierung und Generalisierung mittels is-a-Beziehung Bei der Spezialisierung wird ein Entitätstyp als Teilmenge eines anderen Entitätstyps erkannt und deklariert, wobei sich die spezialisierte Entitätsmenge durch besondere Eigenschaften (nur für sie geltende Attribute und/oder Beziehungen) gegenüber der übergeordneten (Supertyp), generalisierten Menge auszeichnet. Da es sich bei einem Einzelobjekt (Subtyp) der spezialisierten Menge und der generalisierten Menge um dasselbe Einzelobjekt handelt, gelten alle Eigenschaften – insbesondere die Identifikation – und alle Beziehungen des generalisierten Einzelobjektes auch für das spezialisierte Einzelobjekt. Spezialisierungstypen (Subtypen) erben alle Attribute von einem übergeordneten Generalisierungstyp (Supertyp). Die Verbindung zwischen Supertyp und Subtyp kann auf verschiedene Arten auftreten:
Totale Spezialisierung: Jede Instanz eines Supertyps entspricht mindestens einem Subtyp (Beispiel: Supertyp "Geschäftspartner" mit Subtypen "Bank", "Lieferant", "Kunde", "Mitarbeiter"; Ein "Geschäftspartner" muss mindestens einem Subtypen wie "Lieferant" zugeordnet sein). Disjunkte Spezialisierung: Eine Instanz eines Supertyps kann nur einem Subtyp entsprechen (Beispiel: Supertyp "Mitarbeiter" mit Subtypen "Angestellter", "Arbeiter", "Azubi"; Ein Mitarbeiter kann nur in einer der drei Rollen beschäftigt sein, mehrfache Zuordnungen sind nicht möglich). Überlappende Spezialisierung: Jede Instanz eines Supertyps kann mehreren Subtypen gleichzeitig angehören (Beispiel: Supertyp "Geschäftspartner" mit Subtypen "Bank", "Lieferant", "Kunde", "Mitarbeiter"; Ein "Geschäftspartner" kann den Subtypen "Lieferant" und "Kunde" gleichzeitig zugeordnet sein). Partielle Spezialisierung: Nicht jede Instanz eines Supertyps muss einem Subtypen angehören (Beispiel: Supertyp "Dokument" mit Subtypen "Brief", "Notiz", "E-Mail"; Ein "Dokument" muss nicht zwangsläufig einem Subtypen zugeordnet werden, wenn zum Zeitpunkt des Anlegens in der Datenbank noch nicht klar ist, ob es als "Brief" oder "E-Mail" klassifiziert werden soll).
Beziehungstypen der Art „Spezialisierung / Generalisierung“ werden durch is-a / can-be („ist ein“ / „kann ein … sein“) beschrieben. Für is-a wird gelegentlich auch a-kind-of („eine Art …“) benutzt. Es handelt sich hierbei um 1:c-Beziehungen.
Beispiel zur is-a-Beziehung: Flugreise is-a Reise und in anderer Leserichtung: Reise can-be Flugreise, mit Eigenschaften wie Reisedatum, Reisepreis (bei Reise) und Beziehungen zu Entitätstyp Flug (bei Flugreise).
Die hier beschriebene is-a-Beziehung (zwischen identischen Einzelobjekten) darf nicht mit der is-element-of-Beziehung (der Zugehörigkeit eines Einzelobjekts zu einem anderen) verwechselt werden, für die gelegentlich auch die Schreibweise is-a verwendet wird, wie z. B. Flug is-a Flugreise (was semantisch falsch wäre).
mini|Generalisierung/Spezialisierung ergeben sich aus dem Modellierungsverlauf