(4) Das Entity-Relation-Modell (ERM)
Das Design einer kompletten Datenbank umfasst das Erstellen vieler Relationen. Gute Handhabung und minimale Redundanz ist ein Ziel beim Aufbau großer Datenbanken mit zahlreichen Relationen. Eine von uns erzeugte Datenbank sollte gut anwendbar und bis auf die Beziehungen zwischen Primär- und Fremdschlüsseln redundanzfrei sein. Der Entwurf einer Datenbank ist anspruchsvoll und wird umso aufwendiger, je mehr Relationen wir benötigen.
Das Entity-Relationship-Modell, kurz ERM genannt, unterstützt beim Entwurf der Datenbank. Dieses Modell wurde von P. P. Chen vorgestellt (1976) und hat sich in der Praxis insbesondere bei relationalen Datenbanken vielfach bewährt.
Die Normalisierung der Relationen beseitigt Redundanzen innerhalb einer Relation. Das Entity-Relationship-Modell, konsequent angewendet, verhindert Redundanzen bis auf Fremdschlüssel auch über die Grenzen einzelner Relationen hinweg.
Das Entity-Relationship-Modell (ERM) ist eine zentrale Methode im Datenbankdesign, um die Struktur und Zusammenhänge von Daten aus der realen Welt systematisch in einer Datenbank abzubilden. Dabei steht das Modell auf zwei wesentlichen Säulen: den Entitäten und ihren Beziehungen. Das ERM stellt somit eine Grundlage dar, um komplexe Zusammenhänge der realen Welt in strukturierte Datenbankmodelle zu überführen. Es ermöglicht eine klare Trennung und Zuordnung von Daten, stellt Beziehungen transparent dar und bildet die Basis für eine effiziente und konsistente Implementierung relationaler Datenbanken.
Entitäten
Eine Entität ist ein eindeutig identifizierbares Objekt, etwa eine Person, ein Produkt oder eine Rechnung. Diese Objekte existieren tatsächlich in der realen Welt.
Jede Entität besitzt bestimmte Eigenschaften, also Merkmale, die sie näher beschreiben. Eine Person hat etwa einen Namen, eine Adresse oder eine Personalnummer. Diese Eigenschaften helfen uns, das Objekt differenziert zu erfassen und von anderen Objekten zu unterscheiden.
In der grafischen Darstellung des ER-Modells werden Entitäten als Rechtecke dargestellt, Eigenschaften hingegen als Ellipsen.
Aus praktischen Gründen – etwa bei komplexen Modellen mit vielen Entitäten – werden Eigenschaften häufig direkt innerhalb des Rechtecks der Entität aufgeführt, ähnlich wie bei UML-Diagrammen.
Beziehungen
Kaum ein Objekt in der realen Welt existiert völlig losgelöst von anderen. Personen arbeiten in Abteilungen, Verkäufer verkaufen Produkte, Rechnungen werden für bestimmte Kunden erstellt. Solche Zusammenhänge modellieren wir durch Beziehungen, die im ER-Diagramm als Rauten dargestellt werden, verbunden mit den beteiligten Entitäten.
Kardinalitäten
Eine besondere Rolle spielen dabei die sogenannten Kardinalitäten, mit denen wir angeben, wie viele Objekte einer Entität mit wie vielen Objekten einer anderen in Beziehung stehen. Beispielsweise kann eine Abteilung mehrere Mitarbeiter haben (1:n), während ein Mitarbeiter immer nur einer Abteilung zugeordnet ist.
Subtyp und Supertyp
Innerhalb des Modells begegnen uns auch Subtypen und Supertypen. Diese Konzepte helfen, Entitäten hierarchisch zu strukturieren. Ein Subtyp ist eine spezielle Ausprägung einer allgemeineren Entität. So ist beispielsweise ein Verkäufer ein Subtyp von Mitarbeiter. Er gehört zur Gesamtgruppe, besitzt aber zusätzliche, spezifische Eigenschaften wie Verkaufszahlen oder Provisionsregelungen, die für andere Mitarbeiter nicht relevant sind. Der übergeordnete Typ, der alle Varianten umfasst, wird als Supertyp bezeichnet. Die saubere Trennung von Subtypen und Supertypen macht das Modell flexibel und klar erweiterbar.
Starke und schwache Entitäten
Eine weitere wichtige Unterscheidung ist die zwischen starken und schwachen Entitäten. Starke Entitäten können unabhängig von anderen bestehen, während schwache Entitäten vollständig von einer anderen Entität abhängen. Diese Abhängigkeit zeigt sich auch in der Datenstruktur: Eine schwache Entität kann ohne die Existenz ihrer "starken" Bezugseinheit nicht sinnvoll existieren. So ergibt zum Beispiel eine Fehlerliste in einer Produktionsdatenbank nur dann Sinn, wenn das zugehörige Produkt ebenfalls existiert. Wird das Produkt gelöscht, ist die Fehlerliste überflüssig und muss mit entfernt werden. In ER-Diagrammen werden schwache Entitäten häufig durch Doppellinien kenntlich gemacht.
Vorgehen
-
Der Modellierungsprozess beginnt mit der sorgfältigen Erfassung aller relevanten Entitäten und ihrer Eigenschaften. Dieser Schritt setzt ein tiefes Verständnis des abzubildenden Fachbereichs voraus, denn nur wer die realen Anforderungen kennt, kann die passende Datenstruktur entwerfen. Häufig ist der Prozess iterativ: Erst durch wiederholte Überprüfung und Anpassung entsteht ein vollständiges und konsistentes Modell.
-
Sind alle Entitäten und deren Eigenschaften definiert, folgt die zweite Phase der Modellierung: die Bestimmung der Beziehungen zwischen den Entitäten. Diese Beziehungen stellen oft den komplexesten Teil des Modells dar, da hier auch Abhängigkeiten, Kardinalitäten und Mehrdeutigkeiten korrekt abgebildet werden müssen.
-
Abschließend wird aus dem ER-Modell eine relationale Struktur für die Datenbank abgeleitet. Jede Entität wird dabei zu einer Tabelle (Relation) in der Datenbank. Die einzelnen Eigenschaften der Entitäten entsprechen den Spalten dieser Tabellen. Beziehungen werden über sogenannte Fremdschlüssel dargestellt. Wenn das Modell gut durchdacht ist, erfüllen die daraus erzeugten Tabellen häufig bereits wichtige Anforderungen der sogenannten dritten Normalform, eine Regel im Datenbankdesign, die Redundanzen vermeidet und die Datenkonsistenz erhöht.
Beziehungen
Beziehungen zwischen Entitäten lassen sich grundsätzlich in drei Hauptkategorien unterteilen:
- 1 zu 1 (eins zu eins) Beziehungen
- m zu 1 (viele zu eins) Beziehungen
- m zu n (viele zu viele) Beziehungen
Eine 1 zu 1 Beziehung besteht, wenn jeder Eintrag in Entität A genau mit einem Eintrag in Entität B verknüpft ist und umgekehrt. In der m zu 1 Beziehung ist es möglich, dass mehrere Einträge in Entität A mit einem einzigen Eintrag in Entität B verbunden sind. Im Gegensatz dazu bedeutet m zu n: Jeder Eintrag in Entität A kann mit mehreren Einträgen in Entität B und umgekehrt verbunden sein.
Ein Beispiel für eine m zu 1 Beziehung findet sich in der Beziehung zwischen den Entitäten "Abteilung" und "Person". Jeder Mitarbeiter (Person) gehört genau einer Abteilung, aber jede Abteilung kann mehrere Mitarbeiter haben. In diesem Fall kann es jedoch auch vorkommen, dass eine Abteilung noch keine Mitarbeiter hat, etwa wenn sie neu gegründet wurde.
Unterschiedliche Beziehungstypen und deren Bedeutung
Es gibt jedoch noch feinere Unterschiede, die bei der Modellierung berücksichtigt werden müssen. Zum Beispiel ist es in manchen Fällen notwendig, Nullwerte zuzulassen, was zu einer m zu c (viele zu null oder eins) Beziehung führen kann. Das bedeutet, dass ein Mitarbeiter keiner Abteilung zugeordnet sein könnte, etwa bei Sonderfunktionen oder Umstrukturierungen innerhalb eines Unternehmens.
Beziehungen zwischen Entitäten können auch 0, 1 oder m als mögliche Kardinalitäten beinhalten. Dies führt zu einer erweiterten Kategorisierung der Beziehungen, die insgesamt neun verschiedene Typen umfasst, von denen einige in der Praxis selten oder schwer realisierbar sind, wie die 1 zu 1 Beziehung, die in relationalen Datenbanken wenig Anwendung findet.
Praktische Beispiele für Beziehungstypen
-
1 zu c Beziehungen: Diese Art der Beziehung tritt häufig auf, wenn Entitäten Subtypen haben, wie im Beispiel "Mitarbeiter" und "Verkäufer". Jeder Verkäufer ist ein Mitarbeiter, aber nicht jeder Mitarbeiter ist ein Verkäufer. Hier werden Zusatzinformationen in Subtypen ausgelagert, was es ermöglicht, dass jeder Verkäufer genau einen Eintrag in der Entität "Mitarbeiter" hat, aber umgekehrt nur maximal einen "Verkäufer"-Eintrag existiert.
-
m zu 1 Beziehungen: Ein häufig vorkommender Fall, bei dem mehrere Entitäten der ersten Entität auf eine einzelne Entität der zweiten Entität verweisen. Ein Beispiel ist die Beziehung zwischen "Abteilung" und "Person", bei der jeder Mitarbeiter einer bestimmten Abteilung zugeordnet ist, aber eine Abteilung mehrere Mitarbeiter haben kann.
-
m zu c Beziehungen: Diese treten auf, wenn ein Mitarbeiter entweder keiner oder einer Abteilung zugeordnet ist. In diesem Fall kann eine Abteilung auch vorübergehend keine Mitarbeiter haben.
-
c zu c Beziehungen: Selten, aber existent, zum Beispiel zwischen einem Abteilungsleiter (der maximal eine Abteilung leitet) und der Abteilung selbst. Hierbei geht es um eine sehr spezifische Beziehung, die in bestimmten Unternehmensstrukturen vorkommt.
-
m zu n Beziehungen: Diese treten auf, wenn beide Entitäten viele Beziehungen miteinander haben. Ein Beispiel aus der Praxis ist die Beziehung zwischen "Verkäufer" und "Produkt", bei der ein Verkäufer mehrere Produkte verkaufen kann und ein Produkt von mehreren Verkäufern angeboten werden kann.
Zusammenfassung der fünf wesentlichen Beziehungstypen
- 1 zu c Beziehungen (mit c ∈ 1): Diese Beziehungen entstehen häufig, wenn zusätzliche Eigenschaften von Entitäten in Subtypen ausgelagert werden.
- m zu 1 Beziehungen: Eine der häufigsten Beziehungstypen, bei denen mehrere Einträge einer Entität auf einen einzigen Eintrag einer anderen Entität verweisen.
- m zu c Beziehungen: Eine Beziehung, bei der Entitäten entweder null oder einmalig miteinander verbunden sind.
- c zu c Beziehungen: Spezialfall der m zu c Beziehung, bei dem jede Entität höchstens mit einer Entität der anderen Seite verknüpft ist.
- m zu n Beziehungen: Hier handelt es sich um eine viele-zu-viele Beziehung, bei der mehrere Entitäten auf mehrere Einträge der jeweils anderen Entität verweisen.