Database diagrams

Generate an ER diagram from a legacy schema

Turn a twenty-year-old Caché namespace into a diagram you can actually hand to a colleague.

  • ER-Diagramme aus Foreign Keys generiert
  • Tabellen per Drag-and-Drop hinzufügen
  • Als PNG, SVG oder PDF exportiert
  • Beziehungen automatisch von Metadaten gezogen

Ein Datenbankdiagramm ist das, was man einem neuen Entwickler zeigt, der ein unbekanntes Schema lernen muss, oder das, was man in ein Design-Dokument einfügt, um zu erklären, wie Tabellen miteinander in Beziehung stehen. Es ist auch das erste, was man macht, wenn man mit einem neuen Projekt beginnt und versucht zu verstehen, was eine Patientendatensatz ist — man öffnet die Patient-Tabelle, sieht die Foreign Keys, folgt ihnen, und baut ein mentales Modell der Beziehungen auf.

SQL DATA LENS generiert ER-Diagramme aus den Foreign Keys, die im Schema definiert sind, sodass die Beziehungen zwischen Tabellen als Linien gezeichnet werden, nicht als eine Liste von Constraints zum Lesen. Es ist keine separate Modellierungsanwendung — es liest die Datenbank selbst und zeichnet, was da ist.

Datenbankdiagramm-Editor mit fünf Tabellen auf einem Canvas, Linien zwischen ihnen zeigen Foreign-Key-Beziehungen, jede Tabelle zeigt ihre Spalten mit Datentypen und Primary-Key-Symbolen
Foreign Keys als sichtbare Linien. Drag-and-Drop zum Hinzufügen von Tabellen.

ER-Diagramme aus Foreign Keys

Ein Datenbankdiagramm in SQL DATA LENS ist eine Sammlung von Tabellen auf einem Canvas, mit Linien zwischen ihnen, die Foreign-Key-Beziehungen darstellen. Jede Tabelle zeigt ihre Spalten, ihre Datentypen und welche Spalten Teil des Primärschlüssels sind. Das ist kein konzeptionelles Modell — es ist ein physisches Modell, das die Datenbank widerspiegelt, wie sie ist, nicht wie sie sein könnte.

Die Linien werden automatisch gezeichnet: Wenn Tabelle A einen Foreign Key zu Tabelle B hat, wird eine Linie von A nach B gezogen. Die Kardinalität — ob es eine Eins-zu-Viele-, Viele-zu-Viele- oder Eins-zu-Eins-Beziehung ist — wird aus den Constraints abgeleitet und mit Crow's-Foot-Notation angezeigt.

Tabellen per Drag-and-Drop hinzufügen

Der Diagramm-Editor hat einen Panel auf der Seite, der alle Tabellen im aktuellen Namespace oder Schema auflistet. Man zieht eine Tabelle vom Panel auf das Canvas, und sie erscheint mit all ihren Spalten und Beziehungen. Wenn die Tabelle einen Foreign Key zu einer anderen Tabelle hat, die noch nicht auf dem Canvas ist, bietet der Editor an, diese Tabelle ebenfalls hinzuzufügen, sodass die Beziehung vollständig gezeichnet werden kann.

Das ist die schnellste Möglichkeit, ein Diagramm zu bauen: die Haupttabelle hinzufügen, die den Vorschlägen zum Hinzufügen verwandter Tabellen folgen, und fünf Sekunden später hat man ein Diagramm, das die wichtigsten Beziehungen zeigt. Für ein vollständiges Schema-Diagramm gibt es eine „Alle Tabellen hinzufügen"-Option, die jede Tabelle im Schema auf das Canvas zieht.

Layout automatisch oder manuell

Der Editor hat einen automatischen Layout-Algorithmus, der versucht, Tabellen so zu positionieren, dass Linien sich nicht kreuzen und verwandte Tabellen nahe beieinander liegen. Das ist ein guter Startpunkt, aber es ist fast nie perfekt — einige Tabellen landen zu weit links, einige Linien kreuzen sich immer noch — also kann man Tabellen manuell per Drag-and-Drop verschieben, und die Linien werden neu gezeichnet, um zu folgen.

Das manuelle Layout wird im Diagramm-File gespeichert, sodass wenn man das Diagramm das nächste Mal öffnet, die Tabellen dort sind, wo man sie platziert hat, nicht zurück am automatischen Layout-Startpunkt.

Datenbankdiagramm mit zehn Tabellen, alle automatisch gelayoutet, mit einigen überlappenden Linien, die zeigen, dass das Auto-Layout gut ist, aber nicht perfekt
Auto-Layout ist ein Startpunkt. Drag-and-Drop für Feinabstimmung.

Export als PNG, SVG, PDF

Diagramme können als Bilddateien exportiert werden — PNG für Folien und Dokumente, SVG für skalierbare Grafiken, die in andere Werkzeuge importiert werden können, und PDF für den Druck oder das Teilen als eigenständiges Dokument. Das ist das, was in Design-Dokumente geht, was man neuen Teammitgliedern gibt, und was man in Wiki-Seiten über die Datenbank einbettet.

Der Export bewahrt die Farben, Schriftarten und das Layout, sodass das exportierte Bild genauso aussieht wie das Diagramm im Editor. Es gibt keine Auflösungsverluste beim PNG-Export — es ist hochauflösend genug für Dokumente und Präsentationen.

Diagramme speichern und laden

Diagramme werden als .dbml-Dateien gespeichert (Database Markup Language), ein Textformat, das die Tabellen, Spalten und Beziehungen beschreibt, die auf dem Canvas sind. Die Datei ist in Versionskontrolle committbar, teilbar und lesbar in einem Texteditor, obwohl sie für maschinelle Erzeugung gedacht ist, nicht für manuelle Bearbeitung.

Das Laden eines Diagramms bedeutet, die Datei auszuwählen, und alle Tabellen werden auf dem Canvas rekonstruiert, mit ihren Positionen und Beziehungen beibehalten. Das ist nützlich, um Diagramme zwischen Rechnern zu teilen oder um ein Diagramm zu archivieren, das man für ein spezifisches Projekt gebaut hat.

Synchronisierung mit Schema-Änderungen

Wenn sich das Schema ändert — eine Spalte wird hinzugefügt, ein Foreign Key wird gelöscht, eine Tabelle wird umbenannt — wird das Diagramm veraltet. Der Editor hat eine „Schema-Synchronisierung", die das geladene Diagramm mit dem aktuellen Schema vergleicht und anbietet, Änderungen zu übernehmen: neue Spalten hinzufügen, gelöschte Spalten entfernen, neue Foreign Keys zeichnen.

Das ist nicht automatisch — man muss die Synchronisierung auslösen — weil Diagramme oft vereinfacht sind, und nicht jede Schema-Änderung sollte in jedes Diagramm propagiert werden. Aber wenn man ein Diagramm hat, das die ganze Datenbank widerspiegelt, und das Schema hat sich geändert, ist die Synchronisierung schneller als das Neubauen des Diagramms von Grund auf.

Systeme ohne Foreign Keys

Nicht jede Datenbank hat Foreign Keys in ihren Metadaten. Einige Legacy-Systeme haben die Beziehungen nur im Anwendungscode dokumentiert, nicht im Schema. In diesen Fällen kann der Diagramm-Editor keine Linien automatisch zeichnen — er zeigt die Tabellen, aber keine Beziehungen.

Man kann Beziehungen manuell hinzufügen, indem man eine Linie von einer Spalte zu einer anderen zieht, aber das ist Arbeit, und es ist keine Reflexion des tatsächlichen Schemas, nur ein visuelles Modell. Für Systeme mit reichhaltigen Foreign Key-Metadaten — wie IRIS, Caché, SQL Server, PostgreSQL, MySQL — ist das Diagramm automatisch. Für Systeme ohne diese Metadaten ist es ein manuelles Werkzeug.

Wie das zu ER-Modellierungswerkzeugen passt

Der Datenbankdiagramm-Editor in SQL DATA LENS ist kein vollständiges ER-Modellierungswerkzeug wie ERwin oder Oracle Data Modeler. Er erzeugt keine Schema-Änderungsskripte, er verwaltet keine logischen vs. physischen Modelle, und er unterstützt kein konzeptionelles Modellieren, bevor das Schema existiert. Was er tut, ist, ein bestehendes Schema sichtbar zu machen, sodass Beziehungen lesbar sind, ohne Foreign-Key-Constraints zu lesen.

Für Entwickler, die ein neues Schema lernen, oder für Teams, die dokumentieren müssen, wie ein bestehendes Schema zusammenpasst, ist das der richtige Ausgangspunkt. Für Teams, die ein neues Schema von Grund auf entwerfen, ist ein dediziertes Modellierungswerkzeug die richtige Antwort, und SQL DATA LENS ist das, was man verwendet, nachdem das Schema existiert.

Der Datenbankdiagramm-Editor ist in den Editionen Named User, Team und Enterprise verfügbar. Die Free Edition enthält ihn nicht. Laden Sie SQL DATA LENS herunter und generieren Sie Ihr erstes ER-Diagramm aus den Foreign Keys, die bereits im Schema sind.

See your IRIS data the way it actually is

Download, unzip, connect. Your first namespace is on screen in about three minutes.

Windows 10, 11 and Windows Server (64-bit) · ~140 MB · version 3.24 · full 30-day Pro trial included