Este documento apresenta os conceitos de refactoring e database refactoring, abordando um catálogo de refactorings com definições e exemplos. O objetivo é melhorar a estrutura de dados em bancos de dados sem alterar a semântica, de forma a facilitar manutenção e evolução de aplicações. É discutido o processo de refatoração, incluindo identificar necessidades, escolher refactorings, testar mudanças e migrar dados.
20. Objetivo Apresentar os conceitos de Refactoring bem como sua aplicação em Banco de Dados, o chamado Database Refactoring , abordando o Catálogo de Refactorings com suas definições, categorias e exemplos práticos.
46. Refactoring ”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)
47. Database Refactoring ”É quando uma simples mudança no esquema de uma base de dados melhora a sua concepção (projeto), embora mantendo simultaneamente a sua semântica.” (Scott W. Ambler 2006)
48. Database Refactoring 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)
58. Acoplamento [1] pode ser um complicador dependendo da sua arquitetura de banco de dados
59. [1] Acoplamento é a medida de dependência entre dois elementos. Quanto mais acoplados dois elementos estiverem, maior a chance que a mudança em um implique na mudança do outro.
63. Alto Acoplamento Multi-Application Database Sua Aplicação Seu Banco de Dados Outros Banco de Dados Frameworks de Persistência Outras Aplicações que Você Conhece Outras Aplicações que Você NÃO Conhece Arquivos de Dados Códigos de Testes
82. Processo de Refatoração Regra Geral Aplicação do Refactoring Apropriado Fonte: Manoel Pimental Medeiros - visaoagil.wordpress.com Esquema Original Período de Transição (Backups, Criação de Campos, Cópias de Dados, Remoção campos antigos, etc) Esquema Resultante
127. Introduce Trigger For History São mudanças que asseguram que uma linha referenciada exista em outra e/ou assegura que uma linha que não é mais necessária seja removida apropriadamente