Sobes.tech
Middle

O que é normalização?

sobes.tech IA

Resposta da IA

A normalização de dados no contexto de bases de dados é o processo de organizar os dados para reduzir a redundância e melhorar a integridade dos dados. Isso é alcançado dividindo tabelas grandes em tabelas menores e relacionando-as.

Objetivo principal:

  • Eliminar a duplicação de dados.
  • Melhorar a integridade dos dados (evitar anomalias de inserção, atualização e eliminação).
  • Aumentar a eficiência do armazenamento e das consultas (em alguns casos).

O processo de normalização baseia-se nos princípios das formas normais (FN). As mais comuns são:

  • Primeira forma normal (1FN): Atomicidade dos dados nas células, ausência de grupos repetitivos de colunas.
  • Segunda forma normal (2FN): Está na 1FN e cada atributo não-chave depende totalmente de toda a chave primária.
  • Terceira forma normal (3FN): Está na 2FN e não há dependências funcionais transitivas de atributos não-chave da chave primária através de outros atributos não-chave.

Exemplo:

Tabela original "Encomendas_Produtos":

ID Encomenda Data Encomenda ID Produto Nome do Produto Preço do Produto Quantidade Nome do Cliente Endereço do Cliente
1 2023-10-27 101 Telefone 500 1 Ivan Pétrov Rua Pushkina, 10
1 2023-10-27 102 Fones de ouvido 100 2 Ivan Pétrov Rua Pushkina, 10
2 2023-10-27 101 Telefone 500 1 Maria Ivanova Rua Lermontova, 5

Após normalização (até 3FN):

Tabela "Encomendas":

ID Encomenda Data Encomenda ID Cliente
1 2023-10-27 1
2 2023-10-27 2

Tabela "Linhas de Encomenda":

ID Linha ID Encomenda ID Produto Quantidade
1 1 101 1
2 1 102 2
3 2 101 1

Tabela "Produtos":

ID Produto Nome do Produto Preço do Produto
101 Telefone 500
102 Fones de ouvido 100

Tabela "Clientes":

ID Cliente Nome do Cliente Endereço do Cliente
1 Ivan Pétrov Rua Pushkina, 10
2 Maria Ivanova Rua Lermontova, 5

No entanto, uma normalização excessiva pode levar ao aumento do número de junções (JOIN) ao executar consultas, o que pode diminuir o desempenho. Portanto, ao projetar bancos de dados, muitas vezes busca-se um equilíbrio entre o grau de normalização e o desempenho. A desnormalização é o processo de violar intencionalmente as formas normais para melhorar o desempenho, geralmente adicionando redundância.