O que é a normalização de bases de dados e como fazê-la?
Aprenda a normalizar uma base de dados para armazenar a informação de maneira inteligente.
Se você é um estudante universitário de ciências informáticas ou um profissional que trabalha no desenvolvimento de software, seguramente alguma vez deve ter escutado o termo “normalização de bases de dados”. A normalização é conhecida por melhorar a eficiência de uma base de dados para facilitar a gestão e a tomada de decisões. Neste artigo, vamos ver o que é a normalização de dados, por que ela é necessária e quais são seus benefícios.
O que é a normalização de uma base de dados?
Imagine uma base de dados tal como um arquivo gigante, no qual seja armazenada toda a informação de uma empresa: dados de clientes, pedidos, produtos, etc. Se esses dados não estiverem organizados corretamente, isto é, normalizados, vai ser difícil acessar os que são necessários.
A normalização classifica as informações, fazendo com que uma base de dados seja fácil de administrar e manter, o que resulta em sua maior eficiência e desempenho. Além disso, diminui a redundância de dados e elimina anomalias, o que permite evitar erros e garantir a consistência e integridade de dados.
É indispensável normalizar uma base de dados desde o momento em que ela for desenhada. À medida em que os dados se acumulam e as relações entre eles ficam mais complexas, se torna ainda mais crítico normalizar a base de dados.
Benefícios de normalizar bases de dados
A normalização de uma base de dados pode oferecer uma série de benefícios importantes:
- Eliminar a redundância em uma base de dados previne uma empresa de desperdiçar tempo e recursos. Por exemplo, se os dados de um cliente estão duplicados, isso pode levar ao envio do dobro de materiais de marketing.
- Na gestão de inventário, é primordial ter os dados de produtos precisos, atualizados e organizados para evitar a quebra de inventário, a sobrevenda e, como consequência, as perdas econômicas e a insatisfação do cliente.
- Ao segmentar os clientes dentro de uma base normalizada, uma empresa pode dirigir suas campanhas de marketing ao público específico. Isso aumenta a eficácia das estratégias de marketing, já que elas serão mais pontuais.
- Automatizar operações em vez de manipular dados manualmente facilita a administração e a análise de dados, tanto quanto reduz custos em recursos humanos, já que os colaboradores se concentram em tarefas mais estratégicas.
Formas normais e regras
Para normalizar uma base de dados são aplicadas regras. As regras são usadas para identificar e eliminar as redundâncias e anomalias nos dados. Cada regra transforma os dados em uma estrutura determinada, chamada de forma normal.
Existem até oito formas normais ao total, mas as três primeiras são aquelas que devem ser consideradas.
Primeira forma normal (1FN)
1FN assegura que não haja informações repetidas em uma tabela e organiza os dados em grupos lógicos.
Cada tabela em 1FN tem uma chave primária única que identifica cada fila da tabela. A chave primária pode ser composta por uma ou mais colunas da tabela. Cada coluna pode ter um só valor.
Cada célula da tabela deve ter um valor atômico, isto é, este não pode ser dividido.
Segunda forma normal (2FN)
2FN serve para que cada coluna se relacione diretamente com sua chave primária e não dependa de outra coluna. Se houver informações que pertençam a registros múltiplos, deve-se criar uma nova tabela para evitar a repetição de dados.
Cada atributo de uma tabela deve depender da chave primária. Isso significa que se uma tabela tiver uma chave primária composta por várias colunas, cada atributo na tabela deverá estar diretamente relacionado com todas as colunas da chave primária. Se um atributo estiver relacionado somente com uma parte da chave primária, deverá ser eliminado da tabela e colocado em uma nova tabela separada.
A segunda forma normal se aplica somente depois que a primeira tiver sido realizada. Se uma tabela já cumpre com os requisitos de 1FN, pode-se verificar se ela também está alinhada com os de 2FN.
Terceira forma normal (3FN)
3FN cria tabelas adicionais para separar campos que não dependem da chave primária, mas estão relacionados com outros campos.
Se um atributo não chave depender de outro atributo não chave, deve ser eliminado da tabela e colocado em uma nova tabela separada.
Exemplo da normalização de uma base de dados
Vejamos um exemplo de como normalizar uma base de dados de uma loja online com três tabelas: Clientes, Pedidos e Detalhes do pedido.
Primeira forma normal (1FN)
Em primeiro lugar, vamos garantir que cada tabela tenha uma chave primária única. Para a tabela Clientes, poderíamos usar o número de identificação do cliente (ID_Cliente) como chave primária. Para a tabela Pedidos, usaremos o número de identificação do pedido (ID_Pedido). Para a tabela Detalhes do pedido, será uma combinação das chaves primárias das outras duas tabelas (ID_Cliente e ID_Pedido).
Tabela Clientes (1FN):
- ID_Cliente
- Nome
- Sobrenome
- Endereço
- Cidade
- Código postal
Tabela Pedidos (1FN):
- ID_Pedido
- Data
- ID_Cliente
- Total
Tabela Detalhes do pedido (1FN):
-
- ID_Cliente
- ID_Pedido
- Produto
- Quantidade
- Preço
Segunda forma normal (2FN)
Temos que garantir que todas as colunas de cada tabela dependam completamente da chave primária. Na tabela Detalhes do pedido, a coluna Produto não depende completamente da chave primária, já que vários pedidos podem conter o mesmo produto. Portanto, precisamos criar uma nova tabela para armazenar informação sobre os produtos.
Tabela Produtos (2FN):
- ID_Producto
- Nome
- Descrição
- Preço
Agora podemos eliminar a coluna Produto da tabela Detalhes do pedido e substituí-la por uma coluna ID Produto.
Tabela Detalhes do pedido (2FN):
-
- ID_Cliente
- ID_Pedido
- ID_Produto
- Quantidade
- Preço
Terceira forma normal (3FN)
Temos que garantir que não haja dependências transitivas nas tabelas. Na tabela Detalhes do pedido, a coluna Preço depende da coluna ID_Produto, mas também depende indiretamente da coluna Quantidade. Portanto, precisamos criar uma nova tabela para armazenar informações sobre o preço de cada produto em um momento determinado.
Tabela Preços (3FN):
- ID_Produto
- Data
- Preço
Podemos eliminar a coluna Preço da tabela Detalhes do pedido e substituí-la por uma consulta para recuperar o preço atual do produto na tabela de preços.
Tabela Detalhes do pedido (3FN):
- ID_Cliente
- ID_Pedido
- ID_Produto
- Quantidade
E, dessa maneira, temos nossas tabelas normalizadas:
Tabela Clientes:
- ID_Cliente
- Nome
- Sobrenome
- Endereço
- Cidade
- Código postal
Tabela Pedidos:
- ID_Pedido
- Data
- ID_Cliente
- Total
Tabela Detalhes do pedido:
- ID_Cliente
- ID_Pedido
- ID_Produto
- Quantidade
Tabela Produtos:
- ID_Producto
- Nome
- Descrição
- Preço
Tabela Preços:
- ID_Produto
- Data
- Preço
A tabela Preços se relaciona com a tabela Produtos através da chave primária e a chave exterior ID_Produto, e armazena o preço de cada produto em um dado momento. Desta maneira, a tabela Detalhes do pedido apenas precisa armazenar as colunas ID_Produto e Quantidade de cada produto, e a informação sobre o preço pode-se recuperar mediante consulta à tabela Preços. Esta estrutura permite evitar a redundância de dados e garantir a integridade da informação.
Conclusão
- A normalização de bases de dados reduz a redundância, minimiza anomalias e permite alcançar um melhor desempenho da base de dados.
- Não é um processo genérico que possa ser aplicado a todas as bases de dados. Cada base de dados é única, motivo pelo qual deve-se determinar o grau de normalização dependendo dos requisitos de cada uma.
- Deve ser uma parte essencial da estratégia de gestão de dados de qualquer empresa ou organização que lide com grandes quantidades de informação.
Se você precisa construir uma base de dados, SQL é uma ferramenta ideal: ela permite organizar e administrar dados, o que é fundamental para qualquer pessoa que trabalhe com informação. Para conhecer as possibilidades dessa linguagem de programação e dominá-la profissionalmente, convidamos você a fazer o curso online de SQL para Analista de Dados da EBAC. Em 2 meses você aprenderá a criar scripts para selecionar, filtrar, adicionar, unir e analisar dados, bem como automatizar tarefas de gestão de bases de dados. Você pode estudar no seu próprio ritmo, com tarefas práticas e atenção personalizada de nossos tutores. Ao concluir o curso, você obterá o certificado que aumentará as suas oportunidades de emprego no campo da tecnologia da informação.
Receba artigos do blog, acompanhe as últimas notícias da EBAC e fique por dentro das novidades!