ErdDocs

ER-Diagramm-Symbole

ER-Diagramme kennen drei Symbolfamilien. Die Krähenfuß-Notation zeichnen Datenbank-Tools, die Chen-Notation lernt man im Studium, und UML sind Klassendiagramme, angewandt auf Daten. In allen dreien ist eine Tabelle oder Entität ein Kasten und eine Beziehung eine Linie zwischen Kästen. Sie unterscheiden sich darin, wie sie die Kardinalität notieren. Gemeint ist, wie viele Zeilen auf der einen Seite zu einer Zeile auf der anderen gehören. Die Krähenfuß-Notation schreibt sie an die Linienenden. Deshalb wird jede Linie zweimal gelesen, einmal in Richtung jeder Tabelle. Jedes Symbol unten steht mit seiner Lesart da, gezeichnet von ErdDocs in derselben Notation, die es auch Ihrem eigenen Schema im Tool unten gibt.

Was bedeuten die Linienenden der Krähenfuß-Notation?

In der Krähenfuß-Notation passiert alles an den Linienenden. Jedes Ende trägt bis zu zwei Zeichen. Das Zeichen näher an der Tabelle ist das Maximum, das äußere das Minimum.

SymbolNameGelesen alsBeispiel
Genau einsGenau einsStrich + Strich: mindestens eins, höchstens einseine Bestellung gehört zu genau einem Kunden
Null oder einsNull oder einsKreis + Strich: optional, höchstens einsein Kunde hat höchstens eine Kundenkarte
Eins oder vieleEins oder vieleStrich + Krähenfuß: mindestens einseine Bestellung hat mindestens eine Position
Null oder vieleNull oder vieleKreis + Krähenfuß: beliebig viele, auch keineein Kunde hat null oder viele Bestellungen
Spickzettel zur Krähenfuß-Notation mit den vier Linienenden: genau eins (Strich und Strich), null oder eins (Kreis und Strich), eins oder viele (Strich und Krähenfuß), null oder viele (Kreis und Krähenfuß)Spickzettel zur Krähenfuß-Notation mit den vier Linienenden: genau eins (Strich und Strich), null oder eins (Kreis und Strich), eins oder viele (Strich und Krähenfuß), null oder viele (Kreis und Krähenfuß)
Dieselben vier Enden auf einer Karte. Speichern Sie sie, oder laden Sie das SVG hell oder dunkel herunter.

Eine ganze Linie lesen

Eine Beziehungslinie wird zweimal gelesen, einmal in Richtung jeder Tabelle. Das klassische Shop-Beispiel:

Richtung orders: Ein Kunde hat null oder viele Bestellungen. Richtung customers: Eine Bestellung gehört zu genau einem Kunden.customersorders
Richtung orders: Ein Kunde hat null oder viele Bestellungen. Richtung customers: Eine Bestellung gehört zu genau einem Kunden.

Die vollständigen Leseregeln, auch was die Zeichen bedeuten, wenn ein Schema nur halb bekannt ist, stehen auf der Seite zur Krähenfuß-Notation. Welche Kombination Sie wählen, ist eine Frage der Kardinalität.

Chen, Krähenfuß und UML im Vergleich

BegriffChenKrähenfußUML
Entität / TabelleRechteckKasten mit der Spaltenliste darinKlassenkasten
AttributOval an der EntitätEine Zeile im TabellenkastenEin Feld im Klassenkasten
BeziehungRaute zwischen EntitätenEine Linie mit Kardinalitätszeichen an beiden EndenAssoziationslinie
Kardinalität1, N, M an der RauteStrich, Kreis und Krähenfuß an den EndenMultiplizitäten 1, 0..1, 1..*, *
PrimärschlüsselUnterstrichenes AttributSchlüsselmarke in der SpaltenzeileStereotyp oder Eigenschaft

Eine Faustregel hilft. Solange das Schema nur eine Idee ist, passt Chen. Lebt das Diagramm neben dem Anwendungscode, passt UML. Gibt es die Datenbank schon, ist Krähenfuß richtig. Genau diese Notation zeichnet ErdDocs direkt aus dem eingefügten Schema.

Ein Symbol, das in Lehrbüchern fehlt: die gestrichelte Linie

Echten Dumps fehlen oft die Fremdschlüssel. Rails-, Django- und Laravel-Anwendungen sichern Beziehungen häufig im Code, und die Datenbank deklariert nichts. Für diesen Fall ergänzt ErdDocs ein eigenes Symbol. Eine durchgezogene Linie ist eine Beziehung, die die Datenbank deklariert. Eine gestrichelte Linie ist aus dem Spaltennamen abgeleitet, zum Beispiel user_id → users. Die erste sichert ein Constraint in der Datenbank ab, während die zweite eine begründete Vermutung ist.

Gestrichelt heißt: Im Dump gibt es keinen FOREIGN KEY, die Linie stammt aus der Namenskonvention.usersposts
Gestrichelt heißt: Im Dump gibt es keinen FOREIGN KEY, die Linie stammt aus der Namenskonvention.

Die Symbole an einem echten Schema

Fügen Sie Ihr SQL im Tool unten ein. Es sucht Fremdschlüssel und Unique-Constraints und markiert danach die „viele“-Seite jeder Linie.

Ihr Schema

Häufige Fragen

Was bedeuten die Krähenfuß-Symbole?

Jedes Linienende trägt bis zu zwei Zeichen. Das Zeichen näher an der Tabelle zeigt das Maximum. Ein Strich heißt „höchstens eins“, der dreizackige Krähenfuß „viele“. Das äußere Zeichen zeigt das Minimum. Ein Strich heißt „mindestens eins“, ein Kreis „null ist erlaubt“. Kreis und Krähenfuß liest man also als „null oder viele“, zwei Striche als „genau eins“.

Welche Notation nehme ich – Chen oder Krähenfuß?

Chen passt zur Lehre und zum konzeptionellen Entwurf. Dort ist eine Beziehung ein eigenes Element, eine Raute, und das hilft in der Vorlesung. Krähenfuß passt zu echten Datenbanken. Jede Tabelle ist ein Kasten mit ihren Spalten darin, und so sieht ein Schema tatsächlich aus.

Wie wird eine n:m-Beziehung dargestellt?

Mit einem Krähenfuß an beiden Enden. Im physischen Schema setzt man n:m über eine Zwischentabelle um, etwa order_items zwischen orders und products. Deshalb zeigen Tools, die echte Datenbanken zeichnen, zwei 1:n-Linien. Sie treffen sich an der Zwischentabelle.

Warum zeichnen Datenbank-Tools keine Rauten und Ovale nach Chen?

Weil in einer physischen Datenbank das, was Chen getrennt zeichnet, in Tabellen und Spalten aufgeht. Ein Attribut-Oval ist eine Zeile im Tabellenkasten. Eine Beziehungsraute ist entweder eine Fremdschlüsselspalte oder eine Zwischentabelle. Sie als eigene Formen zu zeichnen, würde das Diagramm doppelt so groß machen, ohne dass es mehr zeigt.

Verwandte Seiten