Sobes.tech
Junior

O que é normalização numa base de dados?

sobes.tech IA

Resposta da IA

A normalização de bases de dados é o processo de organizar os dados numa base de dados relacional com o objetivo de reduzir a redundância (duplicação de dados) e melhorar a integridade dos dados. Isto é conseguido dividindo tabelas grandes em tabelas menores e definindo relações entre elas.

O objetivo principal da normalização:

  • Reduzir a redundância de dados: Evitar a repetição da mesma informação em diferentes locais.
  • Melhorar a integridade dos dados: Garantir a precisão e coerência dos dados.
  • Proporcionar flexibilidade: Facilitar alterações e ampliações na estrutura da base de dados.

A normalização é definida por um conjunto de regras chamadas formas normais. As três primeiras formas normais são as mais comuns:

  1. Primeira forma normal (1FN):

    • Cada coluna da tabela deve conter valores atómicos (indivisíveis).
    • Não deve haver grupos repetitivos de colunas.
    • Cada linha deve ser única (através da chave primária).
  2. Segunda forma normal (2NF):

    • A tabela está em 1FN.
    • Todos os atributos não-chave dependem completamente da chave primária (se for composta). Não há dependências parciais.
  3. Terceira forma normal (3NF):

    • A tabela está em 2NF.
    • Não há dependências transitivas. Os atributos não-chave não dependem de outros atributos não-chave.

Existem formas normais mais altas (BCNF, 4NF, 5NF, 6NF), mas geralmente considera-se que a 3NF é suficiente para a maioria dos propósitos práticos.

Exemplo (simplificado):

Tabela não normalizada de pedido de cliente:

ID de Pedido Nome do Cliente Endereço do Cliente Produtos Quantidade Preço por unidade
101 Ivan Moscovo Portátil 1 50000
101 Ivan Moscovo Rato 2 1000
102 Maria São Petersburgo Teclado 1 3000

Após normalização (por exemplo, até à 3NF):

Tabela de Encomendas:

ID de Encomenda ID de Cliente Data da Encomenda
101 1 2023-10-26
102 2 2023-10-26

Tabela de Clientes:

ID de Cliente Nome do Cliente Endereço do Cliente
1 Ivan Moscovo
2 Maria São Petersburgo

Tabela de Detalhes da Encomenda:

ID de Detalhe da Encomenda ID de Encomenda ID de Produto Quantidade Preço por unidade
1 101 10 1 50000
2 101 20 2 1000
3 102 30 1 3000

Tabela de Produtos:

ID de Produto Nome do Produto
10 Portátil
20 Rato
30 Teclado

A desnormalização é o processo inverso da normalização, às vezes utilizada para otimizar o desempenho de leitura de dados ao custo de aumentar a redundância.