- 1. Database Refactoring com PostgreSQL Fabrzio de Royes Mello
[email_address]
2. Changelog
- 25/04/2009 Porto Alegre AgileWeekend 2009
-
- http://agileweekend.guma-rs.org/
-
- http://www.postgresql.org.br/eventos/pgday/rs
- {24-27}/06/2009 FISL10 ( aguardando aprovao )
-
- http://fisl.softwarelivre.org/10/www/
3. Agenda
- Problema e Soluo(Abordagem Tradicional e gil)
- Refactoring e Database Refactoring
- Processo de Database Refactoring
- Catlogo de Refactorings (60 + 5)
4. Objetivo
- Apresentar os conceitos deRefactoringbem como sua aplicao em
Banco de Dados, o chamadoDatabase Refactoring , abordando o Catlogo
de Refactorings com suas definies, categorias e exemplos
prticos.
5. Agenda
- Problema e Soluo(Abordagem Tradicional e gil)
- Refactoring e Database Refactoring
- Processo de Database Refactoring
- Catlogo de Refactorings (60 + 5)
6. Problema
-
- Anlise... Anlise... Anlise... (tem fim?)
-
- Schema da Base est disponvel mais cedo e isso que as pessoas
iro utilizar
-
- Com isso temos o DBA mais feliz!!!
7. Modelo Cascata (Waterfall) Fonte: Manoel Pimental Medeiros -
visaoagil.wordpress.com Abordagem Tradicional Desenvolvimento
(Vrios Meses ou Anos) Testes(Dias) Entrega Planejamento, Anlise,
Modelagem (Vrios Meses) Tabela Tabela Tabela Tabela Tabela Tabela
Tabela Tabela Tabela Tabela Tabela Tabela Tabela Tabela Tabela
Tabela Tabela Tabela Precisa Alterar oModelo e agora? 8. Soluo?
-
- Processo Iterativo e Incremental
-
- Constante Inspeo e Adaptao
-
- DBA deve rever seus conceitos!!! (Agile DBA)
9. Abordagem gil Soluo Iterativa e Incremental Fonte: Manoel
Pimental Medeiros - visaoagil.wordpress.com Idia Abrangente Iterao
01 (2 a 4 semanas) (Planejamento, Modelagem, Desenvolvimento,
Testes) Tabela Tabela Tabela Tabela Software Iterao 02 (2 a 4
semanas) (Planejamento, Modelagem, Desenvolvimento, Testes)
Software Tabela Tabela Tabela Tabela Iterao 03 (2 a 4 semanas)
(Planejamento, Modelagem, Desenvolvimento, Testes) Tabela Tabela
Tabela Tabela Software Iterao 04 (2 a 4 semanas) (Planejamento,
Modelagem, Desenvolvimento, Testes) Software Tabela Tabela Tabela
Tabela 10. Agenda
- Problema e Soluo(Abordagem Tradicional e gil)
- Refactoring e Database Refactoring
- Processo de Database Refactoring
- Catlogo de Refactorings (60 + 5)
11. Refactoring
- Processo de alterao de um sistema de software de modo que o
comportamento externo do cdigo no mude, mas que sua estrutura
interna seja melhorada.
- uma forma disciplinada de aperfeioar cdigo que minimiza a
introduo de falhas.
12. Database Refactoring
- quando uma simples mudana no esquema de uma base de dados
melhora a sua concepo (projeto), embora mantendo simultaneamente a
sua semntica.
13. Database Refactoring
- Mudana disciplinada na estrutura de uma base de dados que no
modifica sua semntica, porm melhora seu projeto e minimiza a
introduo de dados inconsistentes.
- (Fabrzio de Royes Mello 2009)
14. Agenda
- Problema e Soluo(Abordagem Tradicional e gil)
- Refactoring e Database Refactoring
- Processo de Database Refactoring
- Catlogo de Refactorings (60 + 5)
15. Dificuldades na aplicao
- Database Refactoring mais difcil queCode Refactoringsporque alm
de manter o comportamento tambm deve manter as informaes
- Acoplamento [1]pode ser um complicador dependendo da sua
arquitetura de banco de dados
- [1] Acoplamento a medida de dependncia entre dois elementos.
Quanto mais acoplados dois elementos estiverem, maior a chance que
a mudana em um implique na mudana do outro.
16.
Single-Database Application Sua Aplicao SeuBanco de Dados
17.
Multi-Application Database Sua Aplicao SeuBanco deDados Outros
Banco deDados Frameworks de Persistncia Outras Aplicaes que Voc
Conhece Outras Aplicaes que Voc NO Conhece Arquivos de Dados
Cdigosde Testes 18. Agenda
- Problema e Soluo(Abordagem Tradicional e gil)
- Refactoring e Database Refactoring
- Processo de Database Refactoring
- Catlogo de Refactorings (60 + 5)
19. Processo de Refatorao
- Existe necessidade de refatorar?
- Escolher o refactoring mais apropriado
- Depreciar o esquema original
- Testar antes, durante e aps
- Executar testes de regresso
20. Processo de Refatorao Regra Geral Aplicao do Refactoring
Apropriado Fonte: Manoel Pimental Medeiros -
visaoagil.wordpress.com EsquemaOriginal Perodo de Transio (Backups,
Criao de Campos,Cpias de Dados, Remoo campos antigos, etc)
EsquemaResultante 21. Agenda
- Problema e Soluo(Abordagem Tradicional e gil)
- Refactoring e Database Refactoring
- Processo de Database Refactoring
- Catlogo de Refactorings (60 + 5)
22. Structural (17)
- Introduce Calculated Column
- Replace One-To-Many With Associative Table
- Replace Surrogate Key With Natural Key
So mudanas na estruturado banco de dados (tabelas, colunas,
vises) 23. Data Quality (13)
- Introduce Column Constraint
- Replace Type Code With Property Flags
So mudanas que melhorama qualidade das informaescontidas em um
banco de dados 24. Referential Integrity (7)
- Add Foreign Key Constraint
- Add Trigger For Calculated Column
- Drop Foreign Key Constraint
- Introduce Cascading Delete
- Introduce Trigger For History
So mudanas que asseguram queuma linha referenciada exista
emoutra e/ou assegura que uma linhaque no mais necessria
sejaremovida apropriadamente 25. Architectural (12)
- Encapsulate Table With View
- Introduce Calculation Method
- Introduce Read-Only Table
- Migrate Method From Database
- Migrate Method To Database
- Replace Method(s) With View
- Replace View With Method(s)
So mudanas que melhorama maneira que programasexternos interagem
coma base de dados 26. Method (11)
- Interface Changing Refactorings
-
- Replace Parameter with Explicit Methods
-
- Consolidate Conditional Expression
So mudanas que melhorama qualidade de umaProcedure ou Funo 27.
Transformations (5)
Mudanas que alteram a semnticado esquema do banco pela adiode
novas funcionalidades 28. Agenda
- Problema e Soluo(Abordagem Tradicional e gil)
- Refactoring e Database Refactoring
- Processo de Database Refactoring
- Catlogo de Refactorings (60 + 5)
29. Demonstrar Exemplos prticos! 30. Agenda
- Problema e Soluo(Abordagem Tradicional e gil)
- Refactoring e Database Refactoring
- Processo de Database Refactoring
- Catlogo de Refactorings (60 + 5)
31. Por qu Refatorar?
- Aumentar a simplicidade para facilitar entendimento
- Tornar modelos mais prximos do mundo real
- Ter modelos simples para facilitar
Fonte: Manoel Pimental Medeiros - visaoagil.wordpress.com 32.
Para refatorar algo
33. Algumas Referncias!
-
- Refactoring Databases (Scott W. Ambler e Pramod J.
Sadalage)
-
- Refactoring (Martin Fowler)
-
- Agile Modeling (Scott W. Ambler)
-
- http://www.databaserefactoring.org
-
- http://visaoagil.wordpress.com
-
- http://www.refactoring.com
-
- http://www.postgresql.org
34. Dvidas/Crticas/Sugestes!!! Fabrzio de Royes Mello
[email_address]