Conceito

Normalização é o processo que organiza os dados de uma tabela de um banco de dados, aplicado as regras de formas normais.Para executar o processo de normalização requer muita atenção, tendo que separar diferentes informações em diferentes tabelas para evitar redundâncias e inconsistências , pois o objetivo é melhorar a performance e facilitar a manutenção do banco de dados.

Definição de redundâncias e inconsistências:

Dados redundantes:Armazenamento repetitivo de dados, tem como consequência maior ocupação de dados de armazenamento no disco,afetando o desempenho do sistema e dificultado a manutença no banco de dados.
Dependência inconsistente : E quando um dado na esta no lugar apropriado na tabela , com isso a tabela fica bagunçada ,e durante o processo de procura de um determinado dado,ele pode estar ausente ou danificado .
Aplicação de normalização na Tabela
Não se pode misturar assuntos diferentes em uma mesma tabela , exemplo: na tabela de clientes, deve ficar somente em campos relacionados com o assunto clientes. Não se pode misturar junto com os pedidos ,,produtos e outras coisas . Isso pode gerar uma repetição sem necessidade em uma mesma tabela, virando uma dependência inconsistente.

Formas normais:

O Processo de normalização aplica uma série de regras sobre as tabelas de um banco de dados, para verificar se estas estão corretamente projetadas. Embora existam cinco formas normais , nos usamos um conjunto de três formas normais , das 5 formas.
3 tipos de formas normais
Conceito:

1FN – Primeira Forma Normal

Uma entidade estará na 1FN, se e somente se, todos seus atributos (colunas) forem atômicos, ou seja não conter grupos repetitivos ou colunas que tenham mais de um valor.

Passos a serem aplicados para consolidação da 1FN:

-Identificação da chave primária da tabela.
-Identificação da coluna que contem dados repetidos e removê-las.
-Criação de uma nova tabela com chave primária para armazenamento do dado repetido.
-Criar uma relação entre a tabela principal e a tabela secundária

Exemplo de normalização de dados. Primeira forma normal Considere a tabela cliente abaixo:

Cliente Código_cliente Nome

Telefone

Endereço

Agora a tabela com os dados:

imagem1

Tabela desnormalizada, ou seja, não está na 1ª forma normal

Todos os clientes possuem Rua, CEP e Bairro, e essas informações estão na mesma célula da tabela, logo ela não está na primeira forma normal. Para normalizar, deveremos colocar cada informação em uma coluna diferente, como no exemplo a seguir.

imagem 2

Tabela na primeira forma norma

Imagem 3

Tabela na primeira forma normal

Toda tabela não precisa obrigatoriamente ser normalizada com 1FN A normalização é um processo corretivo que deve ser aplicado em casos específicos onde o problema for identificado. Claro que tudo irá depender de como a análise dos dados foram feitas, mas um analista experiente, já a aplica a normalização por padrão.

2FN – Segunda Forma Normal
Uma entidade está na 2FN, se e somente se, estiver na 1FN e todos seus atributos (colunas) não chaves, dependam unicamente da chave primária. Se algum atributo depende de apenas uma parte da chave primária, isso é considerada uma violação da 2FN.

Passos a serem aplicados para consolidação da 2FN:

-Identificar colunas que não são funcionalmente dependentes da chave primária da tabela.

-Remover a coluna da tabela e criar uma nova tabela com esses dados.

Exemplo de segunda forma normal

Considere a tabela vendas abaixo:

Vendas

N_pedido

Código_produto

Produto

Quant

Valor_unit

Subtotal

Agora a tabela com os dados:

Imagem 4

Tabela não está na segunda forma normal

Analisando teremos:

O nome do produto depende do código do produto, porém não depende de N_pedido que é a chave primária da tabela, portanto não está na segunda forma normal. Isto gera problemas com a manutenção dos dados, pois se houver alteração no nome do produto teremos que alterar em todos os registros da tabela venda.

Para normalizar esta tabela teremos de criar a tabela Produto que ficará com os atributos Código_produto e produto e na tabela Venda manteremos somente os atributos N_pedido, código_produto, quant, valor_unit e subtotal. Veja o resultado abaixo:

Imagem 5

Tabela na segunda forma normal

Imagem 6

Tabela na 2ª forma normal

3FN – Terceira Forma Normal

Uma entidade está na 3FN, se e somente se, estiver na 2FN e todos os atributos (colunas) não chave, forem mutuamente independentes, isto é, não há dependência funcional entre elas, e todas dependem única e exclusivamente da chave primária de forma irredutível.

Passos a serem aplicados para consolidação da 3FN:

– Identificar as colunas que são funcionalmente dependentes das outras colunas não chave

– Remover essas colunas

Exemplo de normalização na terceira forma normal

Considere a tabela abaixo:

Imagem 7

Tabela não está na terceira forma normal

Considerando ainda a nossa tabela Venda, veremos que a mesma não está na terceira forma normal, pois o subtotal é o resultado da multiplicação Quant X Valor_unit, desta forma a coluna subtotal depende de outras colunas não-chave.

Para normalizar esta tabela na terceira forma normal teremos de eliminar a coluna subtotal, como no exemplo a seguir:

Imagem 8

Tabela na terceira forma normal

Bibliografia:

https://pt.wikipedia.org/wiki/Normaliza%C3%A7%C3%A3o_de_dados#Formas_Normais

http://www.luis.blog.br/normalizacao-de-dados-e-as-formas-normais.aspx

https://support.microsoft.com/pt-br/kb/283878

http://imasters.com.br/banco-de-dados/desnormalizacao-e-redundancia-controlada-em-bancos-de-dados-relacionais/?trace=1519021197&source=single

http://www.ifc-camboriu.edu.br/~frozza/2011.1/IE10/IE10-BDD-Aula003-Normalizacao-Revisao.pdf