Entity-Relationship-Model

Das Entity-Relationship-Modell, kurz ER-Modell oder ERM (deutsch Gegenstands-Beziehungs-Modell) dient dazu, im Rahmen der Datenmodellierung einen Ausschnitt der realen Welt zu beschreiben. Das ER-Modell besteht aus einer Grafik (siehe unten) und einer Beschreibung der darin verwendeten Elemente, wobei Dateninhalte (d.h. die Bedeutung bzw. Semantik der Daten) und Datenstrukturen dargestellt werden.

Der Einsatz von ER-Modellen ist der De-facto-Standard für die Datenmodellierung, auch wenn es unterschiedliche grafische Darstellungsformen gibt. Das ER-Modell wurde 1976 von Peter Chen in seiner «The Entity-Relationship Model» vorgestellt. Aus diesem Grund werden wir uns auch vor allem mit der sogenannten Chen-Notation befassen.

ER-Diagramme in Chen-Notation

Die Chen-Notation besteht aus den unten abgebildeten drei Elementen (Knoten), die durch Linien (Kanten) miteinander verbunden werden. Sie bilden einen Graphen.

Entität

Die Entität (entity) stellt ein individuell identifizierbares Objekt der Wirklichkeit dar. (Zum Beispiel der Film «moonlight» oder die Schauspielerin «Rachel McAdams»)

Entität, dargestellt durch ein Rechteck

Attribute

Eine Entität kann mehrere Attribute haben. Unterattribute sind auch zugelassen (z.B. könnte das Attribut «Name» in die Unterattribute «Vorname» und «Nachname» aufgeteilt werden). Die Entität «actor» hat die Attribute «name» und «sex» («id» ist ein Schlüssel und kein eigentliches Attribut weil der Wert nichts mit dem realen Objekt zu tun hat und nur für die Datenbank verwendet wird.)

Attribut, dargestellt durch ein Oval

Beziehung

Eine Beziehung (relationship) verbindet zwei Entitäten. Optional kann der Grad der Beziehung (die Kardinalität) bei den Verbindungslinien notiert werden. So werden die Verknüpfungen der Entität «movies» mit den Entitäten «ratings», «quotes» und «actors» jeweils durch eine Beziehung dargestellt.

Beziehung, dargestellt durch ein Diamant

Die Beziehung zwischen den Entitäten „Sortiment“ und „Lagerbestand“ wird durch die Beziehung „ist vorhanden“ ausgedrückt. Man könnte sagen „ein Artikel des Sortimentes ist im Lager vorhanden“. Die Kardinalität wird durch die beiden Einsen links und rechts von der Beziehung ausgedrückt. Bei komplexen Strukturen (mehr Entitäten und mehrere Beziehungen) werden oft die Attribute und ev. auch die Kardinalitäten ausgeblendet.

Das komplette ER-Diagramm des vorherigen Beispiels

Ein Pizza-Restaurant beauftragt Sie eine Datenbank zu entwerfen:

Jede Pizza hat einen Namen, einen Preis, verschiedene Zutaten und genau einen Pizzaiolo welcher für diese Pizza zuständig ist. Zutaten haben einen Namen und sind entweder vegetarisch oder nicht. Die Pizzeria beschäftigt mehrere Pizzaioli, welche für eine oder mehrere Pizzen zuständig sind. Die Pizzaioli haben einen Namen und ein Alter.

  1. Bestimmen und markieren Sie zuerst im Text die Entitäten, Attribute und Relationen
  2. Planen Sie dann die DB indem sie ein ER-Diagramm zeichnen
  3. Setzen Sie das ER-Diagramm um, indem sie in Excel die entsprechenden Tabellen erstellen
  4. Markieren Sie Primärschlüssel durch Unterstreichen, Fremdschlüssel durch gepunktetes Unterstreichen
  5. Füllen Sie einige Fantasie-Daten in die Tabellen ein

Aus dem Text erhält man Entitäten (fett), Attribute (markiert) und Relationen (kursiv):

Jede Pizza hat einen Namen, einen Preis, verschiedene Zutaten und genau ein Pizzaiolo welcher für diese Pizza zuständig ist. Zutaten haben einen Namen und sind entweder vegetarisch oder nicht. Die Pizzeria beschäftigt mehrere Pizzaioli, welche für eine oder mehrere Pizzen zuständig sind. Die Pizzaioli haben einen Namen und ein Alter.

Dies ergibt das folgende ER-Diagramm:

ER-Diagramm

Daraus lassen sich die folgenden Tabellen ableiten:

id name preis pizzaiolo_id
1 Margarita 15 2
2 Prosciutto e Funghi 17 2
3 Hawaii 18 1
Relation «Pizza» inklusive Verknüpfung «verantwortlich» durch Fremdschlüssel `pizzaiolo_id`
id name vegetarisch
1 Tomaten ja
2 Pilze ja
3 Schinken nein
4 Ananas ja
Tabelle der Relation «Zutat»
id name alter
1 Mario 34
2 Luigi 31
Tabelle der Relation «Pizzaiolo»
pizza_id zutat_id
1 1
2 1
2 2
2 3
3 1
3 3
3 4
Verknüpfung «besteht aus» durch Fremdschlüssel der beiden beteiligten Tabellen