Atenção: esse artigo tem um vídeo complementar. Clique e assista!
O objetivo deste artigo é introduzir os conceitos de normalização da estrutura de dados e explicar de uma forma clara e objetiva a maneira de se aplicar isto no momento da elaboração dos modelos de dados.
Com base nos exemplos aqui descritos será possível entender facilmente a melhor maneira de se usar cada conceito no dia-a-dia.
Em qual situação o tema torna-se útil
A normalização deve ser usada sempre que uma nova demanda apontar a necessidade de criação de um novo projeto, ou mesmo na manutenção das estruturas de dados já existentes em sua empresa.
Resumo DevMan
Este artigo foi elaborado para os profissionais que, de alguma maneira, têm a responsabilidade de manter e manipular as estruturas de dados da empresa.
A ideia é passar de forma simples algumas dicas de como modelar dados e as principais regras de normalização.
O artigo vai ajudar, principalmente, as pessoas que não possuem conhecimento nesta técnica e irá reforçar alguns conceitos para os profissionais que já possuem experiência no processo de modelagem de dados relacional.
O uso correto das normas irá agregar qualidade no resultado final do sistema, melhorar o desempenho da base de dados e evitar redundâncias.
Atualmente é muito comum encontrar sistemas com diversos problemas de performance decorrentes de uma modelagem de dados incorreta, com muita redundância e com o negócio mau planejado.
Na maioria das vezes, os problemas na estrutura de dados são tão complexos de serem solucionados que a alternativa mais viável é construir um novo sistema ou comprar algo pronto no mercado, abandonando o atual.
Mas quais são os fatores negativos que contribuem para um retrabalho tão grande?
Em muitos casos o sistema começa a ser planejado pela codificação, ou seja, ao invés de se desenhar o negócio no modelo de dados, o foco é o desenvolvimento, e desta forma, as tabela, colunas, relacionamentos e etc., são criados para atender o código e não o inverso.
Então, a melhor opção para aumentar a qualidade da aplicação é criar um modelo de dados que contemple todo o negócio, e para isso, é necessário utilizar as regras de normalização.
A normalização se refere a um conjunto de regras de modelagem de dados (ler Nota DevMan 1), que tem por objetivo reduzir os problemas de lógica, auxiliar no desenvolvimento de software, deixando a leitura da estrutura de dados mais fácil, contribuindo assim para melhoria na performance dos sistemas e, principalmente, evitar a redundância.
Um banco de dados é projetado para armazenar os dados. A este projeto damos o nome de modelo de dados, que é uma tarefa do arquiteto de dados. É através da modelagem de dados que serão definidas quais as tabelas com seus respectivos campos e os relacionamentos entre essas tabelas.
Existem várias regras na normalização, mas utilizando a 1FN, 2FN e 3FN (ler Nota DevMan 2) é possível atingir um grau muito elevado de maturidade no modelo de dados.
Para construirmos nosso modelo de dados normalizado, vamos iniciar com o modelo lógico e depois, partimos para o modelo físico. O modelo lógico de dados já leva em conta algumas limitações e implementa recursos como adequação de padrão e nomenclatura. Além disto, neste modelo definimos as chaves primárias e estrangeiras. Já no modelo físico de dados fazemos a modelagem física do modelo de banco de dados. Levamos em conta as limitações impostas pelo SGBD escolhido e deve ser criado sempre com base nas definições feitas no modelo lógico de dados.
1FN = Primeira Forma Normal
2FN = Segunda Forma Normal
3FN = Terceira Forma Normal
Entendimento do negócio
O primeiro passo para se obter sucesso na construção de um modelo de dados normalizado é conhecer o negócio e as regras que devem ser projetadas.
...