Ferramenta gratuita
SQL para diagrama ER
Cole instruções CREATE TABLE ou o dump completo de um esquema de banco de dados e receba um diagrama ER: cada tabela com suas colunas e chaves, e uma conexão para cada chave estrangeira. O dialeto SQL é detectado para você: PostgreSQL, MySQL e MariaDB, SQL Server, SQLite e, em parte, Oracle. Não é preciso ter conta para testar.
Resultado de exemplo
Como funciona
Cole ou solte seu SQL
Instruções CREATE TABLE, um arquivo de migração ou um dump completo do pg_dump, mysqldump, SSMS ou sqlite3. Você pode soltar vários arquivos .sql de uma vez, e eles são lidos juntos, até 8 MB no total.
Veja o diagrama ER
Cada tabela vira um cartão que lista suas colunas com o tipo e as marcas PK, FK e UK. Cada chave estrangeira vira uma conexão que vai da coluna que a contém até a chave que ela referencia.
Abra no Archboard
Salve como um novo diagrama para reorganizar, anotar, compartilhar um link ou exportar em SVG e PNG. Para se cadastrar basta uma conta Google ou GitHub.
O que é desenhado a partir do seu SQL
O diagrama é montado a partir destas partes das instruções CREATE TABLE:
CREATE TABLECada CREATE TABLE como um cartão com o nome da tabela e uma entrada por coluna: nome, tipo e um ponto de interrogação quando a coluna aceita NULL. Os cartões mostram até 24 colunas e depois a contagem das demais.
PRIMARY KEYUNIQUEChaves primárias, marcadas como PK em cada coluna que abrangem, mesmo quando abrangem várias. Uma restrição UNIQUE, ou um índice único criado com CREATE UNIQUE INDEX, em uma só coluna marca essa coluna como UK.
FOREIGN KEYREFERENCESALTER TABLEChaves estrangeiras escritas em linha com REFERENCES, declaradas como restrições de tabela ou adicionadas depois com ALTER TABLE, cada uma desenhada como uma conexão entre as duas colunas. Uma chave que aponta para a própria tabela, como parent_id, também aparece.
CREATE SCHEMAEsquemas, criados com CREATE SCHEMA ou usados em nomes como sales.orders, desenhados como molduras em volta das suas tabelas quando o SQL usa mais de um. Um esquema sem tabelas não ganha moldura.
NOT NULLUNIQUEPontas pé de galinha que leem o relacionamento a partir das colunas: uma chave estrangeira NOT NULL é obrigatória, uma que aceita NULL é opcional, e uma chave estrangeira que também é única ou é a chave primária torna o relacionamento um para um.
Dialetos SQL que ele lê
PostgreSQL, MySQL e MariaDB, SQL Server e SQLite são lidos cada um com suas próprias regras de aspas, comentários e separadores de instruções, então um arquivo do pg_dump, um mysqldump com blocos DELIMITER ou um script do SSMS cheio de linhas GO funciona como está. O Oracle é lido em parte: tabelas, chaves e chaves estrangeiras são desenhadas, e blocos PL/SQL que terminam com uma linha contendo só uma barra são ignorados. Quando as pistas se contradizem, um leitor genérico assume, e você pode escolher o dialeto quando quiser.
O que o diagrama ER deixa de fora
- Linhas de dados. INSERT, COPY e outras instruções de dados são ignoradas sem serem lidas, então um dump com dados gera o mesmo diagrama que um dump só do esquema.
- Views, funções, procedimentos armazenados, triggers e sequências. São ignorados, e a prévia informa quantos de cada tipo ficaram de fora. Views e triggers que o mysqldump escreve dentro de comentários de versão são ignorados como comentários e não entram na contagem.
- Valores padrão, expressões CHECK, comentários e os valores permitidos de colunas ENUM e SET. As colunas mostram apenas nome, tipo e marcas de chave.
- Tudo o que vem de um servidor em execução. A ferramenta lê o texto SQL que você fornece e não se conecta a nenhum banco de dados, então contagens de linhas, tamanhos de tabela e planos de consulta não aparecem.
Perguntas sobre SQL para diagrama ER
Quais dialetos SQL são suportados?
PostgreSQL, MySQL e MariaDB, SQL Server e SQLite, além do Oracle em parte. O dialeto é detectado por pistas como crases, linhas GO ou strings entre cifrões, e a prévia mostra qual dialeto foi usado. Se a detecção errar, escolha outro na lista e ele fica fixado. Para outros bancos de dados, um leitor genérico lê instruções CREATE TABLE e ALTER TABLE padrão.
Posso colar um dump completo com dados?
Sim. Instruções INSERT e COPY são ignoradas sem serem lidas, junto com linhas SET, comentários e o resto do ruído do dump, então o diagrama fica igual ao de um dump só do esquema. Ainda assim, um dump só do esquema é menor e mais rápido de ler: pg_dump --schema-only, mysqldump --no-data ou sqlite3 com .schema.
Qual o tamanho máximo do esquema?
Até 8 MB de SQL e 1.000 tabelas. Texto acima de 2 MB não aparece na caixa de texto, mas é lido mesmo assim. O próprio diagrama comporta até 2.000 elementos, contando juntos tabelas, conexões e molduras de esquema, então um esquema muito conectado pode chegar antes a esse limite; nesse caso, ajuda exportar um esquema por vez.
Funciona com Oracle?
Em parte. Scripts do Oracle, como os do SQL Developer, são reconhecidos por VARCHAR2, NUMBER e linhas contendo só uma barra, ou você pode escolher Oracle na lista de dialetos. CREATE TABLE, chaves primárias, restrições únicas e chaves estrangeiras adicionadas com ALTER TABLE são desenhadas. Pacotes PL/SQL, triggers e outros blocos que terminam com uma linha de barra são ignorados, assim como as instruções CONNECT e GRANT.
O que é salvo quando abro o diagrama no Archboard?
A prévia não é salva. Quando você escolhe Abrir no Archboard, o diagrama desenhado, ou seja, os cartões de tabela com nomes e tipos de colunas e as conexões entre eles, é salvo como um novo diagrama no seu espaço de trabalho. É um retrato daquele momento: mudanças posteriores no esquema não o atualizam.
A ferramenta de SQL para diagrama ER é gratuita?
Sim. Colar SQL e ver o diagrama não exigem conta. Para abrir o diagrama no Archboard basta uma conta gratuita.
Abra um canvas em um minuto
Entre com Google ou GitHub. Grátis para um assento. Faça upgrade quando a equipe entrar.