|
|
| Linha 1: |
Linha 1: |
| == '''Conceito''' ==
| | = '''Conceito''' = |
| | <br> |
|
| |
|
| ===== '''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. ===== | | = Formas Normais = |
| Definição de redundâncias e inconsistências:
| | <br> |
|
| |
|
| ===== '''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. ===== | | = Exemplos = |
| | <br> |
|
| |
|
| ===== '''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 . ===== | | = Referências = |
| | | <br> |
| ===== '''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
| |