Ferramentas de banco de dados e SQL

SQL para DERcom relações declaradas

Leia o DDL como grafo, lista de colunas e estrutura exportável. Escolha o dialeto usado pelo texto de origem.

SQL para DER

Entrada SQL DDL

Visão da estrutura

Digite SQL ou escolha um exemplo.

Processamento local no navegador. Sem conexão ao banco nem histórico salvo.

Dialeto e interpretação

Somente CREATE TABLE e CREATE INDEX com colunas nomeadas. As ligações exigem chaves estrangeiras explícitas; o SQL não é executado.

Até 50.000 unidades UTF-16, 50 tabelas, 1.000 colunas e 200 chaves, índices, CHECK e chaves estrangeiras no total. Exibição em lotes de 50 colunas.

TypeScript descreve linhas lidas: inteiros grandes e decimais exatos viram string; tipos desconhecidos e SQLite ficam unknown. Confira o retorno do driver.

O resultado está desatualizado. Processe a entrada atual antes de exportar.

SQL para DER ajuda a revisar um arquivo de definições quando você não tem acesso ao banco de dados. Chaves compostas e referências a tabelas que não vieram no arquivo precisam de mais atenção do que uma lista de nomes permite.

O exemplo inclui duas tabelas, uma chave estrangeira, colunas que aceitam nulos, uma chave única e um índice. Compare o esquema SQL com a lista de campos: chamar uma coluna de customer_id não cria uma relação por si só.

SQL para DER com ligações rastreáveis

Separe o que está declarado das suposições sobre o negócio.

Ligar apenas o que o DDL declara

SQL para DER conecta somente tabelas com uma chave estrangeira explícita. Quando falta a tabela de destino, um nó externo tracejado mantém a referência visível, sem fazer um esquema parcial parecer completo.

Três cartões de tabelas, dois unidos por uma referência declarada e um separado.

Uma interpretação para cada saída

O diagrama facilita a orientação, o JSON registra a estrutura e o TypeScript sugere o formato de uma linha lida. Todas as visualizações partem do mesmo resultado, sem reinterpretar o SQL ao trocar de aba.

Uma definição de tabela se divide em diagrama, árvore de estrutura e documento de tipos.

O que conferir antes de usar a saída

01

Acertar o dialeto

A seleção muda a gramática e as regras dos nomes; ela não traduz SQL. MySQL exige uma cláusula FOREIGN KEY separada, enquanto PostgreSQL e SQLite também aceitam referências diretamente na coluna.

  • Mudar o dialeto bloqueia as exportações antigas até uma nova análise bem-sucedida.
02

Revisar os destinos pendentes

Um trecho de DDL pode conter a chave estrangeira sem incluir a tabela referenciada. Confira o nó tracejado e as colunas de destino antes de usar o desenho como modelo completo.

  • Referências sem esquema só encontram tabelas sem esquema; search_path não é simulado.
03

Conferir o contrato de tipos

Ter DEFAULT não torna opcional uma propriedade de linha lida. Números exatos viram string; tipos conhecidos que aceitam nulos recebem uma união com null.

  • Desative a análise automática para usar o botão ou Ctrl/Cmd + Enter.

Das tabelas aos artefatos de revisão

Três gramáticas explícitas

Lê um subconjunto DDL de MySQL, PostgreSQL e SQLite. Preserva identificadores entre aspas e nomes qualificados de tabela. No PostgreSQL, nomes sem aspas são normalizados para minúsculas conforme a regra da linguagem.

Chaves compostas preservadas

Chaves primárias e únicas mantêm listas ordenadas de colunas. Chaves estrangeiras guardam os dois lados da correspondência. Uma tabela associativa continua sendo uma tabela, sem virar uma relação muitos-para-muitos inferida.

Detalhes com o texto de origem

Consulte tipo SQL, nulabilidade e participação na chave primária. A definição original conserva DEFAULT, CHECK e cláusulas de geração como texto. Índices explícitos mantêm a sequência das colunas e a direção de ordenação.

JSON como inventário de estrutura

A saída reúne identidades de tabelas, colunas, chaves, índices, verificações e referências, inclusive destinos não resolvidos. É um retrato para documentação e scripts posteriores, não um validador JSON Schema.

TypeScript sem prometer precisão falsa

Interfaces recebem nomes numerados seguros e propriedades entre aspas. Datas viram string, dados binários Uint8Array, JSON e tipos desconhecidos unknown. O mapeamento precisa ser comparado ao comportamento do driver usado pela aplicação.

Diagrama ER em SVG

Salve o grafo como SVG para documentação. Os cartões mostram as cinco primeiras colunas e podem abreviar nomes longos. A visualização de campos e o JSON mantêm o inventário inteiro para complementar a visão geral.

Limites da leitura de DDL

Apenas algumas instruções de estrutura
Aceita CREATE TABLE e CREATE INDEX sobre colunas nomeadas. ALTER, INSERT, views, triggers, procedimentos e CREATE TABLE AS/LIKE interrompem o lote todo. Índices de expressão, prefixo e parciais também são recusados, sem simplificação silenciosa.
Sem inferência de regras de negócio
Um sufixo _id não gera uma seta. O grafo não comprova cardinalidade, unicidade do destino ou aplicação da restrição pelo mecanismo de armazenamento. As regras que faltam devem ser declaradas no DDL original.
Configurações do servidor não são reproduzidas
PostgreSQL reduz nomes sem aspas a minúsculas e preserva os citados. MySQL compara nomes de tabelas exatamente e ignora maiúsculas nas colunas. SQLite ignora a diferença de caixa em ASCII. Não se completam esquemas nem se simula search_path.
REFERENCES de coluna no MySQL é recusado
MySQL ignora essa forma de declaração. O leitor pede uma cláusula FOREIGN KEY separada para não desenhar uma sintaxe ignorada como relação válida. Mesmo uma declaração de tabela não garante a aplicação da restrição no ambiente real.
SQLite exige outra interpretação
Uma chave primária comum não INTEGER pode aceitar NULL. Chaves INTEGER e definições WITHOUT ROWID suportadas seguem suas regras de não nulidade. Como SQLite tem tipagem dinâmica, todas as propriedades de linha são exportadas como unknown.
Orçamentos por entrada
Até 50.000 unidades UTF-16, 50 tabelas e 1.000 colunas. Chaves, índices explícitos, CHECK preservados e chaves estrangeiras dividem um teto de 200 objetos. Há também 15.000 tokens, 32 níveis de parênteses e 250 instruções. Exceder qualquer limite bloqueia o resultado.
Saídas somente para leitura
DEFAULT e CHECK são preservados, nunca executados. Não há conexão, importação de arquivo, projeto por IA, salvamento em nuvem, edição visual, geração de migração ou PNG/DBML. TypeScript não é DTO de inserção nem validação em tempo de execução.

SQL para DER: perguntas frequentes

É preciso conectar o banco para criar o diagrama?

Não. O texto DDL suportado é suficiente, sem credenciais. O leitor não verifica permissões, dados existentes ou configurações do servidor. Por isso, uma análise bem-sucedida não prova que o script possa ser executado no seu ambiente.

De quais bancos posso importar DDL?

Você pode selecionar MySQL, PostgreSQL ou SQLite. O suporte abrange um subconjunto de CREATE TABLE e CREATE INDEX simples, não toda a sintaxe de cada produto. Se houver erro, confira o dialeto e a cláusula na posição apontada.

Como aparecem as chaves primárias e estrangeiras?

Um símbolo marca as colunas de chave primária nos cartões, e as setas mostram chaves estrangeiras. Na visualização de colunas e chaves, veja as listas completas das chaves compostas. Tabelas de destino ausentes são indicadas como externas ou não resolvidas.

O diagrama serve para um trabalho de modelagem?

Pode ajudar a explicar e revisar suas definições de tabela. A ferramenta não avalia a normalização nem a adequação das regras de negócio. Cabe a você relacionar as restrições declaradas aos requisitos do trabalho e justificar o modelo.

Posso informar as regras do negócio sem escrever SQL?

Não há geração por IA a partir de texto de negócio. Escreva primeiro tabelas, colunas e restrições em SQL. Nomes parecidos também não criam relações automaticamente, então cada ligação deve ter uma declaração explícita no DDL.

Encontrou um problema de formatação?

Confira o próximo esquema

Use SQL para DER com um trecho completo e revise as chaves e os destinos pendentes antes de aproveitar as exportações.

Edite o DDL original para alterar a estrutura; os resultados permanecem somente para leitura.