SlideShare uma empresa Scribd logo
1 de 44
Refactoring Databases 2 Por: IsmaelSoares
Agenda ,[object Object]
Dicas e considerações
As categorias de refactoring
Exemplos práticos,[object Object]
Dicas e considerações Nenhuma arquitetura deve ser tão rígida  a ponto de ser inalterável.
Dicas e considerações Não se iluda! Pequenas melhorias  sempre irão acontecer.
Dicas e considerações Alterações menores são mais fáceis de aplicar. ,[object Object]
Identificar as refactorings de forma individual.Controlar as alterações fará muita diferença. ,[object Object]
Atualização ou sincronização em lote.
Escolher um período de depreciação/transição suficiente.
Encapsular o acesso ao banco de dados para não duplicar SQLs.,[object Object]
Estrutural ,[object Object]
Drop Table
Drop View
Introduce Calculated Column
Introduce Surrogate Key
Merge Columns
Merge Tables
Move Column
Rename Column
Rename Table
Rename View
Replace Large Object (LOB) With Table
Replace Column
Replace One-to-Many With Associative Table
Replace Surrogate Key With Natural Key
Split Column
Split Table,[object Object]
Definições de Triggers
Definições de Procedures
Tabelas (foreign key),[object Object]
Triggers circulares,[object Object]
Estrutural – Renomear coluna
Estrutural – Rename Column
Estrutural – Introduce Calculated Column Determine a estratégia de sincronização. Determine a seleção que fará parte do calculo. Adicione a coluna. Implemente a estratégia.
Estrutural – Introduce Calculated Column
Estrutural – Merge Column
Estrutural – Merge Column
Estrutural – Merge Table
Estrutural – Merge Table
Estrutural – Merge Table
Estrutural – Move column
Estrutural – Move column

Mais conteúdo relacionado

Destaque

Clareza nos objetivos
Clareza nos objetivosClareza nos objetivos
Clareza nos objetivosIsmael
 
Conceitos Historias do Usuario
Conceitos Historias do UsuarioConceitos Historias do Usuario
Conceitos Historias do UsuarioIsmael
 
BDD com Easyb
BDD com EasybBDD com Easyb
BDD com EasybIsmael
 
Padrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega ContínuaPadrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega ContínuaDanilo Sato
 
Os testes ainda vao salvar sua pele
Os testes ainda vao salvar sua peleOs testes ainda vao salvar sua pele
Os testes ainda vao salvar sua peleIsmael
 
Refactoring Databases - parte 1
Refactoring Databases - parte 1Refactoring Databases - parte 1
Refactoring Databases - parte 1Ismael
 
Java one
Java oneJava one
Java oneIsmael
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business IntelligenceIsmael
 
Emoções do Lider
Emoções do LiderEmoções do Lider
Emoções do LiderIsmael
 
SPED no Sistema Bluesoft
SPED no Sistema BluesoftSPED no Sistema Bluesoft
SPED no Sistema BluesoftIsmael
 
Product Owner na prática
Product Owner na práticaProduct Owner na prática
Product Owner na práticaPedro Valente
 
Equipes auto organizaveis
Equipes auto organizaveisEquipes auto organizaveis
Equipes auto organizaveisIsmael
 
O que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São PauloO que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São PauloIsmael
 
Inove suas retrospectivas
Inove suas retrospectivasInove suas retrospectivas
Inove suas retrospectivasIsmael
 
Testando JavaScript com Spock
Testando JavaScript com SpockTestando JavaScript com Spock
Testando JavaScript com SpockIsmael
 
Introdução ao EasyTest
Introdução ao EasyTestIntrodução ao EasyTest
Introdução ao EasyTestIsmael
 
BDD com JUnit
BDD com JUnitBDD com JUnit
BDD com JUnitIsmael
 
Design Simples com XP
Design Simples com XPDesign Simples com XP
Design Simples com XPIsmael
 
TDC 2014 - Trilha de Arquitetura
TDC 2014 - Trilha de ArquiteturaTDC 2014 - Trilha de Arquitetura
TDC 2014 - Trilha de ArquiteturaIsmael
 
SVN no Desenvolvimento de Software
SVN no Desenvolvimento de SoftwareSVN no Desenvolvimento de Software
SVN no Desenvolvimento de SoftwareManoel Afonso
 

Destaque (20)

Clareza nos objetivos
Clareza nos objetivosClareza nos objetivos
Clareza nos objetivos
 
Conceitos Historias do Usuario
Conceitos Historias do UsuarioConceitos Historias do Usuario
Conceitos Historias do Usuario
 
BDD com Easyb
BDD com EasybBDD com Easyb
BDD com Easyb
 
Padrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega ContínuaPadrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega Contínua
 
Os testes ainda vao salvar sua pele
Os testes ainda vao salvar sua peleOs testes ainda vao salvar sua pele
Os testes ainda vao salvar sua pele
 
Refactoring Databases - parte 1
Refactoring Databases - parte 1Refactoring Databases - parte 1
Refactoring Databases - parte 1
 
Java one
Java oneJava one
Java one
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business Intelligence
 
Emoções do Lider
Emoções do LiderEmoções do Lider
Emoções do Lider
 
SPED no Sistema Bluesoft
SPED no Sistema BluesoftSPED no Sistema Bluesoft
SPED no Sistema Bluesoft
 
Product Owner na prática
Product Owner na práticaProduct Owner na prática
Product Owner na prática
 
Equipes auto organizaveis
Equipes auto organizaveisEquipes auto organizaveis
Equipes auto organizaveis
 
O que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São PauloO que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São Paulo
 
Inove suas retrospectivas
Inove suas retrospectivasInove suas retrospectivas
Inove suas retrospectivas
 
Testando JavaScript com Spock
Testando JavaScript com SpockTestando JavaScript com Spock
Testando JavaScript com Spock
 
Introdução ao EasyTest
Introdução ao EasyTestIntrodução ao EasyTest
Introdução ao EasyTest
 
BDD com JUnit
BDD com JUnitBDD com JUnit
BDD com JUnit
 
Design Simples com XP
Design Simples com XPDesign Simples com XP
Design Simples com XP
 
TDC 2014 - Trilha de Arquitetura
TDC 2014 - Trilha de ArquiteturaTDC 2014 - Trilha de Arquitetura
TDC 2014 - Trilha de Arquitetura
 
SVN no Desenvolvimento de Software
SVN no Desenvolvimento de SoftwareSVN no Desenvolvimento de Software
SVN no Desenvolvimento de Software
 

Semelhante a Refactoring de bancos de dados

Refactoring Databases - Estrategias
Refactoring Databases - EstrategiasRefactoring Databases - Estrategias
Refactoring Databases - EstrategiasIsmael
 
Refatoração Banco de Dados (Agileweekend2009)
Refatoração Banco de Dados (Agileweekend2009)Refatoração Banco de Dados (Agileweekend2009)
Refatoração Banco de Dados (Agileweekend2009)Fabrízio Mello
 
Database Refactoring com PostgreSQL PGDay RS 2009
Database Refactoring com PostgreSQL PGDay RS 2009Database Refactoring com PostgreSQL PGDay RS 2009
Database Refactoring com PostgreSQL PGDay RS 2009Fabrízio Mello
 
Apresentação cassandra
Apresentação cassandraApresentação cassandra
Apresentação cassandraRichiely Paiva
 
Database refactoring postgresql_consegi2010
Database refactoring postgresql_consegi2010Database refactoring postgresql_consegi2010
Database refactoring postgresql_consegi2010Fabrízio Mello
 
Integração dados prática ppt
Integração dados prática pptIntegração dados prática ppt
Integração dados prática pptRodrigo Ribeiro
 
Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8Emiliano Barbosa
 
TechEd 2005: Novos Recursos T-SQL (SQL 2005)
TechEd 2005: Novos Recursos T-SQL (SQL 2005)TechEd 2005: Novos Recursos T-SQL (SQL 2005)
TechEd 2005: Novos Recursos T-SQL (SQL 2005)Fabrício Catae
 
BD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasBD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasRodrigo Kiyoshi Saito
 
Ténicas de Database Refactoring para ambientes 24x7
Ténicas de Database Refactoring para ambientes 24x7Ténicas de Database Refactoring para ambientes 24x7
Ténicas de Database Refactoring para ambientes 24x7Matheus de Oliveira
 
Katálysis - Webshow - Automação Laboratorial V
Katálysis - Webshow - Automação Laboratorial VKatálysis - Webshow - Automação Laboratorial V
Katálysis - Webshow - Automação Laboratorial VKatálysis Científica
 
Banco de dados comandos sql
Banco de dados   comandos sqlBanco de dados   comandos sql
Banco de dados comandos sqlNilson Augustini
 
Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8Emiliano Barbosa
 
ODI Tutorial - Modelo de Dados
ODI Tutorial - Modelo de DadosODI Tutorial - Modelo de Dados
ODI Tutorial - Modelo de DadosCaio Lima
 
Fundamentos de SQL - Parte 4 de 8
Fundamentos de SQL - Parte 4 de 8Fundamentos de SQL - Parte 4 de 8
Fundamentos de SQL - Parte 4 de 8Emiliano Barbosa
 
Exemplo caso de uso(Mulesoft)
Exemplo caso de uso(Mulesoft)Exemplo caso de uso(Mulesoft)
Exemplo caso de uso(Mulesoft)Guilherme Baccas
 

Semelhante a Refactoring de bancos de dados (20)

Refactoring Databases - Estrategias
Refactoring Databases - EstrategiasRefactoring Databases - Estrategias
Refactoring Databases - Estrategias
 
Refatoração Banco de Dados (Agileweekend2009)
Refatoração Banco de Dados (Agileweekend2009)Refatoração Banco de Dados (Agileweekend2009)
Refatoração Banco de Dados (Agileweekend2009)
 
Database Refactoring com PostgreSQL PGDay RS 2009
Database Refactoring com PostgreSQL PGDay RS 2009Database Refactoring com PostgreSQL PGDay RS 2009
Database Refactoring com PostgreSQL PGDay RS 2009
 
Apresentação cassandra
Apresentação cassandraApresentação cassandra
Apresentação cassandra
 
Database refactoring postgresql_consegi2010
Database refactoring postgresql_consegi2010Database refactoring postgresql_consegi2010
Database refactoring postgresql_consegi2010
 
Basesdedados
BasesdedadosBasesdedados
Basesdedados
 
Integração dados prática ppt
Integração dados prática pptIntegração dados prática ppt
Integração dados prática ppt
 
Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8
 
TechEd 2005: Novos Recursos T-SQL (SQL 2005)
TechEd 2005: Novos Recursos T-SQL (SQL 2005)TechEd 2005: Novos Recursos T-SQL (SQL 2005)
TechEd 2005: Novos Recursos T-SQL (SQL 2005)
 
BD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasBD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelas
 
Ténicas de Database Refactoring para ambientes 24x7
Ténicas de Database Refactoring para ambientes 24x7Ténicas de Database Refactoring para ambientes 24x7
Ténicas de Database Refactoring para ambientes 24x7
 
Katálysis - Webshow - Automação Laboratorial V
Katálysis - Webshow - Automação Laboratorial VKatálysis - Webshow - Automação Laboratorial V
Katálysis - Webshow - Automação Laboratorial V
 
JTableView - Swing
JTableView - SwingJTableView - Swing
JTableView - Swing
 
Banco de dados comandos sql
Banco de dados   comandos sqlBanco de dados   comandos sql
Banco de dados comandos sql
 
Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8
 
Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 
ODI Tutorial - Modelo de Dados
ODI Tutorial - Modelo de DadosODI Tutorial - Modelo de Dados
ODI Tutorial - Modelo de Dados
 
Fundamentos de SQL - Parte 4 de 8
Fundamentos de SQL - Parte 4 de 8Fundamentos de SQL - Parte 4 de 8
Fundamentos de SQL - Parte 4 de 8
 
Prática de Regressão Espacial
Prática de Regressão EspacialPrática de Regressão Espacial
Prática de Regressão Espacial
 
Exemplo caso de uso(Mulesoft)
Exemplo caso de uso(Mulesoft)Exemplo caso de uso(Mulesoft)
Exemplo caso de uso(Mulesoft)
 

Mais de Ismael

TDC 2020 - Trilha de Management 3.0 e Gestão Ágil
TDC 2020 - Trilha de Management 3.0 e Gestão ÁgilTDC 2020 - Trilha de Management 3.0 e Gestão Ágil
TDC 2020 - Trilha de Management 3.0 e Gestão ÁgilIsmael
 
Introducao ao Pensamento Sistemico
Introducao ao Pensamento SistemicoIntroducao ao Pensamento Sistemico
Introducao ao Pensamento SistemicoIsmael
 
Testes de unidade alem do basico
Testes de unidade alem do basicoTestes de unidade alem do basico
Testes de unidade alem do basicoIsmael
 
Bluesoft Culture
Bluesoft CultureBluesoft Culture
Bluesoft CultureIsmael
 
Como dar e receber feedbacks
Como dar e receber feedbacksComo dar e receber feedbacks
Como dar e receber feedbacksIsmael
 
Eficiencia de fluxo
Eficiencia de fluxoEficiencia de fluxo
Eficiencia de fluxoIsmael
 
Como você testa seu software TDC 2017
Como você testa seu software  TDC 2017Como você testa seu software  TDC 2017
Como você testa seu software TDC 2017Ismael
 
Como ter Entregas Frequentes
Como ter Entregas FrequentesComo ter Entregas Frequentes
Como ter Entregas FrequentesIsmael
 
JUnit 5 vs JUnit 4
JUnit 5 vs JUnit 4JUnit 5 vs JUnit 4
JUnit 5 vs JUnit 4Ismael
 
Conceitos por trás do Ágil
Conceitos por trás do ÁgilConceitos por trás do Ágil
Conceitos por trás do ÁgilIsmael
 
Boas Praticas de Testes, Bad Smell e Outros Macetes
Boas Praticas de Testes, Bad Smell e Outros MacetesBoas Praticas de Testes, Bad Smell e Outros Macetes
Boas Praticas de Testes, Bad Smell e Outros MacetesIsmael
 
8 passos para mudança de John Kotter
8 passos para mudança de John Kotter8 passos para mudança de John Kotter
8 passos para mudança de John KotterIsmael
 
Curva da Mudança Kubler-Ross
Curva da Mudança Kubler-RossCurva da Mudança Kubler-Ross
Curva da Mudança Kubler-RossIsmael
 
DevCamp 2016
DevCamp 2016DevCamp 2016
DevCamp 2016Ismael
 
7 Caracteristicas de um bom Lider Agil
7 Caracteristicas de um bom Lider Agil7 Caracteristicas de um bom Lider Agil
7 Caracteristicas de um bom Lider AgilIsmael
 
Law of demeter
Law of demeterLaw of demeter
Law of demeterIsmael
 
Junit Lambda
Junit LambdaJunit Lambda
Junit LambdaIsmael
 
Feedback dos Testes
Feedback dos TestesFeedback dos Testes
Feedback dos TestesIsmael
 
Truques da mente
Truques da menteTruques da mente
Truques da menteIsmael
 
Just groovy
Just groovyJust groovy
Just groovyIsmael
 

Mais de Ismael (20)

TDC 2020 - Trilha de Management 3.0 e Gestão Ágil
TDC 2020 - Trilha de Management 3.0 e Gestão ÁgilTDC 2020 - Trilha de Management 3.0 e Gestão Ágil
TDC 2020 - Trilha de Management 3.0 e Gestão Ágil
 
Introducao ao Pensamento Sistemico
Introducao ao Pensamento SistemicoIntroducao ao Pensamento Sistemico
Introducao ao Pensamento Sistemico
 
Testes de unidade alem do basico
Testes de unidade alem do basicoTestes de unidade alem do basico
Testes de unidade alem do basico
 
Bluesoft Culture
Bluesoft CultureBluesoft Culture
Bluesoft Culture
 
Como dar e receber feedbacks
Como dar e receber feedbacksComo dar e receber feedbacks
Como dar e receber feedbacks
 
Eficiencia de fluxo
Eficiencia de fluxoEficiencia de fluxo
Eficiencia de fluxo
 
Como você testa seu software TDC 2017
Como você testa seu software  TDC 2017Como você testa seu software  TDC 2017
Como você testa seu software TDC 2017
 
Como ter Entregas Frequentes
Como ter Entregas FrequentesComo ter Entregas Frequentes
Como ter Entregas Frequentes
 
JUnit 5 vs JUnit 4
JUnit 5 vs JUnit 4JUnit 5 vs JUnit 4
JUnit 5 vs JUnit 4
 
Conceitos por trás do Ágil
Conceitos por trás do ÁgilConceitos por trás do Ágil
Conceitos por trás do Ágil
 
Boas Praticas de Testes, Bad Smell e Outros Macetes
Boas Praticas de Testes, Bad Smell e Outros MacetesBoas Praticas de Testes, Bad Smell e Outros Macetes
Boas Praticas de Testes, Bad Smell e Outros Macetes
 
8 passos para mudança de John Kotter
8 passos para mudança de John Kotter8 passos para mudança de John Kotter
8 passos para mudança de John Kotter
 
Curva da Mudança Kubler-Ross
Curva da Mudança Kubler-RossCurva da Mudança Kubler-Ross
Curva da Mudança Kubler-Ross
 
DevCamp 2016
DevCamp 2016DevCamp 2016
DevCamp 2016
 
7 Caracteristicas de um bom Lider Agil
7 Caracteristicas de um bom Lider Agil7 Caracteristicas de um bom Lider Agil
7 Caracteristicas de um bom Lider Agil
 
Law of demeter
Law of demeterLaw of demeter
Law of demeter
 
Junit Lambda
Junit LambdaJunit Lambda
Junit Lambda
 
Feedback dos Testes
Feedback dos TestesFeedback dos Testes
Feedback dos Testes
 
Truques da mente
Truques da menteTruques da mente
Truques da mente
 
Just groovy
Just groovyJust groovy
Just groovy
 

Refactoring de bancos de dados