Artigo SQL Magazine 21 - Normalização
Artigo da Revista SQL Magazine - Edição 21.
Clique aqui para ler esse artigo em PDF.
Clique aqui para ler todos os artigos desta edição
Normalização
Manuel Antônio de Castro Júnior e Pablo Vieira Florentino
Armadilhas da modelagem de dados
Um esquema de banco de dados relacional deve representar atributos agrupados em tabelas, utilizando-se para isto, ou do bom senso do projetista da base de dados ou de um mapeamento a partir de um esquema conceitual de dados (ER, OO ou ER Estendido) para o modelo relacional. Estes modelos conceituais permitem ao projetista identificar os elementos que formarão o agrupamento lógico das tabelas com seus respectivos campos. Mesmo seguindo alguns procedimentos para realização do mapeamento entre modelos conceituais e modelo lógico relacional, ainda faz-se necessário algum tipo de avaliação formal no sentido de identificar esquemas de banco de dados mais bem projetados do que outros.
Para que esta avaliação possa ser realizada, uma técnica foi desenvolvida com o intuito de, dado um esquema de banco de dados, verificá-lo e transformá-lo para, assim, conceber esquemas de tabelas de dados com organização mais apropriada. Com esta verificação, almeja-se alcançar um esquema de dados formado por tabelas que possuam as propriedades desejáveis para o projeto relacional como distribuição uniforme dos dados sem redundâncias, facilidade de conservação da integridade de dados e de manutenção dos dados. Quando estas propriedades não se fazem presentes, alguns problemas podem ocorrer no banco de dados, como a perda da integridade e dificuldade de manutenção dos dados.
Para facilitar o entendimento dos passos a serem seguidos para uma modelagem de dados apropriada, serão abordados neste artigo alguns aspectos da normalização como: anomalias e problemas gerados por uma modelagem não apropriada, como implementar técnicas que corrijam o modelo da base de dados; como re-elaborar a modelagem para aumentar o desempenho de consultas à base de dados. Neste artigo também serão apresentados exemplos práticos de modelagens de dados não normalizados, com suas conseqüências negativas, e algumas abordagens práticas de aplicação do processo de normalização.
Engenharia reversa de dados
Outro aspecto importante sobre normalização é seu uso na engenharia reversa de dados. O termo engenharia reversa vem do fato de usar-se como ponto de partida do processo de engenharia um produto já implementado (modelo de implementação) para obter sua especificação (modelo conceitual).
A engenharia reversa pode ser utilizada com dois intuitos: Apenas construir a especificação do armazenamento de dados; ou facilitar o processo de reengenharia, onde um novo sistema será construído para substituir o sistema legado.
O conceito de normalização é vital para este processo, pois é o principal meio de detecção e eliminação das redundâncias de dados presentes nestes arquivos. Neste intuito, as regras de normalização são aplicadas aos arquivos do sistema e, uma vez normalizados, os diferentes esquemas resultantes da normalização de cada um destes é integrada, gerando o esquema relacional do banco de dados do sistema. Nesta etapa, informações comuns a diferentes esquemas devem ser identificadas para que seja representada somente uma vez.
Por fim, o esquema relacional desenvolvido é analisado e, através de regras de transformação reversa, este é convertido em um esquema conceitual. O resultado final da engenharia reversa de dados é, então, este esquema conceitual. Caso o objetivo seja construir um novo sistema, os diagramas conceitual e relacional são utilizados para construir o banco de dados relacional.
Problemas e anomalias
É possível citar como problemas comuns de integridade e manutenção dos dados:
·Redundância de dados;
·Inconsistência de dados;
·Anomalia de exclusão;
·Anomalia de inclusão;
·Anomalia de modificação.
Estes problemas serão descritos e exemplificados através do banco de dados ilustrado na Figura 1.
FUNCIONARIO_DEPARTAMENTO