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://www.ifc-camboriu.edu.br/~frozza/2011.1/IE10/IE10-BDD-Aula003-Normalizacao-Revisao.pdf