Tutorial Database Refactoring

509 visualizações

Publicada em

Tutorial de Database Refactoring realizado no Agile Brazil 2014.

Links:
[1] http://github.com/fabriziomello/database_refactoring
[2]

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
509
No SlideShare
0
A partir de incorporações
0
Número de incorporações
33
Ações
Compartilhamentos
0
Downloads
8
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Tutorial Database Refactoring

  1. 1. DDaattaabbaassee RReeffaaccttoorriinngg @fabriziomello @guilhermeslac
  2. 2. QQuueemm ssoommooss?? Fabrízio Mello ● Desenvolvedor PostgreSQL ● Líder PostgreSQL Brasil ● Pós-Graduando UniiRitter (Agile) ● @fabriziomello ● http://fabriziomello.github.io Guilherme Lacerda ● Consultor e Professor Universitário (UniRitter, Unisinos e UFRGS) ● Doutorando em Ciência da Computação (UFRGS) ● @guilhermeslac ● http://www.guilhermelacerda.net
  3. 3. AAggeennddaa ●Database Refactoring ●Problema ●Considerações Finais
  4. 4. RReeffaaccttoorriinngg ”Processo de alteração de um sistema de software de modo que o comportamento externo do código não mude, mas que sua estrutura interna seja melhorada.” ”É uma forma disciplinada de aperfeiçoar código que minimiza a introdução de falhas.” (Martin Fowler 2004)
  5. 5. DDaattaabbaassee RReeffaaccttoorriinngg “É quando uma simples mudança no esquema de uma base de dados melhora a sua concepção (projeto), embora mantendo simultaneamente a sua semâtica". (Scott W. Ambler 2006)
  6. 6. DDaattaabbaassee RReeffaaccttoorriinngg “Mudança disciplinada na estrutura de uma base de dados que não altera sua semântica, porém melhora seu projeto e minimiza a introdução de dados inconsistentes". (Fabrízio de Royes Mello 2009)
  7. 7. Refatoração ddee BBaannccoo ddee DDaaddooss Deterioração + Mudanças em Requisitos = Necessidade de Refatoração Mas não é tão simples como parece: ● além de manter comportamento também é preciso manter informação (dados) ● acoplamento com diversas origens (apps, bds, integrações, 3rd, ...)
  8. 8. Single-DDaattaabbaassee AApppplliiccaattiioonn Sua Aplicação Seu Banco de Dados
  9. 9. Multi-AApppplliiccaattiioonn DDaattaabbaassee Sua Aplicação Seu Banco de Dados Outras Aplicações que Você NÃO Conhece Outros Banco de Dados Outras Aplicações que Você Conhece Outras Aplicações que Você Conhece Frameworks de Persistência Outras Aplicações que Você NÃO Conhece Arquivos de Dados Códigos de Testes
  10. 10. CCiicclloo ddee vviiddaa
  11. 11. MMooddeelloo IInniicciiaall
  12. 12. MMooddeelloo RReessuullttaannttee
  13. 13. RReeffaattoorraaççõõeess ● Adicionar restrição de integridade na tabela SALES ● Na tabela “Customer” existe um campo “City” que é um VARCHAR, então precisamos separar em outra tabela, criando um período de transição ● Encerrar período de transição
  14. 14. MMããoo--nnaa--mmaassssaa
  15. 15. CCoonnssiiddeerraaççõõeess ffiinnaaiiss ● Melhoria continua ● Aumentar simplicidade para facilitar entendimento ● Tornar modelos mais próximos do mundo real ● Criar modelos mais simples para facilitar: ● Manutenção e ● Evolução da aplicação
  16. 16. RReeffeerrêênncciiaass ●Refactoring Improving the Desing of Existing Code (Martin Fowler) ●Refactoring Databases: Evolutionary Database Design (Scott Ambler e Pramod Sadalage) ●http://martinfowler.com/books/refactoring.html ●http://agiledata.org/essays/databaseRefactoring.html ●http://www.agiledata.org/essays/databaseRefactoringSmells.html ●http://fabriziomello.github.io/blog/2013/06/10/database-refactoring/
  17. 17. MMuuiittoo Obbrriiggaaddoo!! g u i l h e r me s l a c e rd a@g m a i l . c o m @g u i l h e r me s l a c f a b r i z i o me l l o@g m a i l . c o m @f a b r i z i o me l l o w w w . c o d i n g b y e x a m p l e . o rg w w w . o rg a n i z a c a o v i s u a l . n e t

×