O que é a normalização de bases de dados e como fazê-la?

Última atualização
01 jun 2023
Tempo de leitura
8 min
A normalização de uma base de dados

Aprenda a normalizar uma base de dados para armazenar a informação de maneira inteligente.

SQL para Análise de Dados

Economize R$320 na compra do seu curso. Use o código copied blog2024 e comece a aprender!

2 meses
12x de
R$ 142,17
(parcelas sem juros no cartão de crédito)
Investimento pelo curso completo
R$ 1.706
R$ 2.843
Inscreva-se no curso

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.

A normalização de bases de dados

Fonte: Freepik

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.

SQL

Fonte: Freepik

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.

Página inicial / Programação & Data
Walter Lencina

O conteúdo

SQL para Análise de Dados

Economize R$320 na compra do seu curso. Use o código copied blog2024 e comece a aprender!

2 meses
12x de
R$ 142,17
(parcelas sem juros no cartão de crédito)
Investimento pelo curso completo
R$ 1.706
R$ 2.843
Inscreva-se no curso
Compartilhe sua opinião
Notificar sobre comentários

Ou como convidado

Cadastre-se Cadastre-se Cadastre-se Cadastre-se Cadastre-se

Artigos Relacionados

11 nov 2024
5 min
Como calcular a raiz quadrada em Python: guia passo a passo

Aprenda a Calcular Raiz Quadrada em Python!

11 nov 2024
5 min
08 nov 2024
9 min
Desenvolvedor full stack: o que faz, habilidades e salário

Clique e conheça mais sobre Dev Fullstack.

08 nov 2024
9 min
07 nov 2024
7 min
Técnico de TI: o que faz, habilidades, salário e como se tornar um

Venha conhecer mais sobre técnico de TI.

07 nov 2024
7 min
04 nov 2024
8 min
Linguagem R: o que é e como aprender

Aprenda mais sobre R, a linguagem estatística, quais as aplicações e funções e como aprendê-la.

04 nov 2024
8 min
04 nov 2024
4 min
Como fazer comentários no código em Python: um guia completa para iniciantes

Como se tornar um analista de segurança da informação: salário, habilidades e mais

04 nov 2024
4 min
14 linguagens de programação mais difíceis de aprender

Será que a linguagem que você está aprendendo está entre as mais difíceis?

11 out 2024
5 min