Titelbild Datenbanken 5: ER-Modellierung

Datenbanken IV – Entity-Relationship-Modell (ER-Modell), Datenbankdarstellungen I

Das Entity-Relationship-Modell ist eine Möglichkeit die logischen Zusammenhänge einer Datenbank darzustellen.

In der Regel erstellt man vor der Implementierung ein Entity-Relationship-Modell, bevor die eigentliche Programmierung beginnt.

Um besonders genau zu sein, sollte man zwischen Entitätstyp, Entitätsinstanzen und Entitäten unterscheiden. In der Regel verwendet man aber für alle 3 Begriffe das Wort Entität synonym und die genaue Bedeutung ist dann aus dem Zusammenhang deutlich.

Unterscheidung der 3 Begriffe

Entitätsinstanz: Ein spezielles Datum eines Entitätstyps. Eine Zeile in der Tabellendarstellung. Ein Tupel aller Attribute des Entitätstyps.

Entitätstyp: Eine Tabelle bzw. die Sammlung aller Tupel des Entitätstpys (Zeilen in der Tabellendarstellung).  Synonym wird häufig Entität verwendet.

Entität: bezeichnet meistens einen Entitätstyp, manchmal ist auch nur eine Entitätsinstanz gemeint.

Definitionen und Darstellung

Das ER Modell wird ausgehenden von einzelnen Entitäten gezeichnet. Eine Entität ist dabei häufig ein Objekt der realen Welt, z.B. Buch. Allerdings geht es nicht um ein einzelnes Objekt der realen Welt, sondern um eine Struktur, in der alle Elemente der „Objektgruppe“ gespeichert werden können. In diesem Beispiel also alle Bücher.

Die Eigenschaften (Merkmale) der Entitäten bezeichnet man als Attribute, z.B. ISBN, Titel, Autor.

Eine Entitätsinstanz ist im Gegensatz zu Entität selbst, ein Tupel mit Werten für jedes Attribut der Entität (eine Zeile in der Tabellendarstellung).

Grafische Darstellung

Die Grafik zeigt alle gebräuchlichen Elemente eines ER. Anschließend findet ihr eine Definition der einzelnen Elemente.

Schwache Entität: Entität ohne Schlüsselattribut z.B. Buch

Attribut: Eigenschaft einer Entität z.B. ISBN, Titel, Autor

zusammengesetztes Attribut: Attribut, welches in mehrere atomare (unteilbare) Attribute zerlegt werden kann, z.B. Adresse (kann zerlegt werden in Straße, Hausnummer, PLZ, Ort)

abgeleitetes Attribut: Attribut, welches von anderen Attributen abhängig ist / abgeleitet werden kann / berechenbar ist, aus anderen Attributen)

Mehrfachattribut: Attribut, welches mehrere Werte enthalten kann, z.B. Rufnummer (kann Festnetznummer und Handynummer speichern)

Schlüsselattribut: Attribut, mit welchem alle anderen Attribute der Entität bestimmt werden können. In der Regel ist dies eine Zahl. Kenne ich das Schlüsselattribut, kann ich alle anderen Attribute in der selben Zeile daraus bestimmen. Ein typisches Beispiel ist eine Kundennummer.

Beziehung: Angabe einer logischen Verknüpfung zwischen 2 Entitäten z.B. leiht_aus als Beziehung zwischen Buch und Kunde. Eine Beziehung kann auch Attribute haben.

totale Partizipation: Wenn eine Beziehung Entität A und Entität B in Beziehung setzt, dann muss ein Eintrag in Entität A existieren, damit ein Eintrag in Entität B existiert und umgekehrt. Beide Entitäten müssen also an der Relation teilnehmen. Eine Entitätsinstanz aus A kann also nicht ohne eine in-Beziehung-stehende Entitätsinstanz aus B existieren und umgekehrt.

partielle Partizipation: Wenn eine Beziehung Entität A mit Entität B in Beziehung setzt, dann muss kein Eintrag in Entität A existieren, damit ein Eintrag in  Entität B existieren kann und umgekehrt. Die beiden Entitäten müssen also nicht an der Relation teilnehmen (enthalten sein).

einseitige totale Partizipation: Die totale Partizipation gibt es auch einseitig.. Dann zeichnet man auf der einen Seite der Beziehung nur eine einfache Linie und auf der anderen Seite eine doppelte Linie. Das bedeutet dann, dass jede Entitätsinstanz auf der Seite mit der doppelten Linie einen Eintrag in der Relation hat, aber nicht jede Entitätsinstanz auf der anderen Seite in der Relation auftaucht.

Erweiterung des ER-Domains um Kardinalitäten

Für die noch genauere Darstellung der Beziehungen im ER-Modell verwendet man Kardinalitäten (auch Grad der Beziehungen genannt). Diese geben an wie viele Entitätsinstanzen mit wie vielen Entitätsinstanzen einer anderen Entitätsinstanz in Beziehung stehen.

In der grafischen Darstellung werden die Kardinalitäten jeweils an die verbindenden Linien der Beziehung geschrieben.

Folgende Kardinalitäten kennt die einfache ER-Notation bzw. Chen-Notation bzw. umgekehrte Chen-Notation

N bzw. M sind keine fest gewählten Zahlen, sondern geben lediglich an, dass 0 bis unendlich Entitätsinstanzen beteiligt sind.

Kardinalitäten Bedeutung
1:1 Eine oder keine Entitätsinstanz der linken Seite steht mit einer oder keiner  Entitätsinstanz der rechten Seite  in Beziehung
1:N oder N:1 Eine oder keine Entitätsinstanz der linken Seite steht mit 0 oder unendlich Entitätsinstanzen der anderen Seite in Beziehung. Und umgekehrt.
M:N 0 bis unendlich Entitätsinstanzen stehen mit 0 bis unendlich Entitätsinstanzen in Beziehung.

Min-Max-Erweiterung

Häufig wird auch die Min-Max-Notation bzw. umgekehrte Min-Max-Notation verwendet, welche noch genauer ist als die einfache Darstellung der Kardinalitäten.

Man verwendet stets nur eine Notation in einem ER-Modell. Eine Mischung von einfacher Notation und Min-Max-Notation ist also nicht möglich.

Wie die Namensgebung schon vermuten lässt, wird in der Min-Max-Notation die minimale Anzahl beteiligter Entitätsinstanzen sowie eine maximale Anzahl beteiligter Entitätsinstanzen an einer Beziehung festgelegt. Dabei verwendet man die folgende Notation:

Nur N steht in dieser Notation für unendlich viele beteiligte Instanzen. Statt N kann man aber eben auch konkrete Zahlen angeben.

(1,N) – 1 bis maximal N Entitätsinstanzen beteiligt.

(0,N) – 0 bis maximal N Entitätsinstanzen beteiligt.

(o,2) – 0 bis 2 Entitätsinstanzen beteiligt.

(1,1) – genau eine Entitätsinstanz beteiligt.

Auf jede Seite der Beziehung schreibt man ein solches Tupel. Man kann also bspw. folgende Beziehungen erhalten (1,1):(1,N) oder (0,2):(1,N)

Auf welcher Seite einer Beziehung steht welche Kardinalität?

Nun stellt sich uns die Frage, auf welcher Seite welche Kardinalitäten stehen und welche Bedeutung das dann in den verschiedenen Notationen hat.

Min-Max-Notation/umgekehrte Min-Max-Notation

Am intuitivsten ist die umgekehrte Min-Max-Notation. Dabei stehen die Kardinalitäten genau an der Entität, die die Kardinalität beschreibt.

umgekehrte_Min-Max-Notation

Bedeutung: 0 oder 1 Kunde leiht 1 bis N Bücher aus, bzw. 1 bis N Bücher werden von 0 oder 1 Kunden ausgeliehen.

Bei der normalen Min-Max-Notation ist das ganze genau umgekehrt.

Min-Max-Notation

Bedeutung: 0 oder 1 Kunde leiht 1 bis N Bücher aus, bzw. 1 bis N Bücher werden von 0 oder 1 Kunden ausgeliehen.

Chen-Notation / umgekehrte Chen-Notation / einfache ER-Notation

Auch hier sollte die umgekehrte Notation die intuitiv verständliche sein:

umgekehrte_Chen-Notation

Bedeutung: 0 oder 1 Kunde leiht 0 bis N Bücher aus, bzw. 1 bis N Bücher werden von 0 oder 1 Kunden ausgeliehen.

In der normalen Chen-Notations sieht das ganze dann so aus:

Chen-Notation

Bedeutung: 0 oder 1 Kunde leiht 0 bis N Bücher aus, bzw. 1 bis N Bücher werden von 0 oder 1 Kunden ausgeliehen.

Rekursive Relationen

Im ER-Modell kann es auch rekursive Beziehungen geben, dass heißt Entitätsinstanzen einer Entität stehen in Relation zu Entitätsinstanzen der selben Entität. Es ist also nicht stets nötig, dass die Beziehung zwei unterschiedliche Entitäten verbindet.

Diese Konstruktion macht z.B. bei Eltern-Kinder-Beziehungen Sinn. In der Regel schreibt man an die Relation auch noch welche Bedeutung sie hat.

rekursive Relationen

Programm zur Erstellung von ER-Modellen

Ein geeignetes Programm zur Erstellung von ER-Modellen ist Dia. Es ist für Windows, Linux und Mac erhältlich und lässt sich nach einer kurzen Einarbeitungszeit schnell bedienen.

Im nächsten Artikel der Serie gibt es eine Beschreibung einer Datenbank, welche in ein ER Modell umgewandelt werden soll. Dann könnt ihr eure Kenntnisse einmal an einem praktischen Beispiel sehen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert