Was ist ein Entity-Relationship-Modell?

Zuletzt aktualisiert: 05.04.2023

Endziel des Datenbankentwurfs ist die Definition von Tabellen. Für eine „gute“ Modellierung ist es jedoch falsch, mit dem Erstellen von Tabellen anzufangen. Man beginnt mit einer informellen Beschreibung der Miniwelt, wie diese von einem Kunden kommt – der Kunde kann dabei auch ein interner Kunde sein, siehe dazu auch die Ausführungen unter 1.2 Datenbankentwurf.

Anhand eines Beispiels nach (Henseler, 2018) soll dies verdeutlicht werden:

Es sei folgende (vereinfachte) Anforderungsdefinition gegeben: es soll eine Datenbank aufgebaut werden, welche die Planung von Veranstaltungen der Hochschule erleichtert. Aus der Datenbank soll hervorgehen, welche Studenten welche Vorlesungen besuchen. Diese Information soll auch zur Raumplanung verwendet werden, damit den Veranstaltungen die Räume passender Größe und vorhandener Unterrichtsmaterialien (Beamer, Projektor) zugewiesen werden können. 

Insbesondere sollen Raumänderungen den Dozenten und Studierenden einfach mitgeteilt werden können. Die Datenbank soll auch alle Noten der Studierenden enthalten. Mögliche Operationen auf dieser Datenbank sind unter anderem:

  • Daten lesen:
    • Wie viele Studierende passen in den Raum „I123“?
    • Erzeuge eine Liste aller Räume, welche für die Veranstaltung „DB“ in Frage kommen
    • Wie viele Credit points hat die Veranstaltung „DB“?
    • Drucke ein Diplom für „Lena Liesel“
    • Welche Veranstaltungen sind Pflicht, Wahlpflicht oder Praktikum?
    • Ist ein Raum Teil eines anderen Raumes?
  • Daten hinzufügen:
    • Neue(n) Student(in) eintragen, dabei automatische Vergabe der nächsten freien Matrikelnummer sowie das Datum der Einschreibung.
  • Daten ändern:
    • Die Studentin „Petra Wiechers“ möchte an der Vorlesung „SE“ teilnehmen.
    • Ändere das Geburtsdatum von „Beate Schramm“.
  • Daten löschen:
    • Die Studentin „Kathrin Eilers“ hat sich exmatrikuliert.
    • Der Raum „I100“ wird zu einem Büro umgebaut.

Die Anforderungsdefinition kann auch zusätzlich Skizzen von Bildschirmmasken und Formularen oder Entwürfe von ausdruckbaren Listen enthalten, beispielsweise, wenn Formulare und Berichte anderweitig vorgegeben sind. Hier beschränken wir uns auf das zu erstellende Datenbankschema.

Das Entity-Relationship-Modell ist ein Datenmodell, welches sich gut zur Darstellung des konzeptuellen Datenbankschemas für relationale Datenbanksysteme eignet. Dazu steht eine standardisierte graphische Notation in Form des Entity-Relationship-Diagramms (ER-Diagramm) zur Verfügung. Dieses Modell wurde 1976 von Peter Chen eingeführt.

Sowohl der Vorgang als auch das Resultat der Modellierung wird Entity-Relationship-Entwurf (ER-Entwurf) genannt. Das Resultat der Modellierung wird auch oft – ebenso wie das zugrundeliegende Datenmodell – als Entity-Relationship-Modell (ER-Modell) des Anwendungsbereichs bezeichnet. 

Vorteil des ER-Entwurfs ist es, dass er systematisch in eine Menge von Relationenschemata überführt werden kann, welche die Grundlage für die Tabellen einer relationalen Datenbank bilden:

Vorgangsweise der Datenmodellierung
Vorgangsweise der Datenmodellierung

Was beschreibt das ER-Modell

Das ER-Modell geht davon aus, dass sich die betrachtete Miniwelt durch Objekte – sogenannte Entities – und Beziehungen zwischen diesen Objekten – den Relationships – beschreiben lässt. Entities und Relationships können durch Attribute näher charakterisiert werden. Dabei handelt es sich um Eigenschaften, die für jede Entity bzw. jede Relationship durch entsprechende Werte, die Attributwerte, konkretisiert werden.

Das ursprüngliche ER-Modell wurde im Laufe der Zeit um starke/schwache Entitätstypen, um Generalisierung und um Aggregation etc. erweitert, worauf hier nicht eingegangen wird.

Die folgenden Beschreibungen sind zum Teil aus (Henseler, 2018) entnommen.

Was ist eine Entität?

Nach Chen ist eine Entität „a thing, which can be distinctly identified“.

Jedes unterscheidbare Ding (Gegenstand, Objekt, …), welches in der betrachteten Miniwelt mehrere Eigenschaften hat und auf Grund dieser Eigenschaften eindeutig identifiziert werden kann, ist eine Entität (engl.: entity).

Die Eigenschaften von Entitäten nennt man Attribute (Merkmale), die jeweils für verschiedene Entitäten unterschiedliche Attributwerte annehmen können. Zwei „Dinge“, welche in allen Attributen den gleichen Attributwert besitzen, sind ununterscheidbar und somit die gleiche Entität. Andererseits ist eine Entität durch die Angabe der Werte aller seiner Attribute vollständig charakterisiert.

Ein einfaches Hilfsmittel, um die Entitäten und Attribute in einer Anforderungsdefinition zu identifizieren ist, alle Substantive zu betrachten. Allerdings ist nicht jedes Substantiv eine Entität: in obigem Beispiel ist jeder Student eine Entität, da er aufgrund seiner Attributwerte zu einem unterschiedlichen „Ding“ wird. Die Stühle in den Räumen sind jedoch keine eigenständigen Dinge und deshalb keine Entitäten.

Durch Bildung von Entitäten wird die Welt diskretisiert, d.h. auf nicht weiter unterteilbare Werte vereinfacht. Dabei muss im Einzelfall entschieden werden, wie fein diese Diskretisierung erfolgen soll. Beispielsweise kann der Name als einzelner Wert aufgefasst oder in Vor- und Nachname unterteilt werden.

Der nächste Abstraktionsschritt ist die Klassenbildung von Entitäten: Eine Entitätsklasse – auch Entitäts-Typ oder Intension genannt – fasst alle Entitäten mit der gleichen Attributskombination zusammen. Diese Gleichartigkeit setzt zumindest eine identische Attributsstruktur voraus, d.h. Attributnamen und Wertebereiche sind gleich.

Zusätzlich muss für alle Entitätsklassen der modellierten Welt gelten, dass mindestens ein Attributwert für alle Entitäten genau gleich ist. Im Beispiel wäre dieses Attribut die „Zugehörigkeit zur Hochschule“. Das dies jedoch für alle hier betrachteten Entitäten immer den gleichen Wert hat, wird dieses Attribut meist weggelassen.

Jede Entität gehört zu mindestens einem Entity-Typ – dies wird Instanz dieses Typs genannt. Die Menge aller aktuellen Instanzen eines Entity-Typs heißt dessen Population. Ein und dieselbe Entität kann Instanz verschiedener Entity-Typen sein, dabei kann auch die Attributsstruktur unterschiedlich sein. Umgekehrt müssen Entitäten mit gleicher Attributsstruktur keineswegs Instanzen desselben Typs sein.

Als Entitätsmenge (Extension) bezeichnet man die Sammlung aller Entitäten einer Entitätsklasse zu einem bestimmten Zeitpunkt in einer DB.

Als Schlüssel (Schlüsselattribut) einer Entitätsklasse bezeichnet man ein Attribut, dessen Attributwert sich für alle Entitäten unterscheidet. Manchmal bilden mehrere Attribute zusammen einen solchen Schlüssel was bedeutet, dass sich die Kombination der Attributwerte unterscheiden muss. 

Ein solcher zusammengesetzter Schlüssel sollte minimal sein (d.h. kein Attribut kann weggelassen werden), da ja im Extremfall die Kombination aller Attribute immer ein Schlüssel sein muss. Ein Attribut ist auch nur dann ein Schlüssel, wenn seine Schlüsseleigenschaft für alle Entitätsmengen gilt.

Im ER-Diagramm werden Entitätsklassen als Rechtecke dargestellt. Die Entitäten selber sind hier nicht (mehr) von Bedeutung, wir erstellen ja ein Schema – also eine Abstraktion der realen Welt.

Entitätsklassen des Beispiels
Entitätsklassen des Beispiels

Was sind Attribute im ER-Diagramm?

Im ER-Diagramm werden Attribute meist als Ovale verbunden mit den Entitätsklassen dargestellt. In jeder Entitätsklasse bilden ein oder mehrere Attribute den Schlüssel, der unterstrichen dargestellt wird. In größeren Diagrammen fällt die Attributsstruktur meist ganz weg oder wird nur abkürzend oder separat notiert.

Normalerweise hat ein Attribut genau einen Wert für eine Entität. Später im Entwurfsprozess wird dem Attribut ein Datentyp (Zeichenkette, Zahl, Boolean, Datum, etc.) zugeordnet.

Was sind einfache Attribute?

Ein Attribut ist einfach (atomar), wenn es sich nicht weiter unterteilen lässt oder man dies nicht möchte. Beispielsweise könnte man die E-Mail-Adresse noch weiter in Domain und Top-Level-Domain unterteilen, doch das würde in unserer Miniwelt keinen Sinn ergeben, da wir nie auf die Teile einer Domain einzeln zugreifen wollen.

Einfaches Attribut des Beispiels
Einfaches Attribut des Beispiels

Was sind zusammengesetzte Attribute?

Ein Attribut kann erneut aus anderen Attributen bestehen, d.h. zusammengesetzt sein. Diese Eigenschaft ist sogar rekursiv, d.h. es bildet sich eine Attributhierarchie.

Zusammengesetzte Attribute des Beispiels
Zusammengesetzte Attribute des Beispiels  

Was sind mehrwertige Attribute?

Ein Attribut kann mehr als einen Wert haben – beispielsweise kann ein Produkt in mehreren Farben lieferbar sein und verschiedene Preise haben (z.B. bei Mengenrabatt).

Mehrwertige Attribute
Mehrwertige Attribute

Was sind abgeleitete Attribute?

Wenn zwei Attribute in einer Beziehung zueinander stehen, ist eines vom anderen abgeleitet. Beispielsweise lässt sich aus dem Geburtsdatum unmittelbar das Alter errechnen.

Abgeleitete Attribute
Abgeleitete Attribute  

Was sind Beziehungen zwischen Entitätsklassen?

Zwischen den Entitätsklassen können Beziehungen (engl.: relationships) auftreten. Das heißt, dass die Entitäten zwei verschiedener Entitätsklassen grundsätzlich miteinander „etwas zu tun haben“ oder „in Verbindung stehen“ oder „zueinander gehören“. Jede Relationship ist durch die Schlüsselwerte der beteiligten Entities und die Werte aller Relationship-Attribute eindeutig charakterisiert.

Diese Beziehungen haben eine bestimmte Semantik, welches man meist mit einem oder zwei Worten ausdrücken kann, z.B. „kennt“, „besteht aus“, „gehört zu“, „führt zu“, „hat“, etc. Aus der Anforderungsdefinition lassen sich die Beziehungen meist durch betrachten der Verben finden.

Der Assoziationstyp beschreibt die Kardinalitätsverhältnisse dieser Beziehung, das heißt wie viele Entitäten der einen Entitätsklasse haben eine Beziehung zu Entitäten der anderen Klasse. Hierbei ist die genaue Anzahl der zugeordneten Entitäten nicht wichtig, es kommt nur darauf an, ob ein oder mehrere Entitäten zugeordnet sind.

Gegeben seien zwei Entitätsklassen A und B. Der Assoziationstyp wird wie folgt definiert:

Assoziationstyp (A,B)Anzahl Entitäten aus B, die jeder Entität aus A zugeordnet sind.
1 oder (1,1) oder (1..1) = einfache AssoziationGenau eine
c oder (0,1) oder (0..1) = konditionelle AssoziationKeine oder eine (c = 0 oder c = 1)
m oder (1,n) oder (1..*) = multiple AssoziationMindestens eine (m ≥ 1)
mc oder (0,n) oder (0..*) = multipel-konditionelle AssoziationKeine, eine oder mehrere (mc ≥ 0)
Assoziationstypen von Entitäten

Kombiniert man eine Assoziation (A, B) mit ihrer Gegen-Assoziation (B, A), so ergibt sich die binäre Beziehung (relationship) zwischen den betrachteten Entitätsklassen. Folgende Tabelle gibt eine Übersicht über alle möglichen Beziehungen:

Entitätsklasse AEntitätsklasse BBeziehungstypBeziehung
Rechter SchuhLinker Schuh1:1Paar
AbteilungPersonalc:1Abteilungsleiter
MitarbeiterAbteilungm:1Abteilungszugehörigkeit
KindElternmc:1Familienzugehörigkeit
FrauMannc:cEhe
PersonParteim:cParteizugehörigkeit
ProjektProjektmc:cUnterprojekt
StandortStandortm:mDistanz
VorlesungStudentmc:mTeilnahme
PersonPersonmc:mcFreundschaft
Liste der möglichen Assoziationstypen

Im ER-Schema wird jede Beziehung als Raute gezeichnet, die mit dem Namen der Beziehung versehen wird. Die Linien zwischen den Entitäten werden mit 1, c, m oder mc gekennzeichnet, die den Assoziationstyp darstellen. Aber: Manche ER-Diagramme stellen den Assoziationstyp umgekehrt dar!

Beispiel einiger Beziehungen und deren Assoziationstypen
Beispiel einiger Beziehungen und deren Assoziationstypen 
  • Ein rechter Schuh (1) kann nur zu einem linken Schuh (1) passen. 
  • Eine Abteilung (1) besteht aus beliebig vielen, jedoch mindestens einem Mitarbeiter (m).
  • Frauen und Männer können (c), müssen aber nicht (c) in einer Ehe leben.

Was sind rekursive Beziehungen?

Es gibt auch rekursive Beziehungen zwischen Entitäten der gleichen Entitätsklasse – beispielsweise kann ein Mitarbeiter auch gleichzeitig Vorgesetzter sein. In solchen Fällen wird eine Unterscheidung von unterschiedlichen Rollen des Entitätstyps erforderlich.

Beispiel einer rekursiven Beziehung
Beispiel einer rekursiven Beziehung  

Was sind n-stellige Beziehungen?

Manche Beziehungen können auch mehr als zwei Entitäten miteinander in Beziehung setzen, dann entstehen n-stellige Beziehungen:

Beispiel einer ternären Beziehung
Beispiel einer ternären Beziehung 

Das Beispiel ist folgendermaßen zu lesen:

  • Ein Student darf bei demselben Dozenten nur ein Abschlussthema ableisten
  • Ein Student darf ein Abschlussthema nur einmal bearbeiten
  • Dozenten können ein Abschlussthema wiederverwenden (bei mehreren Studenten)
  • Ein Abschlussthema kann von mehreren Dozenten vergeben werden (an unterschiedliche Studenten)

Was sind Mehrfachbeziehungen?

Zwischen denselben Entitätsklassen können mehrere Beziehungen gleichzeitig existieren:

Beispiel einer Mehrfachbeziehung
Beispiel einer Mehrfachbeziehung

Beispiel

Das folgende Diagramm zeigt auszugsweise ein ER-Diagramm für die oben angeführte Anforderungsdefinition.

Auszugsweise Darstellung des Beispiels
Auszugsweise Darstellung des Beispiels

    👉 Dir gefällt dieser Beitrag?
    Success! Thanks for Your Request.
    Error! Please Try Again.