Refactoring Databases
Por Ismael Soares
rkmael.com
SQL Magazine
Edição 81
Antes e depois…
O que é Refactoring?
Martin	
  Fowler:	
  
“É	
   um	
   processo	
   de	
   alteração	
   em	
   um	
   sistema	
   de	
 ...
Refactoring de Banco de dados?
Consiste	
  em	
  simples	
  mudanças	
  no	
  esquema	
  do	
  banco	
  de	
  dados	
  
(t...
Conceitualmente, refactoring de banco de dados é
mais difícil que refactoring de código…
Refactoring de código precisa ape...
Desafios
O que deve ser
refatorado?
Tabela genérica
Coluna genérica
Dados redundantes
Tabelas com muitas colunas
Tabelas com muitas linhas
Causa	
  problemas	
  de	
  desempenho.	
  
O	
  exemplo	
  mais	
  comum	
  é	
  a	
  tabela	
 ...
Modelo intocável
Antes de começar…
Verifique	
  se	
  o	
  refactoring	
  é	
  mesmo	
  necessário,	
  	
  
pois	
  talvez	
  a	
  estrutura	
  do	
  modelo	
...
É	
  preciso	
  ter	
  em	
  mente	
  que	
  nenhuma	
  estrutura	
  
deve	
  ser	
  tão	
  rígida	
  a	
  ponto	
  de	
  ...
Divida	
  o	
  seu	
  projeto	
  de	
  refactoring	
  em	
  pequenas	
  
etapas	
  para	
  facilitar	
  o	
  controle	
  e...
Evite	
  duplicações	
  de	
  código	
  SQL	
  
Utilize	
  um	
  framework	
  de	
  persistência	
  para	
  	
  
encapsula...
Duvidas?
Obrigado
@rkmael
rkmael@hotmail.com
rkmael.com
Refactoring Databases - parte 1
Próximos SlideShares
Carregando em…5
×

Refactoring Databases - parte 1

414 visualizações

Publicada em

Neste artigo veremos como evoluir um esquema de banco de dados de forma segura, iterativa e incremental. Em seguida, mostraremos alguns exemplos de casos comuns aplicando as técnicas de refactoring de banco de dados.

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

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

Nenhuma nota no slide

Refactoring Databases - parte 1

  1. 1. Refactoring Databases Por Ismael Soares rkmael.com
  2. 2. SQL Magazine Edição 81
  3. 3. Antes e depois…
  4. 4. O que é Refactoring? Martin  Fowler:   “É   um   processo   de   alteração   em   um   sistema   de   software,   de   modo   que,   o   comportamento   externo   do   código   não   mude,   mas   que   sua   estrutura   interna   seja   melhorada.”.  
  5. 5. Refactoring de Banco de dados? Consiste  em  simples  mudanças  no  esquema  do  banco  de  dados   (tabelas,  views,  trigger,  procedures,  etc.)  que  melhoram  o  design   sem  alterar  a  semântica  e  o  significado  dos  dados  que  já  estão   persistido.
  6. 6. Conceitualmente, refactoring de banco de dados é mais difícil que refactoring de código… Refactoring de código precisa apenas manter a semântica comportamental, enquanto refactoring de banco de dados, além de ter esta obrigação, ainda precisa assegurar a semântica informacional.
  7. 7. Desafios
  8. 8. O que deve ser refatorado?
  9. 9. Tabela genérica
  10. 10. Coluna genérica
  11. 11. Dados redundantes
  12. 12. Tabelas com muitas colunas
  13. 13. Tabelas com muitas linhas Causa  problemas  de  desempenho.   O  exemplo  mais  comum  é  a  tabela  de  movimento  de  estoque,  onde  são  armazenadas  todas  as     movimentações  dos  produtos.  Neste  caso,  o  correto  seria  criar  tabelas  de  histórico  para     guardar  os  dados  antigos,  deixando  a  vista  apenas  os  registros  de  determinado  período  
  14. 14. Modelo intocável
  15. 15. Antes de começar…
  16. 16. Verifique  se  o  refactoring  é  mesmo  necessário,     pois  talvez  a  estrutura  do  modelo  atual  esteja   correta #1
  17. 17. É  preciso  ter  em  mente  que  nenhuma  estrutura   deve  ser  tão  rígida  a  ponto  de  ser  inalterável.   Pequenas  melhorias  sempre  irão  acontecer #2
  18. 18. Divida  o  seu  projeto  de  refactoring  em  pequenas   etapas  para  facilitar  o  controle  e  a  compreensão  de   todos  os  envolvidos.     Entretanto,  isto  exigirá  um  controle  rigoroso  sobre   o  versionamento  das  alterações #3
  19. 19. Evite  duplicações  de  código  SQL   Utilize  um  framework  de  persistência  para     encapsular  o  acesso  ao  banco  de  dados   #4
  20. 20. Duvidas?
  21. 21. Obrigado @rkmael rkmael@hotmail.com rkmael.com

×