Você está na página 1de 34

Normalização de Dados

Socorro Vânia
socorro.vania@gmail.com
Anomalias de Atualização
Anomalias de Atualização
Anomalias de Atualização

 Anomalias são problemas que ocorrem em


banco de dados mal planejados e não-
normalizados, geralmente ocorrendo por
excesso de dados armazenados em uma
mesma tabela.
 São causadas pelas dependências parciais e
transitivas.
 As anomalias de atualização são classificadas
em anomalias de inserção, de exclusão e de
modificação.
Eliminar Anomalias

 Projetar os esquemas de relações (tabelas) no


banco de dados de modo que nenhuma
anomalia de inserção, exclusão ou modificação
esteja presente nas relações.

 Para isso, usamos o processo de


Normalização.
Normalização

 Normalização consiste em um processo de


análise de um relação para assegurar que seja
bem formada.
 Significa decompor relações com anomalias
para produzir relações menores e bem
estruturadas.
 Ou seja, em uma relação normalizada podemos
inserir, excluir ou modificar registros sem criar
anomalias.
Normalização

 O processo de normalização, proposto por


Codd em 1972, aplica a um esquema de
relação uma série de testes para certificar que
ele satisfaça uma Forma Normal (FN).
 Codd propôs originalmente 3 formas normais:
1ª, 2ª e 3ª FNs.
 Posteriormente, a 3FN foi revisada e uma
definição mais robusta foi proposta por Boyce e
Codd, denominada Forma Normal de Boyce
Codd (FNBC).
Projeto Lógico - Normalização

 Processo muito importante para um projeto de


banco de dados.
 Consiste em analisar o modelo e através de
regras formais, reestruturar possíveis tabelas e
atributos, reduzindo assim redundâncias e
permitindo o crescimento do BD com o mínimo
de efeito colateral.
 Consiste em diminuir redundância e anomalias
de inserção, atualização e exclusão.
Projeto Lógico - Normalização

 Consiste em analisar relações para satisfazer


requisitos cada vez mais rigorosos acarretando
agrupamentos cada vez melhores, mais
estáveis e seguros.
 Realiza-se uma série de testes para certificar
se a relação está ou não em uma determinada
forma normal. O processo consiste em
certificar e decompor.
 Fundamentado no conceito de Dependência
Funcional.
Projeto Lógico – Formas Normais (FN)

Dividem-se em 6 formas normais:


 1 FN (1o Forma Normal)
 2 FN (2o Forma Normal)
 3 FN (3o Forma Normal) * Diz-se normalizado
 FNBC (Forma Normal de Boyce e Codd)
 4 FN (4o Forma Normal)
 5 FN (5o Forma Normal)
Projeto Lógico – Formas Normais (FN)

 O ideal é que o projeto do banco de dados


relacional alcance a 3FN ou a FNBC para cada
tabela.
 Não é adequado normalizar apenas até a 1FN
ou a 2FN, pois na verdade essas formas
normais são usadas para se chegar à 3FN.
Projeto Lógico – Normalização

1ª Forma Normal (1FN ou 1NF)


 Definida historicamente para reprovar
atributos multivalorados, compostos e suas
combinações.
 O domínio de um atributo deve incluir apenas
valores atômicos (indivisíveis), e o valor de
qualquer atributo em uma tupla deve ser o
único valor do domínio desse atributo.
 O modelo relacional exige que as relações
estejam pelo menos na 1FN.
Projeto Lógico – Normalização

1ª Forma Normal (1FN ou 1NF)


Uma tabela está na 1FN quando:
 Somente possui valores atômicos.
 Não há grupos de atributos repetidos (há
apenas um dado por coluna nas linhas).
 Existe uma chave primária.
 A tabela não possui atributos multivalorados
ou relações aninhadas.
Projeto Lógico – Normalização
Projeto Lógico – Normalização

1ª Forma Normal (1FN ou 1NF):


Tabela com anomalias

Exemplo disponível em:


https://www.youtube.com/watch?v=eRaAMNjCFYw&t=577s
Projeto Lógico – Normalização

1ª Forma Normal (1FN ou 1NF):


Tabela sem anomalias

Exemplo disponível em:


https://www.youtube.com/watch?v=eRaAMNjCFYw&t=577s
Projeto Lógico – Normalização

2ª Forma Normal (2FN ou 2NF)


 Basada no conceito de Dependência
Funcional Total.
 A dependência funcional corresponde a uma
restrição entre conjuntos de atributos em uma
relação.
 Se X identifica Y, então X→Y e diz-se que há
uma dependência funcional entre eles.
 X determina Y, Y é funcionalmente dependente
de X.
Projeto Lógico – Normalização
Projeto Lógico – Normalização
Projeto Lógico – Normalização

2ª Forma Normal (2FN ou 2NF)


 Diz respeito às chaves primárias compostas.
 Uma relação R (tabela) está na 2FN se e somente se está
na 1FN e cada atributo não chave de R for total e
funcionalmente dependente da chave primária (PK) de R.
 Para testar a 2FN, testamos as dependências funcionais
cujos atributos fazem parte da PK.
 Caso a PK tenha um único atributo, esse teste não
precisa ser aplicado.
 Se a PK não é composta e a relação está na 1FN, ela
também está na 2FN.
 Uma relação que está na 1FN pode não estar na 2FN se
sua chave for composta.
Projeto Lógico – Normalização

2ª Forma Normal (2FN ou 2NF)


 Todos os atributos não-chave são funcionalmente
dependentes de todas as partes da chave primária.
 Não existe dependências parciais.
 Caso contrário, deve-se gerar uma nova tabela com os
dados.
Projeto Lógico – Normalização

2ª Forma Normal (2FN ou 2NF)


 Deve-se criar uma nova relação para cada chave PK ou
combinação de atributos que forem determinantes em
uma dependência funcional.
 Esse atributo será a PK na nova tabela.
 Mova os atributos não chave dependentes desta OK para
a nova tabela.
Projeto Lógico – Normalização

2ª Forma Normal (2FN ou 2NF):


Tabela com anomalias

Exemplo disponível em:


https://www.youtube.com/watch?v=6ER9lWOk-cY
Projeto Lógico – Normalização

2ª Forma Normal (2FN ou 2NF):


Tabela sem anomalias

Exemplo disponível em:


https://www.youtube.com/watch?v=6ER9lWOk-cY
Projeto Lógico – Normalização
Projeto Lógico – Normalização
Projeto Lógico – Normalização
Projeto Lógico – Normalização
Projeto Lógico – Normalização
Projeto Lógico – Normalização
Projeto Lógico – Normalização
Projeto Lógico – Normalização
Projeto Lógico – Normalização

3ª Forma Normal (3FN ou 3NF)


 Veja o vídeo abaixo:

https://www.youtube.com/watch?v=usA8QKvEHWw
Dúvidas?

Você também pode gostar