Wikipedia · einfach zusammengefasst · Stand
Entity-Relationship-Modell
Ein ER-Modell dient sowohl in der konzeptionellen Phase der Anwendungsentwicklung der Verständigung zwischen Anwendern und Entwicklern (dabei wird nur das Was …
Inhalt6 Abschnitte
Zweck und Grundbegriffe
Das Entity-Relationship-Modell (ER-Modell oder ERM) dient der semantischen Datenmodellierung. Es bestimmt und beschreibt den für einen bestimmten Kontext relevanten Ausschnitt der realen Welt, zum Beispiel für ein Projekt zur Entwicklung eines Informationssystems. Das Modell besteht im Wesentlichen aus einem Entity-Relationship-Diagramm (ERD) und textlichen Beschreibungen der verwendeten Elemente.
In der konzeptionellen Phase unterstützt das ERM die Verständigung zwischen Anwendern und Entwicklern. Dabei wird das fachliche Was beschrieben, nicht die technische Umsetzung wie das Wie. In der Implementierungsphase bildet es meist die Grundlage für den Entwurf einer relationalen Datenbank. Der Einsatz von ER-Modellen gilt als De-facto-Standard der Datenmodellierung.
Grundlage ist die Typisierung konkreter Sachverhalte:
- Eine Entität (Entity) ist ein individuell identifizierbares Objekt der Wirklichkeit, zum Beispiel der Angestellte Müller oder das Projekt 3232.
- Eine Beziehung (Relationship) ist ein Zusammenhang zwischen zwei oder mehreren Entitäten, zum Beispiel „Angestellter Müller leitet Projekt 3232“.
- Eine Eigenschaft oder ein Attribut beschreibt, welche Information über eine Entität im jeweiligen Kontext von Interesse ist, zum Beispiel das Eintrittsdatum.
- Ein Entitätstyp fasst gleichartige Objekte auf abstrakter Ebene zusammen, zum Beispiel Angestellter, Projekt, Buch, Autor oder Verlag.
- Ein Beziehungstyp beschreibt den Zusammenhang zwischen Entitätstypen, zum Beispiel „Angestellter leitet Projekt“.
- Attribute beschreiben Entitäts- oder Beziehungstypen näher. Ein identifizierendes Attribut oder eine identifizierende Attributkombination macht Entitäten eindeutig erkennbar; beim Entitätstyp Projekt kann dies die Projektnummer sein.
Besondere Modellierungskonstrukte
Ein starker Entitätstyp kann durch eigene Attributwerte identifiziert werden, etwa ein Auftrag durch seine Auftragsnummer. Bei einem schwachen Entitätstyp reicht die eigene Information nicht aus. Für die Identifikation wird zusätzlich ein Attributwert einer zugehörigen starken Entität benötigt. Ein Raum kann beispielsweise neben der Raumnummer nur zusammen mit einem Gebäude eindeutig bestimmt werden.
Die Kardinalität gibt auf der Ebene eines Beziehungstyps für jeden beteiligten Entitätstyp an, an wie vielen konkreten Beziehungen seine Entitäten beteiligt sein können oder müssen. Die Darstellung hängt von der verwendeten Notation ab.
Eine reflexive oder rekursive Beziehung verbindet Entitäten desselben Entitätstyps. Beispiele sind „Organisationseinheit gliedert sich in Organisationseinheit“ oder „Teil wird verwendet in Teil“. Der Grad beziehungsweise die Komplexität eines Beziehungstyps entspricht der Anzahl der beteiligten Entitätstypen. Üblich sind binäre Beziehungstypen mit Grad 2; seltener kommen ternäre oder höhergradige Beziehungen vor. Solche Beziehungen können näherungsweise durch einen neuen Entitätstyp und mehrere binäre Beziehungen ersetzt werden, wobei dabei Informationen verloren gehen können.
Beziehungstypen haben normalerweise keine eigenen Attribute. Werden solche Angaben benötigt, kann der Beziehungstyp in einen eigenständigen, meist schwachen Entitätstyp umgewandelt werden. Beim Beziehungstyp „Angestellter arbeitet am Projekt“ kann etwa der Projektbeteiligungsgrad diesem neuen Entitätstyp zugeordnet werden. Abgeleitete Attribute werden aus anderen Daten berechnet und müssen daher nicht zwingend gespeichert werden; das Alter kann beispielsweise aus Geburtsdatum und aktuellem Tagesdatum ermittelt werden. In besonderen Fällen können Entitäts- und Beziehungstypen auch uminterpretiert und grafisch durch eine Überlagerung von Rechteck und Raute dargestellt werden.
Spezialisierung und Generalisierung
Bei einer Spezialisierung ist ein Entitätstyp eine Teilmenge eines anderen Entitätstyps. Der übergeordnete Typ heißt Supertyp, der untergeordnete Typ Subtyp. Ein Subtyp erbt alle Attribute, die Identifikation und alle Beziehungen des Supertyps und besitzt zusätzlich besondere Attribute oder Beziehungen. Bei „Flugreise is-a Reise“ gelten die Eigenschaften der Reise, zum Beispiel Reisedatum und Reisepreis, auch für die Flugreise; zusätzlich kann eine Beziehung zum Entitätstyp Flug bestehen.
Vier Ausprägungen werden unterschieden:
- Bei totaler Spezialisierung gehört jede Instanz des Supertyps mindestens einem Subtyp an. Ein Geschäftspartner muss beispielsweise mindestens Lieferant, Kunde, Bank oder Mitarbeiter sein.
- Bei disjunkter Spezialisierung kann eine Instanz nur einem Subtyp angehören. Ein Mitarbeiter kann etwa nur Angestellter, Arbeiter oder Azubi sein.
- Bei überlappender Spezialisierung kann eine Instanz mehreren Subtypen gleichzeitig angehören. Ein Geschäftspartner kann zugleich Lieferant und Kunde sein.
- Bei partieller Spezialisierung muss nicht jede Instanz einem Subtyp angehören. Ein Dokument kann beispielsweise zunächst noch keinem der Subtypen Brief, Notiz oder E-Mail zugeordnet sein.
Die Beziehung wird mit is-a oder can-be („ist ein“ beziehungsweise „kann ein … sein“) beschrieben und ist eine 1:c-Beziehung. Sie bezieht sich auf dasselbe Einzelobjekt in Supertyp und Subtyp und darf daher nicht mit is-element-of verwechselt werden. „Flug is-a Flugreise“ wäre in diesem Sinn semantisch falsch.
Bei einer Generalisierung werden gemeinsame Attribute und Beziehungen mehrerer Entitätstypen in einem neuen Supertyp zusammengefasst, beispielsweise Kunden und Lieferanten zu Geschäftspartnern. Spezialisierung und Generalisierung sind lediglich unterschiedliche Blickrichtungen beziehungsweise Ergebnisse der Modellierungsreihenfolge. Sie können mehrfach, fortgesetzt oder kaskadiert auftreten. Die Identifikationsschlüssel müssen übereinstimmen. Die ursprüngliche ERM-Darstellung sieht für diese Beziehung keine eigene grafische Darstellung vor; Erweiterungen wie das SERM können sie darstellen.
Aggregation und Zerlegung
Bei einer Aggregation werden mehrere Einzelobjekte zu einem eigenständigen Einzelobjekt zusammengefasst. Das übergeordnete Ganze heißt Aggregat, die Bestandteile heißen Komponenten; beide werden als Entitätstypen modelliert. Die umgekehrte Betrachtung wird als Zerlegung bezeichnet.
Bei einer Rollenaggregation gibt es mehrere rollenspezifische Komponenten, die zu einem Aggregat zusammengefasst werden. Es handelt sich um eine 1:c-Beziehung. Beispiel: „Fußballmannschaft is-part-of Fußballspiel“ und „Spielort is-part-of Fußballspiel“; umgekehrt besteht ein Fußballspiel aus Fußballmannschaft und Spielort.
Bei einer Mengenaggregation entsteht das Aggregat aus Einzelobjekten genau einer Komponente. Hier liegt eine 1:cN-Beziehung vor. Beispiel: „Fußballspieler is-part-of Fußballmannschaft“; umgekehrt besteht eine Fußballmannschaft aus mehreren, also N, Fußballspielern.
Aggregation und Zerlegung sind, ebenso wie Spezialisierung und Generalisierung, Beziehungen mit festgelegter spezieller Semantik. Sie ermöglichen eine genauere Darstellung fachlicher Zusammenhänge der realen Welt.
ER-Diagramm und Beschreibung
Ein Entity-Relationship-Diagramm ist die grafische Übersicht aller relevanten Entitäts- und Beziehungstypen eines Kontextes. Bei großen Modellen werden aus Gründen der Übersichtlichkeit Teilmodelle verwendet. Entitätstypen erscheinen meistens als Rechtecke; Beziehungstypen werden durch Verbindungslinien, Beschriftungen oder besondere Linienenden dargestellt. Diese Elemente zeigen auch die Kardinalität.
Verbreitete Notationen sind unter anderem die Chen-Notation, IDEF1X, die Bachman-Notation, die Martin- oder Krähenfuß-Notation, die (min, max)-Notation und UML. Trotz grafischer Unterschiede enthalten sie grundsätzlich dieselben Kernaussagen. Die Chen-Notation zeigt beispielsweise, dass eine Person in einem Ort geboren ist und ein Ort Geburtsort beliebig vieler Personen sein kann.
Die (min, max)-Notation fragt für jeden beteiligten Entitätstyp nach der kleinsten und größten Anzahl von Beziehungen, an denen eine Entität beteiligt sein kann, und notiert das Ergebnis beim jeweiligen Entitätstyp. Andere Notationen bestimmen die Kardinalität, indem sie fragen, wie viele Entitäten des anderen Typs beteiligt sein können. Bei binären Beziehungen zeigt sich der Unterschied vor allem durch eine Vertauschung der Angaben; bei ternären und höhergradigen Beziehungen ist er grundsätzlicher. Kardinalitätsangaben mit n ohne Min-Max-Information lassen offen, ob 0 eingeschlossen ist und eine Beziehung somit optional sein kann. Dies muss zusätzlich verbal festgelegt werden.
Das Diagramm wird durch Beschreibungen ergänzt. Für Entitäten können Name, Definition, Beispiele, Erläuterungen und geschätzte Mengen dokumentiert werden. Für Beziehungen gehören dazu beteiligte Entitätstypen, Aussagen in beiden Leserichtungen, Kardinalität und zusätzliche Bedingungen. Für Attribute werden unter anderem Definition, Beispiel, Informationsformat, Wertebereich und die Eignung zur Identifikation festgehalten.
Vom ER-Modell zur relationalen Datenbank
Beim Datenbankdesign werden konkrete Objekte durch Abstraktion zu Entitätstypen und konkrete Zusammenhänge zu Beziehungstypen zusammengefasst. Danach werden Kardinalitäten bestimmt, Attribute detailliert beschrieben, Schlüsselattribute ausgewählt oder künstliche Schlüssel festgelegt und Umsetzungsdetails wie Pflichtbeziehungen, Fremdschlüssel, Beziehungstabellen und referentielle Integrität definiert. Anschließend entsteht das Schema der relationalen Datenbank mit Tabellen, Feldern und Datentypen.
Die grundlegenden Abbildungen in das Relationen-Modell lauten: Entitätstyp → Relation, Beziehungstyp → Fremdschlüssel; bei einem n:m-Beziehungstyp → zusätzliche Relation, und Attribut → Attribut.
Die genaue Überführung erfolgt in sieben Schritten:
- Für jeden starken Entitätstyp wird eine Relation R = {a₁, a₂, …, aₙ} ∪ {k} mit dem Primärschlüssel k erstellt.
- Für einen schwachen Entitätstyp wird eine Relation R = {a₁, a₂, …, aₙ} ∪ {k} erstellt. k ist Fremdschlüssel; der Primärschlüssel ist {k} ∪ {aₓ}, wobei aₓ den schwachen Entitätstyp und k den starken Entitätstyp identifiziert.
- Bei einer 1:1-Beziehung wird eine der beiden Relationen um den Fremdschlüssel der jeweils anderen erweitert.
- Bei einer 1:N-Beziehung wird die mit der Kardinalität N eingehende Relation T um den Fremdschlüssel der Relation S erweitert; in der Min-Max-Notation entspricht dies der Kardinalität 1.
- Für jede N:M-Beziehung wird eine neue Relation R = {a₁, a₂, …, aₙ} ∪ {kT} ∪ {kS} mit den Beziehungsattributen und den Primärschlüsseln der beteiligten Relationen erstellt.
- Für jedes mehrwertige Attribut in T wird eine Relation R = {k} ∪ {aₓ} mit einem Fremdschlüssel auf T erstellt.
- Für einen n-ären Beziehungstyp mit n > 2 wird eine Relation R = {k₁, k₂, …, kₙ} ∪ {a₁, a₂, …, aₘ} erstellt. Die kᵢ sind Fremdschlüssel auf die beteiligten Entitätstypen, die aᵢ die Attribute des Beziehungstyps. Sind alle beteiligten Entitätstypen mit Kardinalität > 1 beteiligt, besteht der Primärschlüssel aus allen Fremdschlüsseln. Andernfalls umfasst er n − 1 Fremdschlüssel; Fremdschlüssel zu Entitätstypen mit Kardinalität > 1 müssen enthalten sein.