Datenbank Grundlagen
Navigation
Allgemeines
Normalformen
Joins
Relationenalgebra
 
 
abstandhalter

Entity-Relationship-Modell



Das Entity-Relationship-Modell (kurz auch nur ER-Modell oder ERM genannt) dient primär der Beschreibung von Daten in einem Anwendungsbereich. Man beschreibt also mit Hilfe eines ER-Modells einen Ausschnitt der realen Welt. Da das Entity-Relationship-Modell bestimmten Regeln unterliegt und leicht verständlich ist, dient es daher als gute Kommunikationsbasis zwischen Anwendern und Entwicklern bzw. anderen beteiligten Parteien. Dadurch hast sich das ER-Modell zum De-facto-Standard für die Datenmodellierung etabliert.

Das erste Mal vorgestellt wurde das Entity-Relationship-Modell im Jahr 1976 von Peter Chen. Er gilt damit als "Vater" des ERM. Tatsächlich existieren aber heute verschiedenste Versionen und Erweiterungen die auch jeweils im Einsatz sind. So findet man beispielsweise bei der Notation der ER-Diagrammen die unterschiedlichsten Notationen vor, darunter die Chen-Notation aber auch die IDEF1X-Notation oder die Min-Max-Notation.

Grundmodell des Entity-Relationship-Modell

Um das Entity-Relationship-Modell verstehen und auch anwenden zu können, muss man sich erst einmal mit den grundlegenden Komponenten des Modells auseinandersetzen. Nachfolgend deshalb erst einmal einige Erklärungen zu den wichtigsten Komponenten:

Entity/Entität

Unter einer Entity/Entität versteht man ein Objekt der realen Welt, das von anderen Objekten unterscheidbar ist.
  • Beispiel: der Lehrer Horst Müller, der Schüler Max Mustermann, das Buch Faust ...

Entity-Set

Das Entity-Set ist eine Menge an Entitys, also eine Menge an Objekte, zum Zeitpunkt t. Dabei umfasst das Entity-Set gleichartige Objekte, die also durch gewisse Eigenschaften gleichartig charakterisiert sind.
  • Beispiel: Lehrer = {Horst Müller, Petra Schul, Franz Meyer} -> Achtung: Das Entity-Set ist dabei nicht Lehrer, sondern die Menge aller Lehrer! Dabei müssen Entity-Sets nicht disjunkt sein. So kann beispielsweise die Entity "Max Schneider" sowohl Angestellter als auch Kunde sein.

Entity-Typ

Unter einem Entity-Typ versteht man die Typisierung gleichartiger Entitäten.
  • Beispiel: Lehrer, Schüler, Buch ... wobei ein Lehrer z.B. dann die charakteristische Eigenschaften Name, Gehalt ... hat.

Komplettes Beispiel

  • Entity-Typ: Lehrer: <Name, Klasse, Gehalt>
  • Entity-Set: Lehrer= {Horst Müller, Petra Schulz, Franz Meyer}
  • Entities: <Horst Müller, 10a, 4300>, <Petra Schulz, 6b, 4000>,

Attribute

Unter Attributen versteht man bestimmte Eigenschaften die eine Entity besitzt. Dabei entsprechen die Eigenschaften primitiven Datentypen, so ist beispielsweise das Attribut "Name" eine Zeichenkette. Ein charakteristisches/identifizierendes Attribut ist ein spezielles Attribut, das eine Unterscheidung von Entities eines Entity-Typs erlaubt.

Domain

Jedes Attribut hat einen gewisse Wertebereich, die sogenannte Domain. Dabei müssen Domains ebenfalls wie Entity-Sets nicht disjunkt sein, sondern können auch gleich sein. So ist beispielsweise die Domain des Attributs (deutsche) Postleitzahl = dom(PLZ) = Menge von 5-stelligen ganzen Zahlen.

Schlüssel

Ein Schlüssel ist ein identifizierbares Attribut, bzw. eine identifizierbare Attributkombination die zudem noch minimal ist. Generell kann es mehrere Schlüssel/Schlüsselkombinationen geben. Allerdings legt man sich auf einen einzigen Schlüssel fest, den man Primärschlüssel nennt. Üblicherweise ist der Primärschlüssel ein sehr einfaches, oft auch "künstliches" Attribut, wie beispielsweise die Mitarbeiter-Nr. oder die Abteilungsnr, die falls nicht existiert jeweils hinzugefügt wird.

Weak Entity-Typ

Der Weak Entity-Typ ist ein spezieller Entity-Typ, der keine (nicht genügend) charakteristische/identifizierende Attribute besitzt und nur mit einem anderen Entity-Typ identifizierbar ist. Ein Weak Entity-Typ hat also keinen selbständigen Schlüssel.

Beziehungen

Beziehungen sind ein weiterer elementarer Bestandteil des Entity-Relationship-Modells. Generell können nämlich zwei Entities miteinander in Beziehung (engl. realationship) stehen. Ein Schüler gehört beispielsweise zu einer Klasse, ebenfalls wie der Klassenlehrer. Und auch der Klassenlehrer und die Schüler stehen in Beziehung zu einander, denn ein Klassenlehrer hat mehrere Schüler, jeder Schüler hat aber nur ein Klassenlehrer.

Wie auch bei den Entities gibt es bei den Beziehungen analog Beziehungssets und Beziehungstypen.

Kardinalität

Bei Beziehungen gibt es verschiedene Kombinationen zwischen den beteiligten Entitäten. dabei beschränkt der Beziehungstyp diese Anzahl. Im oberen Beispiel mit dem Klassenlehrer und den Schülern ergibt sich mit dem Beziehungstyp "unterrichtet/wird unterrichtet von" beispielsweise eine 1:n Beziehung. Konkret bedeutet das:
  1. Ein Klassenlehrer unterrichtet mehrere Schüler (n)
  2. Ein Schüler wird von einem Klassenlehrer unterrichtet (1)
Insgesamt gibt es drei solcher Kardinalitäten. Neben der 1:n-Beziehung gibt es noch die 1:1-Beziehung, sowie die n:m-Beziehung. Man nennt diese Notation auch (1:n)-Notation. Darüber hinaus gibt es noch die (min,max)-Notation.

Bei der (min,max)-Notation gibt man in den Klammern jeweils einen minimalen Wert und einen maximalen Wert, getrennt mit einem Komma. So bedeutet beispielsweise in der min-Max-Notation:(1,1), dass eine Entität zu jedem Zeitpunkt genau eine Beziehung hat. (0,*) hingegen bedeutet, dass eine Entität zu jedem Zeitpunkt beliebig viele Beziehungen haben kann, aber ebenso auch nicht in einer Beziehung stehen muss. Allgemein steht der Stern (*) für beliebig viel. Übliche min-max-Kardinalitäten sind: (0,1), (0,*), (1,1), (1,*). Natürlich kann es aber auch vorkommen, dass eine bestimmte Anzahl, z.B. 5, für den max-Wert angenommen werden muss.

Eine 1:n-Beziehung in der (1:n)-Notation würde in der (min,max)-Notation auf der einen Seite (0,n) sein und auf der anderen (0,1).

Grafische Darstellung

Die Darstellung des Entity-Relationship-Modells erfolg meist grafisch. Diese grafische Darstellung wird auch Entity-Relationship-Diagramm (ERD) oder ER-Diagramm genannt. Wie schon am Anfang des Textes erwähnt, gibt es bei den Entity-Relationship-Diagrammen verschiedene Notationsformen. Hier verwenden wir die Chen-Notation. Diese besteht aus den folgenden Elementen:
Elemente für grafische Darstellung des Entity-Relationship-Modells


Daraus lässt sich leicht nachfolgendes Beispiel konstruieren. Man sieht die Beziehung zwischen Angestellter und Abteilung. Das unterstrichene Attribut ist jeweils der Primärschlüssel. Wie man darüber hinaus auch sieht werden Beziehungen/Beziehungssets oder Entities/Entity-Sets nicht grafisch dargestellt.
Beispiel eines ER Diagramms

Chen-Notation

Die Chen-Notation wurde nach ihrem Erfinder dem Informatiker Peter Chen benannt, der 1976 die Entity-Relationship-Modellierung (ER-Modell) für die Datenanalyse entwickelte. Folgende Daten werden bei der Chen-Notation dargestellt:

  • EntityTyp
  • (abgeleitetes) Attribut
  • Beziehung
Die Darstellung sieht dabei folgendermaßen aus:
Übersicht Chen-Notation ER-Modell
An die Beziehung wird anschließend die Kardinalität angefügt. Die Kardinalitäten geben bei einer Datenbank an, an wievielen Beziehungen eine Entität teilnehmen kann. Ein Beispiel Entity-Relationship-Modell könnte dann so aussehen: Beispiel Entity-Relationship-Modell
Für das „Lesen“ des ER-Modells beginnt man immer mit „Ein(e)“ + EntityTyp und ergänzt das dann mit der Kardinalität und dem zweiten EntityTyp:
  • Eine Klasse wird besucht von mehreren (n) Schüler.
  • Ein Schüler besucht eine (1) Klasse.
Die Attribute sind in diesem Fall für Klasse -> KlassenID (Primärschlüssel) und Bezeichnung, sowie für Schüler -> SchülerID (Primärschlüssel), Name und Geburtsdatum.
abstandhalter