Entity-Relationship Modell

Johann Mitlöhner 2010

Das von Chen (1976) vorgestellte ER-Modell gilt als Standard-Modellierungstechnik im Datenbank-Bereich.

Das ER-Modell will wie jedes Modell eine komplexe Wirklichkeit auf die wesentlichen Punkte vereinfachen. Die Darstellungselemente des ER-Modells sind Entitäten und Beziehungen zwischen diesen.

Beispiel: Ein Unternehmen möchte die Auftragsabwicklung neu organisieren und überlegt eine datenbankgestützte Lösung. Der Ablauf wird wie folgt geschildert:

Die Kunden erteilen Aufträge über einen oder mehrere Artikel, wobei jeweils die gewünschte Menge angegeben wird. Ein Kunde kann im Lauf der Zeit viele Aufträge erteilen; jeder Auftrag stammt aber von genau einem Kunden. Von den Kunden sind Name, Adresse und auch die Telefonnummer für eventuelle Rückfragen interessant. Beim Auftrag muß das Datum notiert werden, an dem der Auftrag erhalten wurde. Bei den Artikeln müssen zumindest Nummer, Bezeichnung, Preis und Lagerbestand verwaltet werden.

Kunden- und Artikelnummern werden nach bestimmten Nummerkreisen vergeben. Die Auftragsnummern sind fortlaufend. Alle Nummern sind ganzzahling, d.h. keine Kombinationen aus Ziffern und anderen Zeichen. Die übrigen Abläufe der Auftragsabwicklung wie Lieferung und Zahlung sollen zunächst nicht berücksichtigt werden.

Entities

Zur Identifikation von Entitities kommen zunächst Hauptwörter aus der verbalen Beschreibung der Aufgabenstellung in Frage. Nehmen wir als Beispiel die Kunden des Unternehmens: von diesen Kunden gibt es viele Vorkommen, die gemeinsame Merkmale haben: jeder Kunde hat einen Namen, eine Adresse und eine Telefonnummer:

Hans Meier A-1020 Wien, Herminengasse 3/12 2127345
Wendelin Munter A-1180 Wien, Leschetitzkygasse 14/3 4703126
Vergaser Magistris GmbH A-1020 Wien, Tempelg. 3 2127365
... ... ...

Daneben haben Kunden noch weitere Merkmale, die uns aber hier nicht interessieren, zB Größe, Alter, Gewicht. Was modelliert werden soll und was nicht hängt von der Aufgabenstellung ab: in einer Patientenverwaltung könnten die genannten weiteren Merkmale interessant sein.

Im ER-Modell werden alle Vorkommen von Kunden zu einer Entity Kunde zusammengefaßt. Die Entity wird durch ein Rechteck dargestellt:

Entity und Attribute

Die Attribute einer Entity können wie folgt dargestellt werden:

Wir haben dem Kunden eine eindeutige Nummer gegeben, mit der wir auf bestimmte Kunden verweisen können. Ein solches Schlüsselattribut wird durch Unterstreichen kenntlich gemacht.

Attribute werden in etwas umfangreicheren Diagrammen überlicherweise nicht dargestellt, um nicht die Übersichtlichkeit zu verlieren.

Relationships

Zwischen Entities kann es verschiedene Arten von Beziehungen geben. Als Kandidaten für Relationships kommen zunächst die Zeitwörter aus der verbalen Beschreibung der Aufgabenstellung in Betracht. Ein Kunde kann im Lauf der Zeit mehrere Aufträge erteilen, jeder Auftrag stammt aber von genau einem Kunden. Wir stellen diesen Sachverhalt so dar:

Für die Darstellung von Beziehungen sind verschiedene Varianten gebräuchlich. Neben der hier gewählten wird auch die Darstellung der Beziehung als Raute und Angabe der Anzahl durch 1 und n oft verwendet.

Die Linie zwischen den beiden Entities Kunde und Auftrag zeigt, daß eine Beziehung zwischen den beiden Entities besteht. Der Krähenfuß auf der Seite des Auftrags zeigt recht anschaulich die Kardinalität 1:n an: von der Kundenseite her gesehen weg können wir jedem Kunden einen oder mehrere Aufträge zuordnen. Von der Auftragseite her gesehen gehört jeder Auftrag zu genau einem Kunden.

Wollen wir außerdem noch genauer ausdrücken, wieviele Vorkommen auf den beiden Seiten jeweils minimal und maximal beteiligt sind, so erweitern wir die Darstellung durch gestrichelte Linien, die Null oder Eins bedeuten:

Von der Kundenseite her gelesen: einem Kunden können mehrere Aufträge zugeordnet sein. Von der Auftragseite her: jedem Auftrag ist genau ein Kunde zugeordnet.

n:m Beziehungen

Kunden geben Aufträge, wenn Sie Artikel einkaufen wollen. Der Auftrag besteht aus einem Auftragskopf (Kunde, Datum), gefolgt von einigen Zeilen mit Auftragspositionen, von denen sich jede auf einen Artikel bezieht und eine Menge angibt. Ein Auftrag enthält eine oder mehrere Positionen, ein Artikel kann in einem oder mehreren Aufträgen vorkommen. Zur Darstellung von solchen n:m-Beziehungen werden auf beiden Seiten der Beziehung Krähenfüße gezeichnet:

Ein Auftrag, der nicht zumindet einen Artikel enthält, ist sinnlos. Artikel, die in keinem Auftrag vorkommen, kann es aber durchaus geben.

Auflösen von n:m Beziehungen

Diese n:m-Beziehung hat ein Attribut (Menge); wir lösen wir sie daher auf, d.h. wir führen eine Entität Auftragsposition ein:

Beachten Sie die Kardinalitäten: zur jeder Auftragsposition muß genau ein Auftrag und ein Artikel angegeben werden. Vergleichen Sie dies mit der nicht aufgelösten n:m Beziehung: beim Auflösen von n:m Beziehungen

Umsetzen von 1:n Beziehungen

Jede 1:n Beziehung kann durch Einführen eines zusätzlichen Attributs auf der n-Seite umgesetzt werden, das den Schlüssel der 1-er Seite enthält.

Beispiel: die 1:n-Beziehung Kunde-Auftrag kann durch Einführung eines Attributs 'Kunde' in der Entity Auftrag umgesetzt werden. Dort wird dann für jeden Auftrag die Nummer des entsprechenden Kunden stehen, d.h. jeder Auftrag 'weiß', zu welchem Kunden er gehört.

Ähnlich können wir auch mit der Beziehung Artikel-AuftragsPosition und Auftrag-AuftragsPosition verfahren. Wo Schlüssel auf der 1-er Seite fehlen, führen wir sie ein. Der Auftrag bekommt daher auch eine Nummer.

Das gesamte Modell sehen Sie auf der folgenden Seite. Anmerkung: üblicherweise werden Attribute in größeren ER-Diagrammen nicht mit gezeichnet. Die einzelnen Entities werden in getrennten Darstellungen modelliert, damit das Gesamtmodell übersichtlich bleibt.

Komplettes Modell

Literatur

P. Chen (1976): The Entity-Relationship Model: Toward a Unified View of Data. ACM Transactions on Database Systems, Vol. 1, Nr. 1 (reprinted in M. Stonebraker (1998), Readings in Database Systems, Morgan Kaufmann, Los Altos).