Ottimo strumento per visualizzare lo schema del database? [chiuso]


137

Esistono buoni strumenti per visualizzare uno schema di database preesistente? Sto usando MySQL se è importante.

Attualmente sto usando MySQL Workbench per elaborare un dump di script di creazione SQL, ma è ingombrante, lento e un processo manuale per trascinare tutte le tabelle (il che sarebbe ok se non fosse così lento).


non c'è alternativa alla lettura della cosa ... a meno che tu non pensi che ciò sia utile apidocs.sugarcrm.com/schema/6.5.14/ce/tables/campaign_log.html
gcb,

2
Ho fatto di nuovo questa domanda, su softwarerecs.stackexchange.com , e accolgo con grande favore qualsiasi alternativa alla mia attuale soluzione.
Jeroen,

Visualizza gli schemi mysql usando dbForge Studio per MySQL. Database Designer è incluso nell'edizione Express gratuita.
Devart,

Risposte:


83

Ho trovato SchemaSpy abbastanza buono: devi eseguire lo script ogni volta che lo schema cambia ma non è un grosso problema.

Come sottolineato nei commenti c'è anche una GUI per questo.

Un altro strumento utile è SchemaCrawler .


3
Grazie, ho pensato che l'interfaccia della riga di comando fosse un po 'una seccatura, ovviamente una volta che l'ho fatta funzionare ho notato il link alla GUI dalla prima pagina, joachim-uhl.de/projekte/schemaspygui . Va inoltre notato che il programma inserisce annunci Google nell'HTML risultante.
James McMahon,

1
Questo è buono. E vale la pena notare che è necessario fare molta rasatura dello yak per farlo funzionare.
Ken Prince,

Questo è fantastico! È stato facile farlo funzionare. Segui le istruzioni. Inoltre, va notato che funziona non solo con MySQL e: DB2, Derby, Firebird, HSQLDB, Informix, MaxDB, MS SQL, Oracle, PostgreSQL, SQLite, Sbase, Teradata.
Iled

Salva te stesso il lavoro e vai con DbVisualizer ( dbvis.com ). Funziona con una varietà di database tra cui SQLite e il loro EULA consente di utilizzare la versione gratuita per progetti commerciali.
Aralox,

14

Di solito uso SchemaSpy per fare questo, ma recentemente ho trovato un articolo davvero semplice su sqlfairy che utilizza solo il file di dump per creare il grafico della struttura


2
+1 per sqlfairy non richiede il JRE (come la maggior parte delle altre risposte).
mikewaters,

Ho appena ottenuto ciò di cui avevo bisogno da sqlfairy. Semplice e veloce.
fivedogit,

sqlfairy può utilizzare enormi quantità di spazio su disco per database di grandi dimensioni. L'ho eseguito per un database di 615 MB di larghezza e si è rotto dopo aver riempito i 18 GB rimasti liberi sul mio hard disk.
Pascal,

È un vecchio commento ... Questi strumenti sono ancora in fase di sviluppo?
Salve il

11

Mi piace questo strumento, chiamato semplicemente DbSchema . È scritto in Java, quindi funziona su OS X, Windows o Linux. È un po 'goffo, soprattutto quando si tratta di stampa, ma per mia esperienza sono tutti così. Questo è il migliore dei tanti che ho provato. Fa diagrammi chiari e piacevoli. Prova gratuita. Costa circa $ 120 a seconda del numero di licenze acquistate.


Strumento eccellente. C'è anche un'edizione gratuita che ha la maggior parte delle fantastiche funzionalità (sincronizzazione con live db per esempio).
Wheleph

questo è un ottimo strumento, può persino generare chiavi esterne virtuali, wow!
Nassim,

10

su Mac OS X puoi usare Sequel Pro


1
+1Sequel Pro è altamente raccomandato.
Anne,

6
Penso che questa risposta abbia bisogno di ulteriori spiegazioni: norbauer.com/rails-consulting/notes/…
fguillen

1
Grazie @fguillen! Aggiungiamo la spiegazione proprio qui (prima che il link potrebbe interrompersi ...). Sono solo 4 semplici passaggi: 1.) Installa graphviz , è disponibile in MacPorts ( sudo port install graphviz) e in Homebrew ( brew install graphviz). 2.) Esporta file Dot (in SequelPro vai su File> Esporta> Graphviz Dot ed esporta il tuo database) 3.) Apri terminale e converti file dot in SVG dot -Tsvg your_database.dot > your_database.svg 4.) Opzionalmente converti SVG generato in JPG o PNG usando qualsiasi strumento a tua scelta (Inkscape, ImageMagick, GraphicsMagick, ecc.)
Arvid,



2

Hai provato la funzione organizza> arrangiamento automatico in MySQL Workbench. Potrebbe salvarti dallo spostamento manuale dei tavoli.


2
Sì, mi ha aiutato, ma non è stato grandioso.
Mat

Vale la pena provare, finisco sempre per organizzare anche me stesso, ma a volte può iniziare.
Brian Fisher,

2

DeZign per database potrebbe essere interessante per te. È possibile decodificare e modificare i database esistenti. Ha una funzione di auto-layout e il layout del diagramma non è a maglia durante la sincronizzazione del modello di dati con il database.


Si noti che la funzione di autolayout non è adatta per database più grandi, è solo un grande casino. (ad es. lo spazio per il diagramma sembra essere limitato e quindi ci sono molti tavoli stipati sul bordo destro (nel nostro caso 75 tavoli in un posto). Ho giocato con le diverse opzioni di layout ma il risultato non è buono in nessuno delle opzioni
Lonzak

2

Visio Professional ha incorporato uno strumento di reverse engineering del database. Dovresti essere in grado di usarlo con MySQL tramite un driver ODBC. Funziona meglio quando si esegue il reverse engineering del database e quindi si creano i diagrammi trascinandoli fuori dalle tabelle e dal pannello delle viste. Trascina tutti gli oggetti chiave esterna e li inserisce anche nel diagramma.


2

Sto iniziando a creare il proprio script Perl basato sul modulo SQL :: Translator (GraphViz). Ecco i primi risultati .



2

Ho cercato a lungo uno strumento decente, e preferibilmente gratuito, per Linux e ho trovato questa applicazione java abbastanza buona (finalmente !!):

http://sqldeveloper.solyp.com/

Essendo Java è multipiattaforma (lo eseguo su Linux senza problemi) e si collegherà a qualsiasi database per il quale è possibile ottenere un driver JDBC. vale a dire: praticamente qualsiasi database .

È abbastanza facile importare il database e ottenere un visual ( ERM ) dello schema del database. Anche la funzione di layout automatico è buona, ma nota che non viene eseguita automaticamente e devi fare clic sul pulsante "layout automatico" dopo aver importato i tuoi oggetti nel diagramma.

L'applicazione è anche un ottimo strumento di amministrazione / navigazione del database generico. Come piccolo esempio, lo uso invece di pgadmin per alcuni lavori di sviluppo di base a causa di semplici prelibatezze come la larghezza della colonna dei risultati delle query SQL che si dimensionano automaticamente per adattarsi al contenuto (il che mi fa impazzire in pgadmin).


Sono d'accordo con questo. Ho cercato qualsiasi strumento di interfaccia grafica per visualizzare i database postgresql su Linux e la maggior parte di loro è a posto. Ho appena iniziato a utilizzare SQL Developer ma è la migliore opzione gratuita che ho trovato finora.
Adam Plumb,

1
Non posso fornire una nuova risposta in quanto la questione è chiusa, ma lo strumento che in realtà vogliono è DbVisualizer ( dbvis.com ). È fantastico ... molto meglio di quello che ho raccomandato nella mia domanda (se il mio uso negli ultimi anni è indicativo).
Russ

1

Uso SQL :: Translator con DBIx :: Class

Ho comunque DBIx :: Class nella mia toolchain e la combinazione con SQL :: Translator mi permette di convertire lo schema in molti formati diversi. Principalmente script SQL di inizializzazione per diversi server di database (che semplifica lo sviluppo su SQLite e il passaggio a Postgresql per la produzione) ma può anche generare dati GraphViz, quindi i diagrammi sono banali da generare.


1

ER / Studio di Embarcadero è uno dei più costosi, ma la modalità gerarchica che presenta è di gran lunga la migliore per comprendere i modelli di database. Rende la scrittura di query l'attività più semplice al mondo.

È anche incredibile con normalizzazione, denormalizzazione, deposito, documentazione, ecc.

Il rovescio della medaglia è che si tratta di uno strumento piuttosto costoso, soprattutto quando si utilizza la multipiattaforma.


1

Adminer (ex phpMinAdmin), l'applicazione web per la gestione di database MySQL, traccia un semplice diagramma.

Il software stesso è simile a phpMyAdmin, ma ha più funzioni, è leggero ed è disponibile in un singolo file PHP.

testo alternativo


1
Forse questo funziona per schemi banali, ma l'ho provato su uno schema con 28 tabelle e mi ha dato un elenco puramente verticale di tutte le tabelle in ordine alfabetico, con un casino di linee verticali che tentano di illustrare le relazioni. Non potrebbe essere più inutile.
Dolph,

Esatto, nel mio caso 40 tavoli. È possibile fare clic per trascinarlo, ma una volta selezionato, non è possibile selezionare.
Ziyan Junaideen,

0

Quando dici di visualizzare lo schema del database, ti riferisci a un documento di testo di tutte le tue tabelle, sproc, ecc. O ti riferisci a una rappresentazione visiva del tuo schema e delle dipendenze?

So che hai menzionato MySQL (ed è molto probabile che sia supportato ora, ma non ne sono sicuro), ma RedGate ha una serie di strumenti che lo rendono piuttosto semplice. È il programma SQL Doc che può prendere l'intero database e creare per esso una documentazione completa del database. SQL Dependency Tracker può darti una rappresentazione visiva di tutte le tue tabelle e mostrare i loro collegamenti, oppure puoi caricare solo determinate tabelle o sprocs per mostrare cosa li sta usando o cosa stanno usando loro stessi.


Gli strumenti di Red Gate sono solo SQL Server, temo.
Dave R.,

Ero alla ricerca di una rappresentazione grafica visiva piuttosto che di un documento di database completo, ma suona comunque interessante (anche se si tratta solo di SQL Server - ho altre cose che lo usano).
Mat

0

Anni fa utilizzavo Data Architect. Non so se è ancora là fuori.

È possibile decodificare uno schema esistente in un diagramma di tabella relazionale.

Oppure potresti andare ancora oltre e decodificare un modello Entità-Relazione con un diagramma di accompagnamento. I diagrammi ER mi sono stati davvero utili quando ho discusso dei dati con persone che non erano né programmatori né esperti di database.

A volte erano necessarie alcune correzioni manuali al modello ER e al diagramma ER prima che fosse un utile strumento di comunicazione con le parti interessate.



0

Ho provato DBSchema. Funzionalità interessanti, ma estremamente lente per un database con circa 75 tabelle. Inutilizzabile.


0

Prova PHPMyAdmin che ha delle funzioni di visualizzazione e modifica davvero interessanti. Sono abbastanza sicuro che puoi persino esportare per eccellere.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.