Entity-Relationship-Diagramme

Gut modelliert ist halb gewonnen

Entitätstypen

Vor der Erstellung einer Datenbank steht erst einmal die Konzeption einer solchen, in der man sich einen Überblick über die gegebene Situation machen möchte. Dazu nutzt man sogenannte Entity-Relationship-Diagramme, die wir uns nun an einem konkreten Beispiel anschauen.

Nehmen wir an, wir wollen eine Datenbank entwerfen, mittels der wir die Klassenlisten der Sekundarstufe I verwalten können. Als erstes kommen wir hier auf die Idee, dass wir natürlich die Daten der Schüler festhalten müssen. Zum Beispiel könnten uns dabei jeweils der Name eines Schülers und sein Geburtstag interessieren. Dies halten wir so fest:Rechteck Schüler und zwei Ellipsen mit Attributen

Man sagt, dass Schüler ein Entitätstyp ist. Dieser Entitätstyp besitzt die beiden Attribute Name und Geburtstag. Im zugehörigen Diagramm stellt man den Namen eines Entitätstypen in einem Rechteck dar und verbindet mit diesem Ovale, in denen man die verschiedenen Attribute angibt. Ein einzelner konkreter Schüler ist dann eine Entität vom Typ Schüler.

Im nächsten Schritt kommen wir vielleicht auf die Idee, dass wir auch einige Angaben über die Klassen machen wollen. Zum Beispiel diese:Rechteck Klasse und Attribute in Ovalen

Hier haben wir also den Entitätstyp Klasse mit den beiden Attributen Bezeichnung (z.B. 5b, 7a etc.) und Raum.

Beziehungen

Diese beiden Entitätstypen stehen miteinander in einer Beziehung, da jeder Schüler in einer bestimmen Klasse ist. Dies halten wir so fest:Zwei Rechtecke verbunden

Identifikationsschlüssel

Unter den Attributen eines Entitätstypen zeichnen sich einige dadurch aus, dass man mit diesen jede Entität eindeutig identifizieren kann. Bei den Schülern könnte man zum Beispiel annehmen, dass jeder Schüler anhand seines Namens eindeutig identifiziert werden kann. Der Geburtstag scheint dafür eher ungeeignet, da es häufig vorkommt, dass mehrere Schüler am gleichen Tag Geburtstag haben. Entscheiden wir uns also dafür, die Schüler anhand ihrer Namen zu identifizieren, so wird das Attribut Name zum Identifikationsschlüssel des Entitätstypen Schüler. Dies macht man im Diagramm deutlich, indem man das Attribut unterstreicht:Attribute wurden unterstrichen

Bei dem Entitätstyp Klasse wurde das Attribut Bezeichnung als Identifikationsschlüssel gewählt.

Es kann vorkommen, dass ein einzelnes Attribut nicht genügt, um einen Identifikationsschlüssel zu bilden. In solchen Fällen kann man mehrere Attribute unterstreichen. Zum Beispiel könnte man sich vorstellen, dass ein Basketballverein, mit mehreren Mannschaften die Spieler seiner Teams wie folgt modelliert:ET Spieler mit Attributen Mannschaft, Trikotnummer, Name. Erste zwei sind Schlüssel.

In diesem Fall besteht der Identifikationsschlüssel aus den beiden Schlüsselattributen Mannschaft und Trikotnummer.
Alternativ hätte man auch hier vielleicht das Attribut Name als Identifikationsschlüssel wählen können – vorausgesetzt, man weiß, dass wirklich alle Spieler unterschiedliche Namen haben. Alle Attributkombinationen, die als Identifikationsschlüssel potentiell in Frage kommen, nennt man Schlüsselkandidaten. Welcher dann tatsächlich zum Identifikationsschlüssel wird, hängt vom Modellierer der Datenbank ab.

Über das geschickte oder auch ungeschickte Wählen eines Identifikationsschlüssels werden wir uns noch weitere Gedanken machen. In der Tat ist es so, dass obige Wahlen nicht alle ganz ideal sind.

Beziehungen mit Attributen

Nicht nur Entitätstypen können Attribute besitzen, sondern auch ihre Beziehungen:Beziehung ist in mit Attribut seit.

Das Attribut seit soll angeben, seit wann ein Schüler Mitglied einer Klasse ist. So eine Angabe kann interessant sein, falls Schüler ihre Klasse wechseln oder sitzen bleiben.

Dieses Attribut passt weder alleine zum Schüler, noch alleine zur Klasse. Nur in Kombination von einem Schüler und einer Klasse ergibt die Angabe eines Datums Sinn – vor allem, wenn man auch alle Klassen in der Datenbank angibt, in denen er früher schon Schüler war.

Beziehungstypen

Sehen wir uns hier eine erweiterte Modellierung der Sekundarstufe I an:

Modellierung Sek. I

In diesem Diagramm wurden – was für uns noch neu ist – auch die sogenannten Kardinalitäten oder auch Vielfachheiten der Beziehungen notiert. Betrachten wir die Bedeutungen einmal genauer:

  • Die Beziehung hat zwischen Klasse und Raum ist eine 1:1-Beziehung. Das bedeutet, dass eine Klasse höchstens einen Klassenraum besitzt und umgekehrt jeder Raum zu höchstens einer Klasse gehört.
  • Die Beziehung leitet zwischen Lehrer und Klasse ist ebenfalls eine 1:1-Beziehung. Das bedeutet, dass ein Lehrer höchstens eine Klasse leitet und umgekehrt jede Klasse zu höchstens von einem Lehrer geleitet wird.
  • Die Beziehung ist in zwischen Schüler und Klasse ist eine n:1-Beziehung. Das bedeutet, dass ein Schüler in höchstens einer Klasse ist aber umgekehrt zu einer Klasse mehrere Schüler gehören können.
  • Die Beziehung unterrichtet zwischen Lehrer und Klasse ist eine n:m-Beziehung. Das bedeutet, dass ein Lehrer mehrere Klassen unterrichten kann und umgekehrt eine Klasse von mehreren Lehrern unterrichtet werden kann.

Die Vielfachheiten geben also an, wie viele Entitäten eines Entitätstypen auf den Seiten der Beziehungen stehen dürfen.

Beachte, dass dies immer nur Maximalangaben sind. Ein Lehrer kann z.B. maximal eine Klasse leiten. Es kann aber auch vorkommen, dass er keine Klasse leitet.
In der Literatur findet man noch genauere Unterscheidungsmöglichkeiten, um z.B. auch eine Untergrenze festzulegen. Uns soll diese (vielleicht etwas grobe) Beschreibung der Beziehungen aber an dieser Stelle genügen.