(32 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 1: Linha 1:
[[Arquivo:Exemplo.jpg]]== '''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. =====
* Normalização é um processo no qual se aplicam regras a todas as tabelas de um banco de dados
Definição de redundâncias e inconsistências:
* Objetivo: evitar falhas no projeto, exemplos:
*** Redundância de dados
*** Mistura de diferentes assuntos numa mesma tabela
*** Ineficiência no uso das tabelas
<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. =====
= Formas Normais =
* Sequência de passos que podem ser aplicados a uma proposta inicial de um DER de forma que posteriormente teremos um padrão normalizado
<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 . =====
* '''1a. Forma Normal - 1FN'''
** Uma tabela estará na 1FN se não houver grupo de dados repetidos, isto é, se todos os domínios onde os  valores estão armazenados são únicos.  Em outras palavras podemos definir que a primeira forma normal não admite repetições ou campos que tenha mais que um valor.   
** Para se aplicar a 1FN é necessário 
*** 1 - Identificar a chave(endereço) primaria da entidade
*** 2 - Identificar o grupo repetitivo e removê-lo da entidade
*** 3 - Criar uma nova entidade com a chave da entidade anterior e o grupo repetitivo. 
<br>


===== '''Aplicação de normalização na Tabela''' =====
* '''2a. Forma Normal - 2FN''''
** Uma tabela estará na 2FN se ela estiver na 1FN e todos os atributos não chave forem totalmente dependentes da chave primária.   
** Para se aplicar a 2FN é necessário:   
*** 1 - Identificar os atributos não dependentes de toda a chave primária
*** 2 - Remover da entidade todos esses atributos identificados e criar uma nova entidade com eles. 
<br>


===== 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. =====
* '''3a. Forma Normal - 3FN''''
** Uma tabela está na Terceira Forma Normal 3FN se ela estiver na 2FN e se nenhuma coluna não-chave depender de outra coluna não-chave. Na 3FN nenhum campo é resultado da relação de  outros campos.  
** Para se aplicar a 3FN é necessário:
*** 1 - Identificar todos os atributos que são funcionalmente dependentes de outros atributos não chave
*** 2 - Removê-los.
<br>


'''Formas normais:'''
= Exemplos =
<br>


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.''
* 1FN:
* Antes:
{| class="wikitable"
!chave
!nome
!endereço
|-
|U001
|matheus
|av. floriano peixoto bairro umuarama
|-
|U002
|vitor
|av. rondon pacheco  bairro saraiva
|-
|U003
|rafael
|av. brasil  bairro Brasil
|}
<br>


3 tipos de formas normais
* Depois:
{| class="wikitable"
!chave
!nome
!rua/av
!bairro
|-
|U001
|matheus
|av. floriano peixoto
| umuarama
|-
|U002
|vitor
|av. Rondon Pacheco
| Saraiva
|-
|U003
|rafael
|av. Brasil
| Brasil
|}


Primeira Forma Normal (1FN)
<br>
* 2FN.
<br>


Segunda Forma Normal (2FN)
* Antes:


Terceira Forma Normal (3FN)
{| class="wikitable"
!N_Pedido
!Codigo_produto
!produto
!Qtd
!unidade
!subtotal
|-
|1
|P01
|mesa
|5
|200
|1000
|-
|2
|P02
|cadeira
|5
|100
|500
|-
|3
|P03
|computador
|5
|500
|2500
|}
* <br>Depois:
{| class="wikitable"
!N_Pedido
!Codigo_produto
!Qtd
!unidade
!subtotal
|-
|1
|P01
|5
|200
|1000
|-
|2
|P02
|5
|100
|500
|-
|3
|P03
|5
|500
|2500
|}
{| class="wikitable"
!codigo_produto
!produto
|-
|P01
|mesa
|-
|P02
|cadeira
|-
|P03
|computador
|}
* 3FN.
* Depois:
{| class="wikitable"
!n_pedido
!codigo_produto
!qtd
!unidade
|-
|1
|P01
|5
|100
|-
|2
|P02
|5
|200
|-
|3
|P03
|5
|300
|}
<br>


'''Conceito de cada forma:'''
= Exercícios =
<br>


1FN – Primeira Forma Normal
* 1. Normalizar as tabelas definidas na última aula
 
* 2. Abrir software DIA online ou outro que crie diagramas
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.
* 3. Criar DER usado o software
Passos a serem aplicados para consolidação da 1FN:
* 4. Gerar PDF
– Identificação da chave primária da tabela.
* 5; Enviar para email luiz.theodoro@ufu.br
– Identificação da coluna que contem dados repetidos e removê-las.
** Prazo: 17/11 - 23 hs.
– 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:
[[Arquivo:imagemtrabalho111.gif]]
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:
[[Arquivo:imagemtrabalho112.gif]]
Tabela na primeira forma normal
[[Arquivo:imagemtrabalho113.gif]]
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.
 
 
 
'''Segunda forma normal''' trata destas anomalias e evita que valores fiquem em redundância no banco de dados.
 
1) Identificar os atributos que não são funcionalmente dependentes de toda a chave primária:
 
2) Remover da entidade todos esses atributos identificados e criar uma nova entidade com eles.
 
A chave primária da nova entidade será o atributo do qual os atributos do qual os atributos removidos são funcionalmente dependentes.
 
'''Terceira forma normal''' temos de eliminar aqueles campos que podem ser obtidos pela equação de outros campos da mesma tabela.
 
Procedimentos
 
1) Identificar todos os atributos que são funcionalmente dependentes de outros atributos não chave
 
2) Removê-los.
 
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

Edição atual tal como às 23h59min de 16 de novembro de 2017

Conceito


  • Normalização é um processo no qual se aplicam regras a todas as tabelas de um banco de dados
  • Objetivo: evitar falhas no projeto, exemplos:
      • Redundância de dados
      • Mistura de diferentes assuntos numa mesma tabela
      • Ineficiência no uso das tabelas


Formas Normais

  • Sequência de passos que podem ser aplicados a uma proposta inicial de um DER de forma que posteriormente teremos um padrão normalizado


  • 1a. Forma Normal - 1FN
    • Uma tabela estará na 1FN se não houver grupo de dados repetidos, isto é, se todos os domínios onde os valores estão armazenados são únicos. Em outras palavras podemos definir que a primeira forma normal não admite repetições ou campos que tenha mais que um valor.   
    • Para se aplicar a 1FN é necessário:  
      • 1 - Identificar a chave(endereço) primaria da entidade
      • 2 - Identificar o grupo repetitivo e removê-lo da entidade
      • 3 - Criar uma nova entidade com a chave da entidade anterior e o grupo repetitivo. 


  • 2a. Forma Normal - 2FN'
    • Uma tabela estará na 2FN se ela estiver na 1FN e todos os atributos não chave forem totalmente dependentes da chave primária.  
    • Para se aplicar a 2FN é necessário:  
      • 1 - Identificar os atributos não dependentes de toda a chave primária
      • 2 - Remover da entidade todos esses atributos identificados e criar uma nova entidade com eles. 


  • 3a. Forma Normal - 3FN'
    • Uma tabela está na Terceira Forma Normal 3FN se ela estiver na 2FN e se nenhuma coluna não-chave depender de outra coluna não-chave. Na 3FN nenhum campo é resultado da relação de  outros campos.
    • Para se aplicar a 3FN é necessário:
      • 1 - Identificar todos os atributos que são funcionalmente dependentes de outros atributos não chave
      • 2 - Removê-los.


Exemplos


  • 1FN:
  • Antes:
chave nome endereço
U001 matheus av. floriano peixoto bairro umuarama
U002 vitor av. rondon pacheco bairro saraiva
U003 rafael av. brasil bairro Brasil


  • Depois:
chave nome rua/av bairro
U001 matheus av. floriano peixoto umuarama
U002 vitor av. Rondon Pacheco Saraiva
U003 rafael av. Brasil Brasil


  • 2FN.


  • Antes:
N_Pedido Codigo_produto produto Qtd unidade subtotal
1 P01 mesa 5 200 1000
2 P02 cadeira 5 100 500
3 P03 computador 5 500 2500

  • Depois:
N_Pedido Codigo_produto Qtd unidade subtotal
1 P01 5 200 1000
2 P02 5 100 500
3 P03 5 500 2500
codigo_produto produto
P01 mesa
P02 cadeira
P03 computador
  • 3FN.
  • Depois:
n_pedido codigo_produto qtd unidade
1 P01 5 100
2 P02 5 200
3 P03 5 300


Exercícios


  • 1. Normalizar as tabelas definidas na última aula
  • 2. Abrir software DIA online ou outro que crie diagramas
  • 3. Criar DER usado o software
  • 4. Gerar PDF
  • 5; Enviar para email luiz.theodoro@ufu.br
    • Prazo: 17/11 - 23 hs.