Dies ist eine alte Version des Dokuments!
Um überhaupt eine Datenbank anlegen und mit ihr arbeiten zu können, muss man erst wissen, was man will. Sehr hilfreich sind dabei Modelle, die das Problem beschreiben. Vor allem kommt es bei Datenbanken darauf an, Daten nicht redundant1) abzulegen und darauf zu achten, dass diese konsistent2) sind.
Ein solches Modell ist das Entity-Relationship-Modell 3)
Aus dem Namen ist schon zu erkennen, dass die grundlegendsten Modellierungsstrukturen dieses Modells die Entities4) und die Relationships5) zwischen den Entities sind. Zusätzlich "kennt" das Entity-Relationship-Modell noch Attribute und Rollen - dazu aber später mehr6)
Hier gibt's noch Lesestoff: Entity-Relationship-Modell
Gegenstände (bzw. Entities) sind wohlunterscheidbare physisch oder gedanklich existierende Konzepte der zu modellierenden Welt. Man abstrahiert ähnliche Gegenstände zu Gegenstandstypen (Entitytypen oder Entitymengen), die man graphisch als Rechtecke darstellt, wobei der Name des Entitytyps innerhalb des Rechtecks angegeben wird.
Beziehungen werden auf analoge Weise zu Beziehungstypen zwischen den Gegenstandstypen abstrahiert. Die Beziehungstypen werden als Rauten mit entsprechender Beschriftung repräsentiert. Die Rauten werden mit den beteiligten Gegenstandstypen über ungerichtete Kanten verbunden.
Im Folgenden werden wir oft die Unterscheidung zwischen Gegenständen und den Gegenstandstypen, bzw. zwischen Beziehungen und Beziehungstypen, vernachlässigen. Aus dem Kontext dürfte immer leicht ersichtlich sein, was gemeint ist.
Auch der Schulalltag bietet viele Möglichenkeiten das ER-Modell einmal auszuprobieren. Dazu müssen wir uns überlegen, welche Daten wir verarbeiten wollen und in welcher Beziehung diese zueinander stehen.
Einige Entitytypen hierzu könnten sein:
Erst die Beziehung macht die Datenmodellierung interessant, da man hier Daten verarbeitet und die Infrmationen abfragt/ändert/löscht…
In unserem Beispiel sind Beziehungen zwischen den Entitytypen z.B.:
Jetzt haben wir zwar die Entitytypen und Beziehungen genannt - also ich weiß, dass es Schüler gibt und dass sie in eine Klasse gehen - aber ich muss die einzelnen Entities, die selben Typs sind auch unterscheiden können.
Attribute helfen uns hierbei, Entities bzw. Beziehungen zu charakterisieren. Diese stellt man durch Kreise (oder Ovale) dar und verbindet sie mit den entsprechenden Entitytypen bzw. Beziehungen durch eine gerade Linie8).
Wenn man sich eine Beispieltabelle zu dem Schüler-Lehrer-Klasse-Modell anlegt stellt man Unterschiede in den Beziehungen fest:
Es gibt hier einen feinen Unterschied unter den Beziehungstypen hinsichtlich ihrer Funktionalität, die nachfolgend aufgezählt werden sollen:
Falls jedem Entity e1 aus E1 höchstens ein Entity e2 aus E2 zugeordnet ist und umgekehrt jedem Entity e2 aus E2 höchstens ein Entity e1 aus E1 zugeordnet ist, spricht man von einer 1:1-Beziehung.
Man beachte dass es auch Entities aus E1 (bzw. E2) geben kann, denen kein "Partner" aus E2 (bzw. E1) zugeordnet ist.
Beispiele:
Falls jedem Entity e1 aus E1 beliebieg viele (also mehrere oder auch gar keine) Entities aus E2 zugeordnet sein können, aber jedes Entity e2 aus E2 mit maximal einem Entity aus E1 in Beziehung stehen kann, spricht man von einer 1:N-Beziehung.
Beispiele: