Entity-Relationship-Modellierung
Wie entwerfen wir Datenbanken mit dem Entity-Relationship-Modell?
Das Entity-Relationship-Modell (ERM) als Ausgangspunkt
Bevor eine relationale Datenbank technisch umgesetzt wird, muss klar sein, welche Daten gespeichert und wie sie miteinander verknüpft sind. Das Entity-Relationship-Modell (ERM) bietet dafür ein konzeptionelles Werkzeug: Es hilft, die Struktur und Beziehungen der Daten unabhängig von konkreten Tabellen oder Datenbanktechnik zu entwerfen – wie ein:e Architekt:in den Grundriss eines Hauses plant, bevor gebaut wird. Das Ergebnis ist das Entity-Relationship-Diagramm (ERD) – eine Grafik, die zeigt, welche Entitäten, Attribute und Beziehungen in der Datenbank wichtig sind und wie diese miteinander zusammenhängen. Erst aus diesem grafischen Datenmodell entsteht später das relationale Datenbankschema (Tabellen, Schlüssel usw.).
Entitäten: Die Grundbausteine unserer Datenwelt
Entitäten sind die grundlegenden Objekte oder Konzepte aus der realen Welt (oder einem spezifischen Anwendungsbereich), über die du Informationen speichern möchtest. Stell dir vor, du entwirfst eine Datenbank für einen Online-Shop. Wichtige Entitäten wären hier beispielsweise Person, Produkt und Bestellung. Jede Entität repräsentiert eine Klasse von gleichartigen Objekten, nicht ein einzelnes, spezifisches Objekt. Eine konkrete Person wie "Max Mustermann" wäre eine Instanz der Entität "Person". Entitäten im ERM entsprechen konzeptionell den Tabellen, die du später in deiner relationalen Datenbank anlegen wirst. Im ER-Diagramm werden Entitäten üblicherweise als Rechtecke dargestellt.
Attribute: Was unsere Entitäten beschreibt
Attribute beschreiben die Eigenschaften oder Merkmale einer Entität. Sie sind die konkreten Informationen, die du zu jeder Instanz einer Entität speichern möchtest. Für die Entität Person könnten relevante Attribute beispielsweise PersonNr (als eindeutige Identifikation), Name, Vorname, Strasse, PLZ, Ort und Email sein. Für die Entität Produkt wären Attribute wie ProduktID, Bezeichnung, Preis und Lagerbestand denkbar. Attribute entsprechen den Spalten oder Feldern innerhalb einer Tabelle in der relationalen Datenbank. Im ERD werden Attribute oft als Ovale dargestellt, die mit ihrer zugehörigen Entität verbunden sind. Es gibt verschiedene Arten von Attributen:
- Einfache Attribute: Sie sind atomar und nicht weiter sinnvoll teilbar (z.B.
EmailAdresse
). - Zusammengesetzte Attribute: Sie bestehen aus mehreren Teilattributen (z.B.
Name
könnte ausVorname
undNachname
bestehen;Anschrift
ausStrasse
,Hausnummer
,PLZ
,Ort
). - Mehrwertige Attribute: Eine Entität kann für dieses Attribut mehrere Werte besitzen (z.B. eine Person könnte mehrere
Telefonnummern
haben). Im ERD werden sie oft durch eine doppelte Ellipse dargestellt. - Abgeleitete Attribute: Ihr Wert kann aus anderen Attributen berechnet oder abgeleitet werden (z.B. das
Alter
einer Person aus demGeburtsdatum
). Im ERD werden sie oft durch eine gestrichelte Ellipse dargestellt. - Schlüsselattribute (Primärschlüssel): Ein oder mehrere Attribute, die eine Entitätsinstanz eindeutig identifizieren (z.B.
PersonNr
). Im ERD werden Schlüsselattribute meist unterstrichen dargestellt.
Beziehungen: Wie Entitäten miteinander verbunden sind
Beziehungen (Relationships) beschreiben die logischen Verknüpfungen oder Assoziationen, die zwischen zwei oder mehr Entitäten bestehen. Sie zeigen auf, wie die "Dinge" in deiner Datenbank miteinander interagieren oder in Verbindung stehen. In einem Online-Shop besteht eine Beziehung zwischen der Entität Person und der Entität Bestellung (eine Person tätigt eine oder mehrere Bestellungen). Ebenso gibt es eine Beziehung zwischen Bestellung und Produkt (eine Bestellung enthält ein oder mehrere Produkte). Die genaue Art dieser Verbindung wird durch die Kardinalität (z.B. 1:1, 1:N, N:M) und die Optionalität (muss oder kann eine Beziehung bestehen?) näher spezifiziert. Im ERD werden Beziehungen oft als Rauten dargestellt, die durch Linien mit den beteiligten Entitäten verbunden sind.
Wann sind Entitäten voneinander abhängig?
Starke Entitäten: Eigenständig existierend
Eine starke Entität ist ein Entitätstyp, der für seine Existenz nicht von einer anderen Entität abhängig ist. Sie besitzt ein eigenes, eindeutiges Schlüsselattribut (oder eine Kombination von Attributen), das als Primärschlüssel dient und jede Instanz dieser Entität klar identifiziert. In einem Online-Shop sind z. B. Person und Produkt typische starke Entitäten. Eine Person kann in der Datenbank existieren, auch wenn sie noch keine Bestellung aufgegeben hat. Ein Produkt kann ebenfalls existieren, auch wenn es noch nie bestellt wurde. Ihre Identität und Existenz sind eigenständig. Im ERD werden starke Entitäten durch ein einfach umrandetes Rechteck dargestellt.
Schwache Entitäten: Existenzabhängig
Im Gegensatz zu starken Entitäten ist eine schwache Entität ein Entitätstyp, dessen Existenz untrennbar mit der Existenz einer anderen Entität – der sogenannten identifizierenden oder besitzenden starken Entität – verbunden ist. Eine schwache Entität kann ohne die zugehörige starke Entität nicht existieren oder sinnvoll identifiziert werden. Sie besitzt selbst keinen vollständigen Primärschlüssel, der sie global eindeutig macht. Stell dir vor, du möchtest die einzelnen Positionen einer Bestellung in deinem Online-Shop speichern. Eine Bestellposition (z.B. "3 Stück Produkt A") ergibt nur im Kontext einer spezifischen Bestellung Sinn. Ohne die zugehörige Bestellung existiert die Position nicht. Ein anderes Beispiel wäre eine Schadensmeldung in einer Versicherungsdatenbank, die immer zu einer bestimmten Versicherungspolice (starke Entität) gehört. Im ERD werden schwache Entitäten oft durch ein doppelt umrandetes Rechteck gekennzeichnet.
Identifizierende Beziehung und partieller Schlüssel
Da eine schwache Entität nicht über einen eigenen, global eindeutigen Primärschlüssel verfügt, wird ihre Identität über die Beziehung zu ihrer starken Entität hergestellt. Diese spezielle Beziehung nennt man identifizierende Beziehung. Sie verknüpft die schwache Entität mit der starken Entität, von der sie existenzabhängig ist. Im ERD wird eine identifizierende Beziehung oft durch eine doppelt umrandete Raute dargestellt.
Die schwache Entität besitzt typischerweise ein partielles Schlüsselattribut (auch Diskriminator genannt). Dieses Attribut identifiziert eine Instanz der schwachen Entität eindeutig innerhalb des Kontexts der zugehörigen starken Entität. Es ist jedoch allein nicht ausreichend, um die Instanz global eindeutig zu machen. Der vollständige Schlüssel einer Instanz der schwachen Entität setzt sich dann aus dem Primärschlüssel der starken Entität und dem partiellen Schlüssel der schwachen Entität zusammen. Im ERD wird das partielle Schlüsselattribut oft gestrichelt unterstrichen.
Beispiel für einen Online-Shop:
- Starke Entität: Bestellung (Schlüsselattribut: BestellNr)
- Schwache Entität: Bestellposition (Partielles Schlüsselattribut: PositionsNr)
- Identifizierende Beziehung: enthält (zwischen Bestellung und Bestellposition)
Eine Bestellposition mit der PositionsNr 1
ist nicht global eindeutig, da es in vielen verschiedenen Bestellungen eine Position mit der Nummer 1 geben kann. Eindeutig wird die Bestellposition erst durch die Kombination aus der BestellNr der übergeordneten Bestellung und ihrer eigenen PositionsNr (z.B. Bestellung B-00123
, Position 1
).
Lernziele
- das Konzept und die grundlegenden Komponenten der Entity-Relationship-Modellierung (ERM) erklären, indem Entitäten, Attribute (einschließlich einfacher, zusammengesetzter, abgeleiteter und mehrwertiger Attribute sowie Schlüsselattribute) und Beziehungen als Bausteine für die konzeptionelle Datenmodellierung und deren grafische Repräsentation im Entity-Relationship-Diagramm (ERD) beschrieben werden.
- die Unterscheidung zwischen starken und schwachen Entitätstypen sowie die Modellierung von schwachen Entitäten mittels identifizierender Beziehungen und partieller Schlüssel erklären, indem die Existenzabhängigkeit schwacher Entitäten erläutert und deren korrekte Darstellung im ER-Diagramm (z.B. doppelt umrandetes Rechteck für Entität und Beziehung, Kennzeichnung des partiellen Schlüssels) unter Verwendung einer gängigen Notation demonstriert wird.