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.
| Symbol | Name | Gelesen als | Beispiel |
|---|---|---|---|
| Genau eins | Strich + Strich: mindestens eins, höchstens eins | eine Bestellung gehört zu genau einem Kunden | |
| Null oder eins | Kreis + Strich: optional, höchstens eins | ein Kunde hat höchstens eine Kundenkarte | |
| Eins oder viele | Strich + Krähenfuß: mindestens eins | eine Bestellung hat mindestens eine Position | |
| Null oder viele | Kreis + Krähenfuß: beliebig viele, auch keine | ein Kunde hat null oder viele Bestellungen |
Eine ganze Linie lesen
Eine Beziehungslinie wird zweimal gelesen, einmal in Richtung jeder Tabelle. Das klassische Shop-Beispiel:
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
| Begriff | Chen | Krähenfuß | UML |
|---|---|---|---|
| Entität / Tabelle | Rechteck | Kasten mit der Spaltenliste darin | Klassenkasten |
| Attribut | Oval an der Entität | Eine Zeile im Tabellenkasten | Ein Feld im Klassenkasten |
| Beziehung | Raute zwischen Entitäten | Eine Linie mit Kardinalitätszeichen an beiden Enden | Assoziationslinie |
| Kardinalität | 1, N, M an der Raute | Strich, Kreis und Krähenfuß an den Enden | Multiplizitäten 1, 0..1, 1..*, * |
| Primärschlüssel | Unterstrichenes Attribut | Schlüsselmarke in der Spaltenzeile | Stereotyp 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.
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.
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
- ER-Diagramm: Entitäten, Beziehungen und wo aus einem konzeptionellen Modell Tabellen werden.
- Krähenfuß-Notation: die Leseregeln, mit durchgearbeiteten Beispielen.
- Kardinalität im ER-Diagramm: wie eine echte Datenbank bestimmt, welche Zeichen eine Linie bekommt.
- ER-Diagramm-Beispiele: vierzehn vollständige Schemas, jedes mit Diagramm und Data Dictionary.