ERM & Relationenschreibweise#

Entity-Relationship-Modell (ERM) nach Chen#

Das ERM modelliert die Datenstruktur eines Systems vor der Datenbankimplementierung.

Notation (Chen-Notation)#

[Rechteck]        = Entität (Objekt/Ding der realen Welt)
(Oval)            = Attribut (Eigenschaft einer Entität)
<Raute>           = Beziehung (Relation zwischen Entitäten)
──────            = Verbindungslinie
(Oval, doppelt)   = Mehrwertiges Attribut
[Rechteck, doppelt] = Schwache Entität

Kardinalitäten#

KardinalitätBedeutungBeispiel
1:1Genau eine Entität A gehört zu genau einer Entität BPerson – Personalausweis
1:nEine Entität A gehört zu mehreren Entitäten BKunde – Bestellungen
n:mMehrere Entitäten A gehören zu mehreren Entitäten BSchüler – Kurse

ERM-Beispiel: Bestellsystem#

(KundenNr)  (Name)  (E-Mail)
     │          │       │
     └──────[Kunde]─────┘
                │
                │  1
                │
             <bestellt>
                │
                │  n
                │
           [Bestellung]──── (BestellNr)
                │                │
                │                └── (Datum)
                │  n
                │
            <enthält>
                │
                │  m
                │
            [Produkt]──── (ProduktNr)
                               │
                               └── (Bezeichnung)
                               │
                               └── (Preis)

n:m-Beziehungen auflösen#

Eine n:m-Beziehung kann nicht direkt in eine Tabelle überführt werden → Auflösung durch Zwischentabelle:

VORHER (n:m – nicht implementierbar):
[Schüler] ──── n:m ──── [Kurs]

NACHHER (aufgelöst):
[Schüler] ──── 1:n ──── [Schüler_Kurs] ──── n:1 ──── [Kurs]
                              │
                         enthält PKs beider
                         Elterntabellen als FK

Relationenschreibweise#

Nach dem ERM wird jede Entität/Beziehung in Relationenschreibweise überführt:

Syntax: Tabellenname(PK, Attribut1, Attribut2, FK → Zieltabelle)

  • PK = Primary Key (Primärschlüssel, eindeutig, kein NULL) → unterstrichen
  • FK = Foreign Key (Fremdschlüssel, Verweis auf anderen PK) → kursiv oder mit

Beispiel: Bestellsystem#

Kunde(<u>KundenNr</u>, Name, Email, Telefon)

Bestellung(<u>BestellNr</u>, Datum, Gesamtbetrag, KundenNr → Kunde)

Produkt(<u>ProduktNr</u>, Bezeichnung, Preis, Kategorie)

Bestellung_Produkt(<u>BestellNr → Bestellung</u>, <u>ProduktNr → Produkt</u>, Menge)

Die Zwischentabelle Bestellung_Produkt löst die n:m-Beziehung auf. Ihr zusammengesetzter PK besteht aus beiden Fremdschlüsseln.

Prüfungsbeispiel#

„Modelliere eine Bibliothek: Bücher können von mehreren Mitgliedern ausgeliehen werden, ein Mitglied kann mehrere Bücher ausleihen."

ERM: [Mitglied] ──n:m──< ausleiht >──n:m──[Buch]

Auflösung:

Mitglied(<u>MitgliedNr</u>, Name, Email)

Buch(<u>ISBN</u>, Titel, Autor, Erscheinungsjahr)

Ausleihe(<u>MitgliedNr → Mitglied</u>, <u>ISBN → Buch</u>, Ausleihdatum, Rückgabedatum)

Siehe auch#

  • sql — SQL-DDL zur Umsetzung des Relationenschemas in echte Datenbanktabellen
  • [[../07_softwareentwicklung/softwaredokumentation]] — Das ERM ist Bestandteil der technischen Systemdokumentation
  • [[../07_softwareentwicklung/uml]] — UML-Klassendiagramme als Alternative zur ERM-Notation
  • [[../10_recht/dsgvo]] — DSGVO-Anforderungen bei der Modellierung personenbezogener Daten

Ressourcen#