Skip to content

ER-Diagramme

Datenbanken

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.

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 ein Film oder eine Schauspielerin)

Entität, dargestellt durch ein Rechteck

Beispiel

Ein Schauspieler/eine Schauspielerin

Attribut

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 «picture» («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

Beispiel

Wir können jetzt der Entität «actor» Attribute hinzufügen:

Ein Schauspieler/eine Schauspielerin mit Attributen

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 einen Diamant

Beispiel

Beziehung zwischen actor und movie

Beispiel

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

Aufgabe: Pizzeria

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
Lösung: Pizzeria

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:

Relation «Pizza» inklusive Verknüpfung «verantwortlich» durch Fremdschlüssel pizzaiolo_id
idnamepreispizzaiolo_id
1Margarita152
2Prosciutto e Funghi172
3Hawaii181

Tabelle der Relation «Zutat»
idnamevegetarisch
1Tomatenja
2Pilzeja
3Schinkennein
4Ananasja

Tabelle der Relation «Pizzaiolo»
idnamealter
1Mario34
2Luigi31

Verknüpfung «besteht aus» durch Fremdschlüssel der beiden beteiligten Tabellen
pizza_idzutat_id
11
21
22
23
31
33
34

Zusatzaufgabe: Schulverwaltung

Ein Schule beauftragt Sie eine Datenbank zu entwerfen:

Wir müssen Schüler:innen und Lehrkräfte erfassen können. Für alle erfassten Personen brauchen wir Namen und Adresse. Schüler:innen können Kurse besuchen, Lehrkräfte müssen Kurse unterrichten können. Kurse haben einen Titel und werden in einem bestimmten Quartal angeboten. Das Quartal hat einen Namen, ein Start- und ein Enddatum. Schüler:innen erhalten für jeden besuchten Kurs eine Note.

  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
Lösung: Schulverwaltung
Variante 1
Person
idNameAdresseTyp
1StefanStrandweg 4S
2StefanieStrandweg 5S
3Herr MüllerBergstrasse 2aL
Kurs
idTitelquartal_idperson_id
1Datenbanken13
Quartal
idNameStartdatumEnddatum
1SommerJuniSeptember
besucht
person_idkurs_idNote
115.5
215

Variante 2
Lehrkraft
idNameAdresse
3Herr MüllerBergstrasse 2a
Schüler:in
idNameAdresse
1StefanStrandweg 4
2StefanieStrandweg 5
Kurs
idTitelquartal_idlehrkraft_id
1Datenbanken13
Quartal
idNameStartdatumEnddatum
1SommerJuniSeptember
besucht
schüler:in_idkurs_idNote
115.5
215

Gymnasium Kirchenfeld, fts & lem