O documento discute refatoração de bancos de dados, apresentando conceitos e práticas de refatoração ágil de bancos de dados legados ou novos projetos. A refatoração de bancos de dados consiste em aplicar melhorias incrementais para manter a semântica dos dados, mesmo com alterações no esquema. Vários tipos de refatorações são apresentados, como estruturais, de qualidade de dados e de integridade referencial.
Agile Brazil 2012 - Padrões Para Implantar Métodos ÁgeisSuelen Carvalho
Apresentação que realizei no Agile Brazil 2012 sobre Padrões para Implantar Métodos Ágeis o qual foi o resultado da minha pesquisa de pós-graduação realizada para o ITA.
Esta apresentação discute e fornece informação sobre o Ciclo de Requisitos de Software, indo da elicitação até a especificação de requisitos de software.
É abordado as principais técnicas, ferramentas e melhores práticas para desenvolvimento da especificação de requisitos.
Understanding the function of an Agile Coach is much more feasible once we acknowledge the set of “why’s” described in the previous section. An Agile Coach is a professional who will assist the organisation in solving the types of problems listed above. It’s possible to do it in different ways; however, let’s explore a few details regarding what is the gist of the activity of Agile Coaching.
We can summarise the essence of the work of an Agile Coach using a model called “The Agile Coaching DNA”. This DNA works as a compass to guide the decisions about which practices and approaches we can use to help clients achieve better results.
Mais conteúdo relacionado
Semelhante a Database Refactoring- Manoel Pimentel
Agile Brazil 2012 - Padrões Para Implantar Métodos ÁgeisSuelen Carvalho
Apresentação que realizei no Agile Brazil 2012 sobre Padrões para Implantar Métodos Ágeis o qual foi o resultado da minha pesquisa de pós-graduação realizada para o ITA.
Esta apresentação discute e fornece informação sobre o Ciclo de Requisitos de Software, indo da elicitação até a especificação de requisitos de software.
É abordado as principais técnicas, ferramentas e melhores práticas para desenvolvimento da especificação de requisitos.
Understanding the function of an Agile Coach is much more feasible once we acknowledge the set of “why’s” described in the previous section. An Agile Coach is a professional who will assist the organisation in solving the types of problems listed above. It’s possible to do it in different ways; however, let’s explore a few details regarding what is the gist of the activity of Agile Coaching.
We can summarise the essence of the work of an Agile Coach using a model called “The Agile Coaching DNA”. This DNA works as a compass to guide the decisions about which practices and approaches we can use to help clients achieve better results.
Pack of slides from my presentation about the Agile Coaching DNA in the Agile Coaching Circles Melbourne (Link: https://www.meetup.com/AgileCoach/events/244510278/)
Slides do meu keynote "Como não ficar careca em Agile Transformations" realizado na abertura do Agile Brazil 2017 em Belém do Pará (site do evento www.agilebrazil.com/2017/)
Deck of slides from my keynote at Dia de Agilidade (Brazil). In this session, I talk about a different strategy for change management in Agile transformations.
Watch the full video (in Portuguese) here: https://www.youtube.com/watch?v=BEfSwSCvLWs
Deck of slides from session about Fusing the Agile Testing into an Agile Team at the Agile Testing and Test Automation Summit 2016 (Melbourne on 08th September)
Deck of slides from my session about Creating Great Teams using Management 3.0 at the Agile Brisbane Meetup (Aug 2016) - http://www.meetup.com/Agile-Brisbane/events/230559396/?eventId=230559396
"If you cannot verbalise a problem, then you do not have a problem yet." It's another learning 3.0 tool to help the problem discovering and the problem solving.
Thinking Hack is a approach based on 5 key attitudes:
- Recognise that only you can change your own thinking.
- Get ownership of the “outputs" of your thinking
- Doubt your own certainty
- Learn about different perspectives of your thinking
- Be disciplined and try thinking differently
These slides will help you to understand how you can change/modify your negative consequences using the Thinking Hack. The Thinking Hack is an approach based in 5 attitudes:
- Recognise that only you can change your own thinking.
- Get ownership on the “outputs" of your thinking
- Doubt your own certainty
- Learn different perspectives about your thinking
- Get discipline to try a new thinking
Este mini e-book visa compartilhar algumas dicas para ajudar profissionais que estejam dando seus primeiros passos no desafio de escalar Agile. Não há uma ordem exata dentre essas dicas. Algumas delas podem inclusive não fazer sentido algum para seu contexto. O objetivo de produzir esse material é compilar diferentes lições importantes que foram aprendidas (muitas vezes duramente) no campo de batalha de transição e experimentação de métodos ágeis dentro de grandes organizações.
“Queeeeima senhor!”, “Vade retro, Satanás!” Talvez você já ouviu essas icônicas frases proferidas por alguém extremamente religioso quando vê algum ato que contrarie a sua crença. Baseada nessa situação metafórica, essa palestra discorrerá sobre a maneira como os métodos ágeis estão sendo vividos nas grandes organizações e, como que essas maneiras são interpretados pelas pessoas que seguem de forma extrema as escrituras sagradas da agilidade. Essa será uma palestra que, com bastante bom humor e com uma boa dose de interação com o público, gerará uma séria e profunda reflexão na comunidade sobre a postura de resistência adotada contra novas abordagens/extensões dentro do próprio ecossistema ágil.
Conferência Goiás I Fraudes no centro-oeste em 2023E-Commerce Brasil
Cristiane Cajado
Coordenadora de Customer Success
ClearSale
Fraudes no centro-oeste em 2023.
Saiba mais em: https://eventos2.ecommercebrasil.com.br/conferencia-goias/
Conferência Goiás I Moda e E-commerce: transformando a experiência do consumi...E-Commerce Brasil
Carolina Soares
Sales Manager
DHL Suppy Chain.
Moda e E-commerce: transformando a experiência do consumidor com estratégias de fulfillment logístico.
Saiba mais em: https://eventos2.ecommercebrasil.com.br/conferencia-goias/
Conferência Goiás I Conteúdo que vende: Estratégias para o aumento de convers...E-Commerce Brasil
Maurici Junior
Gerente de Conteúdo
Magalu
Conteúdo que vende: Estratégias para o aumento de conversão para marketplace.
Saiba mais em: https://eventos2.ecommercebrasil.com.br/conferencia-goias/
Conferência Goiás I Perspectivas do Pix 2024: novidades e impactos no varejo ...E-Commerce Brasil
Thiago Nunes
Key Account Manager - Especialista em Digital Payments
Vindi
Perspectivas do Pix 2024: novidades e impactos no varejo e na indústria.
Saiba mais em: https://eventos2.ecommercebrasil.com.br/conferencia-goias/
Conferência Goiás I As tendências para logística em 2024 e o impacto positivo...E-Commerce Brasil
Camila Suziane Rezende
Agente Comercial Regional
Total Express,
Renata Bettoni Abrenhosa
Agente Comercial Regional
Total Express
As tendências para logística em 2024 e o impacto positivo que ela pode ter no seu negócio.
Saiba mais em: https://eventos2.ecommercebrasil.com.br/conferencia-goias/
MANUAL DO REVENDEDOR TEGG TELECOM - O 5G QUE PAGA VOCÊEMERSON BRITO
Tegg Telecom – 5G que paga você!
Essa é a proposta da Tegg Telecom. Fundado há quase 3 anos, o Grupo Tegg criou sua própria operadora de telefonia móvel, a Tegg Telecom, com a inovadora promessa de pagar aos usuários por utilizarem o serviço de telefonia 5G. Além disso, a Tegg oferece planos mensais a partir de R$ 14,90, sem contratos de fidelidade.
A Tegg é uma Startup Mobitech que chegou para revolucionar a telefonia móvel! 🤳🏻 Planos sem fidelidade.
⬇️ Saiba Mais!
Para Mais Informações me chame no WhatsApp
(67)99114-7996 - EMERSON BRITO
A linha Tegg é o nosso serviço de telefonia móvel. Assim como tudo na Tegg, foi desenhada para todos que desejam um serviço transparente, simples e sem surpresas na fatura. Ela foi feita para redefinir a maneira como você consome a telefonia. Não gera fidelidade, nem multa em caso de cancelamento.
Tenha uma Renda Extra e desenvolva seu próprio Negócio.
Acesse agora e venda chips para qualquer lugar do Brasil!
Assuma o Controle do Seu Futuro Agora!
.
.
Revenda Telefonia Móvel da Empresa TEGG TELECOM
Trabalhe no Conforto de Sua Casa
Inicie seu negócio Online Agora
Compartilhe com Seus Amigos
Não sabe como começar?
Me chama no zap que te explico.
盧 67 99114.7996
Conferência Goiás I Uma experiência excelente começa quando ela ainda nem seq...E-Commerce Brasil
Carolina Ramos de Campos
Gerente de Relacionamento com o Seller
Americanas S.A
Uma experiência excelente começa quando ela ainda nem sequer foi imaginada!
https://eventos2.ecommercebrasil.com.br/conferencia-goias/
Conferência Goiás I Como uma boa experiência na logística reversa pode impact...E-Commerce Brasil
Diogo Inoue
Diretor de Operações OOH
Jadlog Logística.
Como uma boa experiência na logística reversa pode impactar na conversão do seu e-commerce?
Saiba mais em: https://eventos2.ecommercebrasil.com.br/conferencia-goias/
Conferência Goiás I Como uma boa experiência na logística reversa pode impact...
Database Refactoring- Manoel Pimentel
1. DataBase
Refactoring
em FireBird
Autor: Manoel Pimentel Medeiros
É Engenheiro de Software, com 15 anos na área de TI, atualmente trabalha como
Agile Coach para importantes empresas da área de serviço, indústria e bancária.
Também é Diretor Editorial da Revista Visão Ágil e da InfoQ Brasil, Possui as certificações
CSM e CSP da Scrum Alliance e foi um dos pioneiros na utilização e divulgação de
métodos ágeis no Brasil. E já escreveu para importantes portais e revistas
(nacionais e internacionais) ligados ao desenvolvimento de software.
Informações em: visaoagil.wordpress.com
2. Objetivo
Apresentar os conceitos e práticas de refactoring
ágil de bancos de dados, que consiste em um
método interativo e incremental para aplicar
melhorias em banco de dados legados, ou
criação de novos bancos dados em um típico
projeto de desenvolvimento de software.
2
3. Qual o problema?
M odel em cascat
o a
(waterfall)
Planejamento, Análise
e Modelagem (Vários Meses)
Tabela Tabela
Desenvolvimento (Vários Meses ou Vários Anos)
Tabela Tabela Tabela Tabela
Tabela
Tabela Tabela
Tabela Teste(Dias)
Tabela Tabela Tabela Tabela
Entrega
Tabela Tabela
Tabela
Precisa alterar o
Tabela Tabela Tabela Tabela
modelo e agora?
3
Tabela Tabela
4. Solução Iterativa e Incremental
Iteração 01 Iteração 02
(2 a 4 Semanas) Incremento (2 a 4 Semanas) Incremento
(Planejamento, Modelagem, de Software (Planejamento, Modelagem, de Software
Desenvolvimento, Testes) Desenvolvimento, Testes)
Tabela Tabela Tabela Tabela
Idéia
Abrangente
Tabela Tabela Tabela Tabela
Iteração 03 Iteração 04
(2 a 4 Semanas) Incremento (2 a 4 Semanas) Incremento
(Planejamento, Modelagem, de Software (Planejamento, Modelagem, de Software
Desenvolvimento, Testes) Desenvolvimento, Testes)
Tabela Tabela Tabela Tabela
Tabela Tabela Tabela Tabela
4
6. O que é isso?
Refactorings
“É uma forma disciplinada para reestruturar código.
A idéia básica é que você faz pequenas alterações ao seu código
para melhorar a sua concepção, tornando-a mais fácil de
entender e de modificar.
Refactoring lhe permite evoluir o seu código ao longo do tempo,
para ter uma abordagem iterativa e incremental de
programação...”
Martin Fowler - www.refactoring.com
DataBase Refactorings
“É quando uma simples mudança no esquema de uma base de
dados melhora a sua concepção, embora mantendo
simultaneamente a sua semântica”.
6
Scott W. Ambler - http://www.agiledata.org
7. O que é semâtica ?
“É o estudo do significado lingüístico.
Interessa-se pelo que é expresso por sentenças e outros objetos
lingüísticos, não pelo arranjo de suas
partes sintáticas ou pela sua pronúncia”.
Resumo: o Conteúdo é mais importante que a forma!
7
8. Por quê aplicar Refactorings?
● Aceitar mudanças de escopo
● Fornecer feedback rápido
● Melhoria contínua
● Aumentar a simplicidade para facilitar o entendimento
● Tornar os modelos mais próximos do mundo real
● Ter modelos simples para facilitar a manutenção e a evolução de
uma aplicação.
8
10. Cenários Típicos
(Inconsistências entre domínios)
CLIENTES
ID NOME CPF
1 MANOEL PIMENTEL 679.679-679-67
2 EMANUEL PIMENTEL 123.123.123-12
3 VITÓRIA PIMENTEL 456.456.456-45
FUNCIONARIOS
ID NOME CPF
1 MANOEL PIMENTEL 67967967967
2 EMANUEL PIMENTEL 12312312312
3 VITÓRIA PIMENTEL 45645645645
10
11. Cenários Típicos
(Inconsistências entre termos)
FORNECEDORES
ID_FORNECEDOR NOME_FORNECEDOR RUA BAIRRO CIDADE ESTADO
1 MANOEL PIMENTEL Fulana de Tal CENTRO São Paulo SP
2 EMANUEL PIMENTEL Presitente Coisa CENTRO São Paulo SP
3 VITÓRIA PIMENTEL General Morto CENTRO São Paulo SP
FABRICANTE
ID NOME ENDERECO CIDADE UF
1 MANOEL PIMENTEL Fulana de Tal,Centro São Paulo SP
2 EMANUEL PIMENTEL Presitente Coisa,Centro São Paulo SP
3 VITÓRIA PIMENTEL General Morto,Centro São Paulo SP
11
12. Cenários Típicos
(Arqueologia em Aplicações Legadas)
T001
C001 C002 C003 C004 C005
1 MANOEL PIMENTEL Fulana de Tal,Centro São Paulo SP
2 EMANUEL PIMENTEL Presitente Coisa,Centro São Paulo SP
3 VITÓRIA PIMENTEL General Morto,Centro São Paulo SP
12
17. Data Quality Refactorings
● Add Lookup Table
É uma mudança que melhora e/ou garante a
● Apply Standard Codes
coerência e uso dos valores
● Apply Standard Type armazenados no banco de dados.
● Consolidate Key Strategy
● Drop Column Constraint
● Drop Default Value
● Drop Non-Nullable Constraint
● Introduce Column Constraint
● Introduce Common Format
● Make Column Non-Nullable
● Move Data
17
19. Referential Integrity Refactorings
● Add Foreign Key Constraint
● Add Trigger for Calculated Column É uma mudança que assegura
que existe uma
● Drop Foreign Key Constraint cadeia referenciada dentro
● Introduce Cascading Delete de um contexto, de forma que garanta
as atualizações e remoções
● Introduce Hard Delete de maneira adequada.
● Introduce Soft Delete (Normalizações)
● Introduce Trigger for History
19
21. Architectural Refactorings
● Add Mirror Table
● Encapsulate Table With View
● Introduce Calculation Method
● Introduce Index
É uma mudança global que melhora o
● Introduce Read Only Table modo como as camadas
externas interagem com uma base
● Migrate Method From Database
de dados.
● Migrate Method to Database
● Replace Method(s) With View
● Replace View With Method(s)
21
23. Method Refactorings
● Add Parameter
● Consolidate Conditional Expression
● Decompose Conditional
● Extract Method
● Introduce Variable
É uma mudança que melhora a qualidade
● Parameterize Methods de uma procedure ou função.
● Remove Parameter
● Rename Method
● Reorder Parameters
● Split Temporary Variable
● Substitute Algorithm
23
24. Exemplo
Consolidate Conditional Expression
Antes
CREATE OR REPLACE FUNCTION GetAccount
( inAccountID IN NUMBER)
RETURN NUMBER;
AS
averageBalance := 0;
BEGIN
IF inAccountID > 10000 THEN
RETURN 0;
END IF; Depois
IF inAccountID = 123456 THEN CREATE OR REPLACE FUNCTION GetAccount
RETURN 0; ( inAccountID IN NUMBER)
END IF; RETURN NUMBER;
IF inAcountID = 987654 THEN AS
RETURN 0; averageBalance := 0;
END IF; BEGIN
-- Code to calculate the average balance IF inAccountID < 10000 ||
RETURN averageBalance; inAccountID = 123456 || inAcountID = 987654
END; THEN RETURN 0;
END IF;
-- Code to calculate the average balance
RETURN averageBalance;
END; 24
25. Aviso Importante:
Organização de SQL
SELECT CAMPO1,CAMPO2,CAMPO2,CAMPO3,CAMPO4,SUM(CAMPO5) FROM
TABELA1 T1 INNER JOIN TABELA2 T2 ON T1.CAMPO1=T2.CAMPO1 WHERE
T2.CAMPO2 LIKE 'A%'GROUP BY CAMPO1,CAMPO2,CAMPO2,CAMPO3,CAMPO4
ORDER BY CAMPO1
select
CAMPO1, CAMPO2, CAMPO2, CAMPO3, CAMPO4, SUM(CAMPO5)
from
TABELA1 T1
inner join TABELA2 T2 on T1.CAMPO1=T2.CAMPO1
where
T2.CAMPO2 LIKE 'A%'
group by
CAMPO1, CAMPO2, CAMPO2, CAMPO3, CAMPO4
order by 25
CAMPO1
26. Questões no FireBird
● Possilidade do uso de domínios
● Possibilidade de alterar os charsets e collations
● Uso de Tabelas Derivadas, Views, Functions, Procedures e Triggers
● Possibilidade de uso de Generators
● Ferramentas de apoio:
– IBOConsole e IBUtils.
26
27. Comparação entre bases
● Ferramentas:
– IBOConsole - Para extração dos arquivos de metadata.
– VIM (VI Improved for Windows) – Para comparação entre arquivos
27