De que se trata o artigo:

Aborda a melhoria da estrutura de bancos de dados, através da aplicação de técnicas de refatoração, tendo por objetivo apresentá-las e detalhá-las. Neste sentido, este artigo visa auxiliar no aprimoramento da estrutura de bancos de dados, sem a adição de novas funcionalidades e sem nenhuma alteração das funcionalidades já existentes ou da semântica informacional, apresentando as técnicas de refatoração estrutural que podem auxiliar nessa tarefa.


Em que situação o tema é útil:

O tema apresenta soluções para os problemas relacionados a desempenho e qualidade dos dados armazenados no banco de dados, considerando que atualmente os mesmos estão com um volume cada vez maior de registros devido ao êxito dos aplicativos disponíveis no mercado.

Resumo DevMan:

A refatoração de um banco de dados consiste em uma melhoria junto a sua estrutura, onde se aprimora o projeto sem a adição de novas funcionalidades e sem alteração das funcionalidades já existentes ou da semântica informacional. Neste contexto, inicialmente este artigo apresenta as principais diferenças entre a refatoração de código fonte e a refatoração de banco de dados. A seguir, são citadas as categorias de refatoração de banco de dados existentes. É enfatizada a refatoração estrutural, sendo apresentadas as dezessete técnicas existentes e, na sequência, estas são aplicadas em um exemplo prático. Ao final são apresentadas algumas considerações sobre o uso da refatoração estrutural em banco de dados, abordando suas principais vantagens.

Autores: Humberto Luiz de Oliveira Dalpra e Marco Antônio Pereira Araújo

Com o passar do tempo, tornou-se notório que a maioria dos bancos de dados depara-se, a curto ou longo prazo, com problemas relacionados a desempenho ou qualidade dos dados armazenados. O êxito de aplicativos, tais como ERPs (Enterprise Resource Planning, ou Sistemas Integrados de Gestão Empresarial) antigos, trouxe consigo a necessidade de lidar com volumes de dados para os quais não haviam sido concebidos, onde se faz necessário maior investimento até que um novo aplicativo seja posto em produção. Neste ponto, em geral, adota-se como solução a aquisição de novo hardware, onde também poderia ser considerada a possibilidade de refatoração junto ao banco de dados, a qual pode trazer benefícios tais como a melhoria do desempenho e da qualidade dos dados armazenados no banco.

A refatoração de um banco de dados consiste em uma melhoria junto a sua estrutura, onde se aprimora o projeto sem a adição de novas funcionalidades e sem alteração das funcionalidades já existentes ou da semântica informacional (AMBLER, 2003). Refatorar um banco de dados introduz uma fase intermediária necessária entre o ajuste e as correções, onde se propõe a realização dos processos de maneira diferente com ganho significativo em eficiência, em comparação com a mesma aplicação no passado.

Há uma diferença crucial entre refatoração e adição de nova funcionalidade. Na refatoração busca-se uma melhora da estrutura existente, já ao inserir uma nova funcionalidade adiciona-se uma nova estrutura. Em alguns casos pode ser necessário refatorar o banco de dados para posteriormente inserir uma nova funcionalidade, ou então se pode identificar a necessidade de refatorar a nova funcionalidade inserida junto ao banco. Sendo assim, conclui-se que refatoração e adição de novas funcionalidades são coisas distintas, porém complementares.

Segundo Ambler e Sadalage (2006), a refatoração em banco de dados pode ser dividida em seis categorias principais, a saber: Refatoração Estrutural, Refatoração de Qualidade dos Dados, Refatoração de Integridade Referencial, Refatoração Arquitetural, Refatoração de Método e Transformações. Este artigo abordará a categoria Estrutural, devido à maior abrangência e aplicabilidade das respectivas refatorações junto ao banco de dados utilizado e na qual se enquadram alterações na estrutura das tabelas do esquema do banco de dados. As refatorações estruturais são: Dividir Coluna, Dividir Tabela, Excluir Coluna, Excluir Tabela, Excluir Visão, Introduzir Chave Substituta, Introduzir Coluna Calculada, Mesclar Colunas, Mover Coluna, Mesclar Tabelas, Renomear Coluna, Renomear Tabela, Renomear Visões, Substituir Chave Substituta por Chave Natural, Substituir Coluna, Substituir campo complexo por Tabela e Substituir um para muitos com Tabela Associativa.

Inicialmente, este artigo apresenta as principais diferenças entre a refatoração de código fonte e a refatoração de banco de dados. A seguir, são citadas as categorias de refatoração de banco de dados existentes. É enfatizada a refatoração estrutural, sendo apresentadas as dezessete técnicas existentes e, na sequência, estas são aplicadas em um exemplo prático. Ao final são apresentadas algumas considerações sobre o uso da refatoração estrutural em banco de dados, abordando suas principais vantagens.

Diferenças entre a refatoração de código fonte e a refatoração de banco de dados

A refatoração de código fonte é um processo bastante comum em ambientes de desenvolvimento de software. Possibilita uma visão evolucionária do processo de programação, permitindo contínuas alterações com agilidade e rapidez.

A refatoração consiste em melhorar a estrutura ou legibilidade de um software ou de um sistema de software sem que seu comportamento seja alterado. O processo de refatoração foi inicialmente utilizado por desenvolvedores que se utilizavam da linguagem de programação orientada a objetos Smalltalk. Posteriormente tornou-se essencial no desenvolvimento de frameworks, já que estes, em geral, não ficam totalmente prontos em uma primeira tentativa, tendo evolução no decorrer do tempo. Como o código será lido e modificado com certa frequência, a refatoração torna-se imprescindível. Usando refatoração, um projeto ruim ou caótico pode ser transformado em algo bem projetado. A junção de pequenas alterações melhora radicalmente o projeto (FOWLER, 2000).

...
Quer ler esse conteúdo completo? Tenha acesso completo