Ferramenta para gerar e dispor automaticamente um diagrama de relacionamento de entidade?

6

Eu vi muitas ferramentas que podem fazer engenharia reversa de um ERD a partir de um banco de dados existente, mas não consegui encontrar uma que seja capaz de criar o diagrama automaticamente de maneira razoável. A maioria deles apenas coloca todas as entidades em cima umas das outras e chama um dia. Alguns fazem uma tentativa de organizar as entidades, mas não fazem um bom trabalho.

Existe alguma ferramenta lá fora que irá reverter a engenharia da estrutura de um banco de dados existente e, em seguida, colocá-lo automaticamente de uma maneira que seja fácil de entender e revele a organização do banco de dados? Se eu fizesse tal ferramenta, eu teria que minimizar o comprimento das linhas conectando entidades, minimizar o número de linhas que se cruzam e fazer grupos de entidades relacionadas se destacarem umas das outras. Eu também tentaria deduzir quais tabelas são tabelas de pesquisa, quais são tabelas intermediárias de mana-para-muitos, etc. e esquematizar as entidades de forma que essas funções sejam óbvias para uma pessoa que olha para o diagrama.

Eu não tenho exatamente o financiamento para fazer o acima, mas eu tenho algum financiamento para comprar uma ferramenta como essa, se é bom.

Edit: Eu devo mencionar que estou tentando diagramar um banco de dados com mais de 100 tabelas, então eu gostaria de automatizar o máximo possível. O banco de dados não é um com o qual eu estou muito familiarizado, então estou procurando aprender olhando o diagrama em vez de despejar o que eu sei em um diagrama (que parece ser o que a maioria das ferramentas de diagramação são projetadas).

    
por user18352 17.11.2009 / 17:39

4 respostas

2

Desde que você tenha chaves estrangeiras em seu banco de dados, descobri que o Visio faz um bom trabalho. Eu tinha um banco de dados postgresql com cerca de 150 tabelas de quatro projetos mesclados diferentes que estavam conectados através de várias chaves estrangeiras e fez um trabalho incrível de extrair todas as relações e agrupar as tabelas. O diagrama tinha apenas algumas linhas sobrepostas, apesar das extensas chaves estrangeiras. Além disso, por causa das chaves externas, os elementos lógicos foram agrupados bem, ficou claro quais bancos de dados a maioria das tabelas se originou em.

    
por 17.11.2009 / 18:54
2

SchemaCrawler gera automaticamente diagramas de bancos de dados, usando o GraphViz. O poder real do SchemaCrawler é que

  1. você pode usar expressões regulares para limitar as tabelas e colunas no diagrama, tornando-o realmente útil ao explorar um banco de dados desconhecido
  2. você pode descobrir relações entre tabelas que não são expressas como chaves estrangeiras, usando o recurso "associações fracas"

Basta fazer o download do SchemaCrawler, colocá-lo em algum lugar do caminho java e executá-lo da seguinte maneira:

java -classpath $(echo ../../_schemacrawler/lib/*.jar | tr ' ' ':') schemacrawler.Main -server=mysql -database=your_database_in_localhost -user=your_user -password=your_password -infolevel=maximum -command=graph -outputformat=pdf -outputfile=my_database_diagram.pdf $*

Observe também que você pode escolher diferentes formatos de arquivo, como

  • png
  • jpg
  • dot
  • svg

e muitos outros.

Você também pode decidir se nomes de chaves estrangeiras, números ordinais de coluna e nomes de esquemas devem ser exibidos definindo as seguintes propriedades no arquivo de configuração SchemaCrawler, schemacrawler.config.properties.

  • schemacrawler.format.show_ordinal_numbers = true
  • schemacrawler.format.hide_foreignkey_names = true
  • schemacrawler.format.show_unqualified_names = true

Há mais informações e exemplos no link

    
por 12.12.2009 / 19:27
0

provavelmente depende de qual banco de dados você está usando. Eu tentei isso com o Microsoft SQL Server Management Studio e cria e estabelece o diagrama. Eu não posso dizer se ele atende às suas necessidades, mas a edição expressa é gratuita, então é sempre possível experimentá-lo.

    
por 17.11.2009 / 18:04
0

Eu usei Druid para isso no passado e fiquei muito satisfeito. É open source / free e você pode mover os objetos no diagrama ao redor. A interface do usuário pode demorar um pouco para se acostumar, no entanto.

    
por 17.11.2009 / 18:33

Tags