Normalização

Definição - o que significa normalização?

Normalização é o processo de reorganização de dados em um banco de dados para que atendam a dois requisitos básicos:

  1. Não há redundância de dados, todos os dados são armazenados em um único lugar.
  2. As dependências de dados são lógicas, todos os itens de dados relacionados são armazenados juntos.

A normalização é importante por vários motivos, mas principalmente porque permite que os bancos de dados ocupem o mínimo de espaço em disco possível, resultando em um melhor desempenho.

A normalização também é conhecida como normalização de dados.

Definirtec explica normalização

O primeiro objetivo durante a normalização de dados é detectar e remover todos os dados duplicados, agrupando logicamente as redundâncias de dados. Sempre que um dado depende de outro, os dois devem ser armazenados próximos a esse conjunto de dados.

Ao eliminar todas as anomalias e organizar os dados não estruturados em uma forma estruturada, a normalização melhora muito a usabilidade de um conjunto de dados. Os dados podem ser visualizados com mais facilidade, os insights podem ser extraídos com mais eficiência e as informações podem ser atualizadas com mais rapidez. Conforme as redundâncias são mescladas, o risco de erros e duplicatas, tornando os dados ainda mais desorganizados, é reduzido. Além de tudo isso, um banco de dados normalizado ocupa menos espaço, eliminando muitos problemas de espaço em disco e aumentando seu desempenho geral significativamente.

Os três tipos principais de normalização estão listados abaixo. Nota: "NF" refere-se à "forma normal".

Primeira forma normal (1NF)

As tabelas em 1NF devem seguir algumas regras:

  • Cada célula deve conter apenas um único valor (atômico).

  • Cada coluna da tabela deve ter um nome exclusivo.

  • Todos os valores em uma coluna devem pertencer ao mesmo domínio.

Segunda forma normal (2NF)

As tabelas em 2NF devem estar em 1NF e não ter nenhuma dependência parcial (por exemplo, cada atributo não principal deve ser dependente da chave primária da tabela).

Terceira forma normal (3NF)

As tabelas em 3NF devem estar em 2NF e não ter dependências funcionais transitivas na chave primária.

As duas NFs a seguir também existem, mas raramente são usadas:

Forma normal de Boyce-Codd (BCNF)

Uma versão superior do 3NF, a forma normal de Boyce-Codd, é usada para resolver as anomalias que podem resultar se houver mais de uma chave candidata. Também conhecido como 3.5 Normal Form, o BCNF deve estar em 3NF e em todas as dependências funcionais (X → Y), X deve ser uma superchave.

Quarta forma normal (4NF)

Para uma tabela em 4NF, ela deve estar em BCNF e não ter uma dependência com vários valores.

Os três primeiros NFs foram derivados no início dos anos 1970 pelo pai do modelo de dados relacional, EF Codd. Quase todos os mecanismos de banco de dados relacional de hoje usam suas regras.

Alguns mecanismos de banco de dados relacional não atendem estritamente aos critérios de todas as regras de normalização. Um exemplo é o recurso de campos de vários valores introduzido pela Microsoft no aplicativo de banco de dados Access 2007. Tem havido um acalorado debate nos círculos de banco de dados sobre se esses recursos agora desqualificam esses aplicativos de serem verdadeiros sistemas de gerenciamento de banco de dados relacional.