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ätKardinalitäten#
| Kardinalität | Bedeutung | Beispiel |
|---|---|---|
| 1:1 | Genau eine Entität A gehört zu genau einer Entität B | Person – Personalausweis |
| 1:n | Eine Entität A gehört zu mehreren Entitäten B | Kunde – Bestellungen |
| n:m | Mehrere Entitäten A gehören zu mehreren Entitäten B | Schü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 FKRelationenschreibweise#
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_Produktlö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#
- Wikipedia: Entity-Relationship-Modell
- Wikipedia: Relationales Datenbankmodell
- Studyflix: ERM Entity Relationship Modell einfach erklärt
- SimpleClub: Datenbank ERM Kardinalität auf YouTube suchen