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.

Ein Diagramm weitergeben

Zum Teilen wird ein Diagramm zu einem Bild. Öffnen Sie es, klicken Sie mit der rechten Maustaste auf eine freie Stelle der Zeichenfläche und wählen Sie Copy Diagram to Clipboard — danach fügen Sie es in die Spezifikation, das Ticket oder die Wiki-Seite ein. Copy Diagram to File… schreibt dasselbe Bild in eine Datei, in den Bildformaten, die die Java-Laufzeit unterstützt (PNG, JPG, GIF, BMP); tippen Sie eine Endung, für die es keinen Writer gibt, wird PNG verwendet. Große Diagramme werden seitenweise geschrieben.

Wo ein Diagramm liegt

Nicht in einer Datei auf Ihrem Rechner, sondern in der Datenbank. Wer sich mit SQL DATA LENS auf dieselbe Datenbank verbindet, sieht dieselben Diagramme — genau das macht ein Diagramm zu etwas, das ein Team gemeinsam pflegt, statt zu einem Bild in irgendjemandes Downloads-Ordner. Umgekehrt heißt das: Ein Diagramm in eine andere Umgebung zu bringen bedeutet, es dort neu anzulegen; einen Diagramm-Import oder -Export gibt es nicht.

4.02 in einem Team ausrollen, das Diagramme teilt? Dann gemeinsam. Diagramme werden ab dieser Version in einem neuen, sichereren Dateiformat gespeichert, und ein mit 4.02 gespeichertes Diagramm kann eine Kollegin auf einer älteren Version am selben Server nicht mehr öffnen. Von älteren Versionen gespeicherte Diagramme öffnen sich hier weiterhin wie bisher — die Unverträglichkeit läuft also nur in eine Richtung, aber ein gestaffelter Rollout ist dafür die falsche Form.

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.

Explore your IRIS data from SQL down to globals

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

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