Artigo SQL Magazine 60 - Refatoração em Banco de Dados
Artigo publicado Revista SQL Magazine 60.
Clique aqui para ler esse editorial em PDF
Modelagem de Dados
Refatoração em Bancos de Dados
A refatoração de código fonte é um processo já bastante comum em ambientes de desenvolvimento de software. Trata-se de uma maneira padronizada de reestruturação de código, feito em pequenos passos. Este processo possibilita uma visão evolucionária sobre o processo de programação, possibilitando contínuas alterações com agilidade e rapidez.
A refatoração de banco de dados é um processo similar, porém, como o próprio nome diz, aplicado a sistemas de bancos de dados. Neste caso, trata-se de uma alteração no esquema do banco, visando alguma melhoria ou agregação de nova funcionalidade, sem, contudo, alterar seu comportamento ou semântica. Nesta alteração podem estar incluídos os mais diversos tipos de objetos como tabelas, visões, funções, procedimentos, gatilhos e seqüências. Por exemplo, a adição de uma coluna é um processo de refatoração bastante conhecido.
Para refatorar um banco de dados, normalmente é necessário rodar um script DDL. A complexidade deste script irá variar de acordo com o tipo de processo a ser empregado, e o número de objetos que dependem do objeto a ser refatorado.
Por exemplo, a adição de uma nova coluna a uma tabela não traz a princípio nenhum impacto sobre os demais objetos, pois trata-se de um novo objeto, que ainda não referencia e não é referenciado por nenhum outro.
Já a remoção da coluna, ao contrário do exemplo anterior, pode trazer grande impacto sobre outros objetos. Caso a coluna a ser removida participe de alguma chave primária ou estrangeira, ou faça parte de uma visão, todos estes objetos dependentes terão que ser também removidos ou remanejados. Essas alterações se tornam necessárias para evitar que o comportamento ou semântica do restante do esquema do banco seja corrompido.
Se ao invés de remover a coluna, o objetivo fosse deslocá-la para outra tabela, além do remanejamento de chaves, também se tornaria necessário migrar os dados da coluna antiga para a coluna nova. Em muitos casos essa migração não poderá ser efetuada usando recursos do SGBD, sendo necessário recorrer a soluções em nível de aplicação.
Alguns processos de refatoração podem ser executados com o auxílio de ferramentas CASE. No entanto, o suporte é limitado para processos mais complexos, especialmente aqueles que envolvem remanejamento de chaves e/ou migração de dados. Assim, os profissionais responsáveis pela alteração vêem-se obrigados a realizar o levantamento das dependências e do eventual impacto sobre outros objetos e codificar manualmente todas as alterações.
Neste artigo analisaremos alguns processos de refatoração de banco de dados. Como no total existem muitos processos, não será possível mostrar exemplos de todos. Assim, mostraremos alguns dos processos mais utilizados.
Para cada processo mostraremos uma situação que comprova que o seu uso por vezes se faz necessário. Além disso, cada exemplo será acompanhado de implementações que podem ser usadas para executar o processo. A codificação dos exemplos seguirá a sintaxe do banco de dados POSTGRESQL, um banco de dados open source muito utilizado atualmente.
" [...] continue lendo...
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo