Pergunta

Eu herdei recentemente o trabalho de manter um banco de dados que não foi muito bem projetado e os designers não estão disponíveis para fazer qualquer pergunta. E eu tenho um par mais vindo em minha direção no futuro próximo.

Tem sido difícil tentar descobrir as relações entre as mesas, sem qualquer tipo de ajuda visual ou diagrama de banco de dados.

Eu queria saber o que as ferramentas são recomendadas para isso. Eu sei sobre o Visio, mas eu estava esperando havia alguns bons open source / aplicativos freeware lá fora. Eu não preciso dele para alterar o banco de dados em tudo. Apenas lê-lo e criar algum tipo de ajuda visual para me ajudar a entender como as coisas são colocadas para fora e tentar descobrir o que o designer estava pensando sobre como os dados devem estar relacionados.


Os dados adicionais resposta: SchemaSpy era o tipo de coisa que eu estava procurando, mas não tendo feito muito com a linha de comando em idades, I optou por uso schemaSpyGUI . Houve também alguma configuração para se acostumar com desde que eu não trabalho com Java muito, mas o resultado final foi o que eu estava procurando (em substituição de código aberto para diagramas ER do Visio).

Foi útil?

Solução

Tente SchemaSpy . Corri contra uma base de dados bastante complexa e eu estava muito satisfeito com o resultado, com conselhos sobre otimização.

Outras dicas

Tente DBVis - download em http://www.minq.se/products/dbvis/ -. há uma versão Pro (não é necessário) e uma versão aberta que deve ser suficiente

Tudo que você tem a fazer é obter o direito JDBC - motorista de banco de dados, as tabelas mostra de ferramentas e referências ortogonais, hirarchical, em um círculo ;-) etc. apenas pressionando um único botão. Divirta-se!

(Database Management System)

O DBMS você está usando? Muitas das DBMS modernos como servidor SQL e Access pode criar um diagrama de E-R para você.

Microsoft Visio é uma ferramenta excelente e pode fazer engenharia reversa SQL a partir de qualquer fonte de dados.

DDT (banco de dados da ferramenta de projeto) pode fazer engenharia reversa a partir do SQL cru em janelas e é muito leve (muito pequeno download gratuito).

MySQL Workbench é uma das ferramentas do MySQL mais populares e tem uma versão livremente para download.

SQLFairy pode fazer o mesmo para o MySQL no Linux.

dbdesc não é livre, mas ouvi coisas muito boas sobre ele. Ele funciona com vários dos principais bancos de dados lá fora.

Eu tenho tido sorte em que eu não tinha de esquemas de banco de dados Decifre outras pessoas ainda. Eu tenho usar um conjunto de modelos que vêm com CodeSmith .

Em primeiro lugar, gostaria de dizer que eu sinto sua dor!
Aqui estão algumas das minhas dicas:

  1. Em geral, uma ferramenta só será útil se os criadores tenham definido corretamente todas as chaves primárias e estrangeiras, para estar ciente de que uma ferramenta pode não pegar todas as relações importantes.
  2. A coisa mais útil é para ver o que consultas estão sendo executadas pelo código do cliente. Isto irá dizer-lhe não só o que existe relacionamentos, mas as tabelas e os relacionamentos são os mais frequentemente utilizados - que é onde você vai querer concentrar o seu esforço.

Há um pouco de software de código aberto lá fora, mas a ferramenta do Visio Professional para esquemas de banco de dados de engenharia reversa é muito bom porque de-casais o processo de engenharia reversa e diagramação. Eu uso este lote um, porque tende a estar prontamente disponível na maioria dos sites.

Um recurso interessante do visio é que você pode fazer engenharia reversa e, em seguida, construir seus próprios diagramas do esquema de engenharia reversa. Fazer isso é uma maneira muito boa para explorar o esquema e entendê-la como você está fazendo este trabalho como uma parte de forma interativa a construção de um documento de referência para o esquema. Eu usei esta técnica para engenheiro tudo reversa de Atividade Custeio Sistemas Baseados para < a href = "http://www.roomsolutions.net/insurance-software/policy-administrator-system/subscribe.aspx" rel = "nofollow noreferrer"> Insurance Underwriting Sistemas , normalmente sem muita ajuda do fornecedor . Mexer sobre com diagramas do Visio é bastante relaxante.

Entre este e um pouco de testes de hipóteses sobre as relações FK (Se o FK não está fisicamente presente na mesa), você pode fazer o sentido de esquemas bastante complexas. Eu encontrei esta abordagem diagramação faz Visio um líder cabeça-e-ombros, porque você pode facilmente interagir com o modelo de engenharia reversa de uma forma bastante conveniente. Você pode preencher faltando chaves estrangeiras, diagramas de área de assunto de construção e anotações acrescentar sobre os diagramas. A interatividade deste processo faz com que seja uma boa ferramenta de aprendizagem.

Esta é uma visão um pouco subjetivo, mas a interatividade funciona muito bem como um proces de aprendizagem para mim e é de longe a minha abordagem preferida. A maioria dos sites não vai invejar-lhe a £ 300 ou assim para uma licença - se eles já não tê-lo disponível. O único site que eu já trabalhei, onde eles tinham para obtê-lo na era porque eles tinham Visio Standard, em vez de Pro. Perguntei bem e do PHB assinou-lo.

Eu uso bancada mysql ( http://www.mysql.com/products/workbench/ ) para bancos de dados MySQL. Você pode anexar o ambiente de trabalho para seu banco de dados e ele vai chamar a digram ER para você.

Usando pgsql / win32 eu encontrei a solução mais fácil era para escrever um script Perl que fez uso de Graph :: Fácil do CPAN. Consulta o banco de dados para relações de chave estrangeira, fazer um gráfico dirigido com tabelas como nós e relacionamentos FK como links. Se esta é a sua configuração, eu posso postar o código.

Eu gosto de experimentar e ver se as aplicações que utilizam o banco de dados têm maneiras de registrar o SQL eles usam (ou o DB backend em si, mas que tende a ser menos tratável). Conseguir uma sensação de que as solicitações realizadas no banco de dados ajuda a concentrar-se nas tabelas importantes.

Tal como acontece com a maioria das coisas, a regra 80/20 se aplica aqui: 20% das mesas vai fazer 80% das coisas interessantes. Assim que tiver figurado-los para fora, um diagrama raramente é necessário.

Olhe para os relationshsips chave estrangeira chave primária que foram configuradas como um ponto de partida.

Uma vez que um banco de dados sem diagramas existentes, pode não ter relações configurar formalmente, eu olhar para as estruturas de tabelas e nomes e fazer meus melhores palpites sobre o que pode estar relacionado com o que, em seguida, cavar as estruturas para ver se existem óbvios (mas indefinidos) chaves estrangeiras. Eu olho para os procedimentos armazenados para ter uma idéia de como as tabelas estão unidas e quais campos estão sendo consultado por diante.

Enquanto ferramentas automatizadas para descobrir o banco de dados pode ser muito bacana, eu acho que quando eu realmente cavar os detalhes do banco de dados a mim mesmo, eu acabar com uma compreensão muito melhor do que eu posso começar a partir de qualquer imagem criada automaticamente.

Eu tenho alguns boa experiência bonita com Aqua Data Studio para engenharia reversa um esquema DB. É muito rico em recursos e suporta até mesmo bancos de dados mais exóticos, como Informix ou Sybase.

Isso me ajudou com a geração de diagramas ER no MS SQL Server 2012:

Gestão MS SQL Server Management Studio> menu Arquivo> "Conectar Object Explorer" Escolha o seu nó de banco de dados e expandi-la. sob este nó você encontrará uma sub-nó chamado "Database Diagrams" Botão direito do mouse em "Diagrama Novo banco de dados" "Database Diagrams">> Adicionar tabelas que você deseja ver as suas colunas, relacionamentos, ...

Use Visio. Se estiver usando Vision 2010, você precisará usar o provedor OLEDB genérico para SQL Server para garantir que não haverá problemas com a conexão com o Controlador Visio.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top