Bis vor ein paar Jahren habe ich Microsoft Visio verwendet, um eine vorhandene Datenbank in ein Diagramm zurückzuentwickeln. Diese Funktion ist seit einiger Zeit veraltet , und ich stecke ziemlich fest, um eine Alternative zu finden.
Die FAQ für diese neue SE-Site weisen mich an, die Anforderungen genau zu beschreiben, also werde ich mein Bestes geben. Die meisten dieser Anforderungen waren in Visio enthalten, jedoch nicht alle. Ich denke, es ist nicht machbar, eine Software zu finden, die alle hat, aber ich würde gerne näher kommen.
Wichtig:
SQL Server 2012- Datenbanken;
Reverse Engineering-Tabellen mit allen Spalten und Primär-/Fremdschlüsselangaben;
Reverse Engineering von Fremdschlüsseln als Verbindungsstücke zwischen Tabellen;
Manuelles Layout von Boxen und Anschlüssen (ich möchte Dinge visuell gruppieren);
Grundlegende Themen : Wählen Sie Hintergrundfarben für Tabellen;
Kann komplexe Modelle handhaben, z. B. 100+ Tabellen ;
Kann auswählen, welche Elemente angezeigt werden sollen oder nicht (z. B. bestimmte Tabellen auslassen usw.);
Mindestens eine kostenlose Testversion verfügbar;
Exportieren in verschiedene Formate für Verteilungs- und Druckzwecke, am meisten bevorzugt ist PDF, PNG würde ich auch tun, denke ich;
WYSIWYG ;
Wichtigste Bonuspunkte:
Läuft unter Windows 8 (obwohl ich eine Linux-VM für Software installieren würde, die alle wichtigen Anforderungen erfüllt)
Automatisches Layout und Connector-Routing zur Minimierung von Überlappungen;
Kann SQL Server 2008 und 2008R2 ausführen ;
Kann Ansichten zurückentwickeln ;
Kostenlos (oder eine kostenlose Version );
Inkrementelles Update , z. B. erneutes Reverse Engineering und Hinzufügen/Entfernen von Tabellen usw., während Design, vorhandenes Layout usw. beibehalten werden.
Hübsche Diagramme (modernes Erscheinungsbild, Anti-Aliasing, Auswahl an Schriftarten, Farben, Farbverläufen, Schlagschatten, Themen usw.);
Freundliche Lernkurve (ich kann mit vielen komplexen Funktionen umgehen, solange es einfach ist, die Grundlagen schnell zu erledigen);
HABEN MÜSSEN:
Natürlich wurde diese Frage schon einmal gestellt, sogar auf Schwesterseiten (mit einigem Erfolg, obwohl sie dort nicht zum Thema gehören). Hier sind ein paar:
Gutes Tool zur Visualisierung des Datenbankschemas? [geschlossen] (MySQL, 91 positive Stimmen)
Kennt jemand ein anständiges kostenloses DB-Schema-Reverse-Engineering-Tool? [geschlossen] (MySQL, 6 positive Stimmen)
Generieren Sie ein ER-Diagramm durch Reverse-Engineering einer Datenbank (alle DBMs, 10 Upvotes)
Und etwas ähnlich von DBA.SE:
Darüber hinaus hat Wikipedia eine Tabelle, in der mehrere Softwarepakete für die Funktion "Reverse Engineering" verglichen werden:
Dies sind die Dinge, die ich im Vorbeigehen versucht habe:
Visio 2003 (das habe ich früher verwendet). Nicht kostenlos, veraltet, aber ansonsten für die meisten Punkte geeignet. Allerdings keine Option mehr.
Visio 2010 und 2013 (das habe ich derzeit). Reverse Engineering wird nicht mehr unterstützt. Ich habe jedoch überlegt, ein Plugin zu schreiben oder VBA zu verwenden, um Dinge zusammenzuhacken. Ich bin mir nicht sicher, wie hart das wäre. Es ist nicht kostenlos (außer ich nehme an, dass ich es persönlich bereits habe), aber es passt in vielen anderen Punkten auf die Rechnung.
Graphviz . Ich habe das vor einiger Zeit versucht, soweit ich mich erinnere, hatte es eine etwas steile Lernkurve und ich war nicht ganz in der Lage, das endgültige Layout manuell zu bestimmen.
SSMS- Diagramme. Dies funktioniert bei kleinen Fällen, kann aber bei größeren Fällen umständlich sein.
Visual Studio 2012 ADO.NET-Entitätsdatenmodell. Das manuelle Layout von Konnektoren ist begrenzt, Themen gibt es überhaupt nicht, es ist wirklich für einen anderen Zweck als die Dokumentation gedacht und es zeigt (z. B. erhalten Sie standardmäßig "Navigationseigenschaften" usw.), und es funktioniert nicht gut für 100+ Tische. Dies kann für kleinere Szenarien nützlich sein, passt aber nicht zur Rechnung für mich.
Und ich glaube, ich habe vielleicht ein paar Vorschläge aus den SO-Threads ausprobiert, obwohl ich mich nicht wirklich an Einzelheiten erinnern kann.
Also: was würdet ihr empfehlen?
Hier ist eine Empfehlung, die ich letztendlich verwendet habe (nach viel mehr Recherche und dem Ausprobieren vieler verschiedener Optionen):
Hier ist der Grund.
Es gibt kein Tool, das alle genannten Anforderungen bequem erfüllt, nicht einmal eines, das nur die Hauptanforderungen erfüllt. Visual Studio 2012 kommt dem nahe, hat aber keine Designunterstützung und funktionierte bei einer großen Anzahl von Tabellen nicht sehr gut.
Folgender Ablauf hat bei mir funktioniert:
Erstellen Sie eine leere Vorlage für Visio-Flussdiagramm 1 . Wählen Sie ein Design, das Ihnen gefällt. Stellen Sie die Seiten- und Druckgrößen nach Ihren Wünschen ein (ich habe das A3-Querformat und das Design "Linear" gewählt).
Öffnen Sie eine Abfrage 2 in SSMS auf der Seite, um die Details zu erhalten, die Sie später benötigen: Tabellen, Spaltennamen und IS NULL
Informationen.
Beginnen Sie, die Tabellen einzeln hinzuzufügen. Wählen Sie manuell aus, welche Tabellen und Spalten Sie einbeziehen möchten.
Dies ist ein Beispiel dafür, wie das Endergebnis aussieht:
Oder ein verkleinerter Screenshot des gesamten Modells (weil es Handarbeit war, habe ich mich entschieden, deutlich weniger als alle über 100 Tabellen aufzunehmen):
Das Verfahren, das ich verwendet habe, um die "Tabellen" so aussehen zu lassen, wie sie aussehen:
—
Striche hintereinander.NOT NULL
Spalten.Außerdem habe ich mich für Fremdschlüssel entschieden für:
Hoffentlich ist das Obige auch für andere von Nutzen.
Unterm Strich empfehle ich diesen Ansatz, vor allem, weil Sie am Ende ein optisch ansprechendes Modell und ein hohes Maß an Kontrolle erhalten. Dieser Ansatz passt jedoch nicht zur gesamten Rechnung. So hält es den Anforderungen stand:
Datenkonnektivität:
± Dies ist alles möglich , aber nicht automatisiert. Also "mehr oder weniger".
Steuerung und Visualisierung:
✓ Ja, das alles funktioniert sehr gut mit einfachem Visio.
Geld:
✓ AFAIK , es ist eine kostenlose Office-Testversion verfügbar. Ich habe mich aber nicht damit befasst, da ich Visio habe.
Sonstiges:
✓ Ja, dies ist in Visio verfügbar.
Bonuspunkte:
Es hat etwa die Hälfte der Bonuspunkte:
1. Ich habe auch die UML-Vorlage und Formen ausprobiert, aber das hat ein ärgerliches Verhalten für das Connector-Routing . Nicht empfohlen!
2. Das war meine Anfrage:
SELECT t.name TableName,
c.name ColumnName,
CASE WHEN c.is_nullable = 1 THEN '' ELSE 'BOLD' END AS IsNotNullable
FROM sys.tables AS t
JOIN sys.columns AS c ON t.object_id = c.object_id
WHERE c.name NOT IN ('Excluded1', 'Excluded2')
ORDER BY t.name,
CASE WHEN c.name = t.name + 'Id' THEN 0
WHEN c.name LIKE '%Id' THEN 1
ELSE 2
END,
c.column_id
Sehen Sie sich SQL Power Architect an . Es kann eine Verbindung zu ziemlich vielen Datenbanken herstellen, für die Sie einen JDBC-Connector konfigurieren können, und es kann das gesamte Reverse Engineering durchführen, nach dem Sie suchen. Ich handhabe jedoch nur grundlegende Datentypen, also müssen Sie Dinge wie DATETIME in DATE konvertieren, wenn Sie sie importieren.
Sie können die „Tabellenfarbe“ ändern, aber in Wahrheit ändert das wirklich die Farbe des Namens/der Kopfzeile der Tabelle, anstatt die Hintergrundfarbe für die gesamte Tabelle zu ändern.
SchemaCrawler ist ein kostenloses Open-Source-Datenbankerkennungstool, mit dem Sie Ihre vorhandene Datenbank zurückentwickeln können.
Wichtig:
Wichtigste Bonuspunkte:
HABEN MÜSSEN:
Sualeh Fatehi, SchemaCrawler
Visio 2016 hat jetzt ein Add-In für das Reverse Engineering
Ich hatte nur die gleichen Anforderungen wie die ursprüngliche Frage, aber Visio hatte bereits einen Vorteil für unsere Wahl, da die ERD-Diagramme bereits 2007 per Reverse-Engineering generiert wurden.
Da wir bereits ein Office 365-Abonnement haben, wurde Visio Pro hinzugefügt, das mir Visio 16 (veröffentlicht Ende 2015) bescherte. Dann installierten wir das Datenbankmodellierungs -Add-In für Visio, um unsere Datenbank zurückzuentwickeln.
Ich habe das Add-In verwendet, um mit einem ODBC-Treiber eine Verbindung zu einer SQL Server (2019)-Datenbank herzustellen (aber es hat mehr Optionen, um Treiber und Server wie Oracle oder SQL Server Native usw. auszuwählen).
PS : Wenn ich anfangen würde, ohne jeglichen Vorteil/Präferenz für Visio, wie oben erwähnt, würde ich wahrscheinlich dbdiagram.io wählen
Ihre Anforderungsliste wird vollständig von Lucidchart abgedeckt . Nun, es ist nicht kostenlos, aber es gibt eine kostenlose Testversion.
Mit Lucidchart führen Sie eine von ihnen angegebene Abfrage aus und importieren dann die Abfrageergebnisse. Dadurch wird eine Sammlung von Tabellen erstellt, die Sie wie Schablonenformen auf ein Diagramm ziehen können. Lucidchart zeichnet die Verbindungen zwischen den Schlüsseln der von Ihnen ausgewählten Tabellen. Sie können die Tabellen und Verbindungen neu anordnen, Felder entfernen, Farben und Schriftarten ändern usw. Soweit ich das beurteilen kann, sparen Sie 90 % der Zeit, die für das Handzeichnen in neueren Versionen von Visio erforderlich ist, und Sie erhalten die meiste Zeit Flexibilität bei der Formatierung. Und keine Angst vor Tippfehlern. Der Nachteil ist, dass dies keine Live-Verbindung zu Ihrer Datenbank ist, sodass Sie zum Aktualisieren etwas manuelle Arbeit leisten müssen.
Sie können in verschiedene Grafikformate (PNG, PDF, JPG) und nach Visio (VDX) exportieren.
Betrachten Sie SQL Server Management Studio (SSMS).
Gehen Sie zu Datenbank -> Datenbankdiagramme -> Rechtsklick -> Neues Diagramm hinzufügen -> Fügen Sie die gewünschten Tabellen für Ihr ERD hinzu.
Vorteile :
Kommt mit SSMS, kann Spaltennamen extrahieren und schön anzeigen.
Nachteile:
Fehlt verknüpfte Schlüssel.
Beachten Sie, dass keines der oben aufgeführten kostenlosen oder getesteten Tools verknüpfte Schlüssel für meine Datenbank erfasst hat.
Try
Apex SQL Model
Free:
https://www.apexsql.com/sql-tools-model.aspx
with:
Forward and reverse engineer
Customize the appearance of models
Create new or modify existing object groups
Navigate through model history
Export database models as images
Customize print output
Webwurm
Jeroen
sechzig Bäume
Reverse engineer tables
Anforderung. Wenn man bereit ist, manuell umzukehren, funktioniert PowerPoint genauso gut.Jeroen
±
in meinem Überblick gegeben habe: "irgendwie möglich, aber nicht automatisiert". Außerdem denke ich, dass " Powerpoint funktioniert genauso gut " nicht trivial aus der Prämisse folgt ...Jeroen
sechzig Bäume