DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e...
-
Upload
bernardo-guerrero -
Category
Documents
-
view
222 -
download
3
Transcript of DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e...
![Page 1: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/1.jpg)
DBSync4JUma Ferramenta para Apoio na
Sincronização entre Bases de Dados de Desenvolvimento e Produção
Autores: Ana Carolina Ferreira Lins Rafael Fernandes GomesOrientador: Fernando Macedo
![Page 2: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/2.jpg)
Cenários• Software em constante evolução; • Não ter controle sobre as mudanças;
• Falta de controle nos sub-processos do desenvolvimento;
Problema a ser solucionado • Mapear e sincronizar diferenças estruturais entre duas bases;
![Page 3: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/3.jpg)
Objetivos• Demonstrar diversas tecnologias de acesso e captura de metadados estruturais de bancos de dados relacionais;
• Desenvolver uma ferramenta Open Source utilizando a linguagem Java;
• Criar uma alternativa além das soluções proprietárias quando se trata de um problema de falta de sincronia estrutural entre bancos de dados de produção e desenvolvimento.
• Promover a conscientização da importância da gestão de configuração.
![Page 4: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/4.jpg)
Problematização• Como sincronizar as bases de dados de um projeto já em andamento que não possui a estrutura desejada de controle de mudanças?
• Como minimizar o esforço para sincronizar bases em produção e desenvolvimento?
• Como mapear as diferenças estruturais entre duas bases de dados?
![Page 5: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/5.jpg)
Problematização• Como abstrair essas diferenças na estrutura em uma saída com um formato amigável e de fácil compreensão para o desenvolvedor?
• Que benefícios à solução proposta neste trabalho provê aos envolvidos no projeto?
• Que custo terá a solução proposta neste trabalho?
![Page 6: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/6.jpg)
• O que são metadados?
São dados sobre outros dados. Um item de um metadado pode dizer do que se trata aquele dado.
• O que é a API JDBC?
A API JDBC é uma biblioteca Java para acesso virtual de qualquer tipo de dados tabulares. Essa API consiste em um conjunto de classes e interfaces escrito na linguagem de programação Java.
• O que é o Schema Crawler?
API que utiliza internamente o JDBC e efetua a captura dos metadados dos bancos de dados relacionais.
Conceitos Importantes
![Page 7: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/7.jpg)
Pontos Analisados
CDBS Comparator PRO 6.0
APEXSQL Diff SQLCompare
Descrição Comparação de estruturas e dados
Servidor de base de
comparação de dados
Comparação e sincronização de esquemas
Bancos Suportados
Executa comparação entre fabricantes
diferentes
Suporta comparação de
dados e estruturas de
bases SQL Server
Somente Servidor SQL
Forma de Conexão
ODBC Autenticação Windows ou
SQL
SQL Client
Custo $595 $399 Não identificado
Ferramentas Disponíveis no Mercado
![Page 8: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/8.jpg)
Visão Geral DBSync4J
![Page 9: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/9.jpg)
• Tecnologias / Ferramentas utilizadas
• Eclipse 3.3 Europa;• Plugin JUnit;• API Schema Crawler e JDBC;• API BeanDiff;• Orientação a Objeto;• Design Patterns;
• Funcionalidades
• Abstração de metadados; • Extração de metadados;• Comparação.
Visão Geral DBSync4J
![Page 10: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/10.jpg)
Escopo - Dbsync4J
Schema Nome do Schema
Coluna
Nome da ColunaQuantidade de Tabelas Permissão de Nulo
Tabela
Nome da Tabela Valor DefaultNome da Chave Primaria Tamanho da ColunaNome da Chave Estrangeira Tipo do DadoNome de Índice Parte de uma Chave Primaria
Chave Primaria
Nome da ChaveParte de uma Chave Estrangeira
Tabelas a que pertencem Parte de um ÍndiceColunas a que pertencem Precisão Seqüência UnsignedTipo do Dado AutoincrementavelPágina Chave
EstrangeiraNome da Chave
Campo ÚnicoTabelas / Colunas a que pertencem
Visão Geral DBSync4J
![Page 11: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/11.jpg)
Testes Unitários na Ferramenta DBsync4J• Definição
• Teste específico para uma funcionalidade atômica de um método dentro de uma classe;
• A importância dos testes para a Ferramenta
• Garantir que todas as entidades serão carregadas atualizadas no Banco de Dados;
• Credibilidade / Integridade da aplicação;
• Redução considerável de erros pós - entrega ao cliente.
![Page 12: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/12.jpg)
Testando o carregamento do Schema...
Testes Unitários na Ferramenta DBsync4J
![Page 13: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/13.jpg)
Testando o carregamento de Chaves Primárias / Estrangeiras...
Testes Unitários na Ferramenta DBsync4J
![Page 14: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/14.jpg)
Schema Crawler X JDBCO erro...Carregamento de Colunas
Testes Unitários na Ferramenta DBsync4J
![Page 15: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/15.jpg)
Testes Unitários na Ferramenta DBsync4JSchema Crawler X JDBC
A solução...Carregamento de Colunas
![Page 16: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/16.jpg)
Trabalhos Futuros• Suporte a sincronização de forma transparente;
• Remoção da dependência do Schema Crawler;
• Implementação de rotinas de geração de scripts DDL;
• Melhorar suporte a internacionalização;
• Aumentar escopo suportado pela ferramenta;
![Page 17: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/17.jpg)
• Extração de metadados localmente do computador de um desenvolvedor;
• Suportar outras bases de dados;
• Melhora na performance durante o carregamento dos metadados;
• Criar um plugin para que a ferramenta DBsyn4J se integre com o Eclipse;
• Criação/Persistência/Comparação de Snapshot dos metadados estruturais da base.
Trabalhos Futuros
![Page 18: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/18.jpg)
Análise dos Resultados• Motivação: conhecer profissionais que em algum
momento se depararam com problemas de comparação de bancos de dados;
• Considerações importantes:
• A comparação estrutural de banco de dados uma vez executada manualmente é considerada uma tarefa de grande consumo de tempo.
• Desafio alcançado: suavizar grandes diferenças entre SGBD, pois cada um possui sua forma de lidar, armazenar e recuperar seus metadados.
• Resultado do Trabalho: ferramenta genérica em fase funcional e open source que realize a tarefa de comparação estrutural entre bancos de dados como contribuição a comunidade.
![Page 19: DBSync4J Uma Ferramenta para Apoio na Sincronização entre Bases de Dados de Desenvolvimento e Produção Autores: Ana Carolina Ferreira Lins Rafael Fernandes.](https://reader035.fdocumentos.tips/reader035/viewer/2022062400/570638481a28abb8238f4395/html5/thumbnails/19.jpg)
Onde encontrar a Ferramenta?http://code.google.com/p/dbsync4j/