Criando documentação do seu banco de dados com SchemaSpy

  • 9

Criando documentação do seu banco de dados com SchemaSpy

Category : Java , Oracle

2 Flares Twitter 0 Facebook 2 Filament.io 2 Flares ×

Se você já trabalhou em pelo menos uma manutenção de software com banco de dados, com certeza deve ter sofrido bastante para conseguir gerenciar uma quantidade de tabelas que não foi você que projetou.

Se a pessoa que fez a modelagem deixou um modelo de dados,sorte sua, se ela ainda trabalha na mesma empresa, melhor ainda. Entretanto, na maioria das vezes isso não acontece, temos uma montanha de tabelas na nossa frente e precisamos de ferramentas para descobrir os relacionamentos entre elas.

Pois bem , sua vida de desenvolvedor vai mudar, pois depois de ler esse artigo você terá uma excelente ferramenta que:

  • funciona com banco de dados: IBM DB2, Firebird, HSQLDB Server, Microsoft SQL Server, MySQL, Oracle, PostgreSQL e Sybase Server
  • gera a lista de todas as tabelas
  • gera a lista de todos os relacionamentos entre as tabelas
  • gera a lista de todas as colunas das tabelas
  • gera a lista de todas as constraints das tabelas
  • gera a lista de possíveis anomalias nas tabelas, como por exemplo a falta de algum índice
  • não custa um centavo, a ferramenta é open source!

A mágica é feita com a ferramenta “espiã de schema” de banco de dados chamada SchemaSpy!

Agradeço muito ao colega Hélio Frota que me mostrou essa pérola! =)


Veja aqui uma amostra do relatório que ela pode gerar.

Para fazer os seus relatórios basta ter apenas três coisas:

  1. o arquivo jar do Schemaspy
  2. o arquivo jar que implementa a especificação JDBC do seu banco de dados, como por exemplo a do MySQL ou Oracle
  3. um script batch com o comando para gerar o relatório, como por exemplo roda-report.cmd

No caso de gerar o relatório com o banco de dados MySQL, usando o usuário “root” e senha “teste” com o banco de dados “mysql”, temos a seguinte chamada:

Dessa geração de esquema, temos esse relatório abaixo:

Esse aqui foi gerado em Oracle 10g Express, acessando o usuário HR que vem com algumas tabelas de exemplo.
O batch utilizado foi esse:

Como resultado, temos esse relatório:

Note que ele exibe não só os relacionamentos para todas as tabelas, mas também os para apenas uma tabela, o que é excelente para uma rápida consulta; observe o exemplo dessa tabela LOCATIONS que se relaciona com DEPARTMENTS e COUNTRIES na imagem abaixo:

Agora, com apenas três arquivos, você pode carregar no seu pendrive um excelente gerador de documentação!

Bons relatórios! =)

Fernando Boaglio, para a comunidade. =)


About Author

Fernando Boaglio

???

  • Pingback: Gerando relatórios do Schemaspy via Maven « LoboMetal()

  • Andrik Albuquerque

    Show de bola a ferramenta Fernando, cansei de ficar catando relacionamentos ou tabelas em imagens geradas pelo ERWiN ou em projetos de BD impressos

    Vai me ajudar bastante

    []’s

  • Roberto

    Boaglio,

    Isso vai ser bastante útil aqui no projeto (pretendemos deixar disponível em um servidor para todo mundo consultar).

    Obrigado pela dica.

  • Jorge A.

    Bom dia,

    alguém poderia me ajudar, trbalho com o banco oracle 8.0.5.1.0 e não conheço muito o Java, gostria de gerar esse arquivo referente aos dados do banco mas não sei como configurar o local onde se busca a conexão e nem se preciso de algum arquivo em específico para isso, sei que tenho algo referente ao java para poder usar o oracle application que fica emulado na máquina virtual do Java.
    Alguém pode me ajudar?
    Desde já agradeço.

  • Pingback: Gerando relatórios do Schemaspy via Maven « Heliofrota’s Weblog()

  • LindinalvaRocha

    Olá adorei a sua sugestão até porque vai de encontro com o meu problema, tenho 1 enorme base de dados em SQL Server a minha frente que nao sei nada sobre ele pk nao foi eu que o fez, e vou trabalhar sobre ele sendo assim preciso deseperadamente dessa ferramenta. Como conseguir os arquivos jar do Schemaspy

  • Stoma

    Já existe uma GUI para utilizar o SchemaSpy: http://www.joachim-uhl.de/projekte/schemaspygui/

  • A Nova versão parece precisar do GraphViz (Windows)
    http://www.graphviz.org/Download_windows.php

  • Acredito que todas as versões usem o GraphViz , que serve apenas para gerar os modelos gráficos.
    Pode usar sem o GraphViz , mas o HTML será gerado sem as imagens das tabelas e relacionamentos.

Quero saber mais sobre…

Inscreva-se para receber as novidades!

Arquivos

2 Flares Twitter 0 Facebook 2 Filament.io 2 Flares ×