NORMALIZAÇ
ÃO
Renata Santana
Normalização
2
Conjuntode regrasaplicadasnuma tabela com o
objetivo de corrigir possíveis erros de projeto.
Existem diversas regras de normalização
Objetivos para aplicar a normalização em tabelas:
Eliminar redundância de dados
Eliminar estruturas do MER inexistentes model
no lógico o
As regras são chamadas Formas Normais:
1ª Forma Normal (1FN)
2ª Forma Normal (2FN)
3ª Forma Normal (3FN)
Normalização
3
Normalização
4
3FN
Tabela
na
Tabela 2FN
NORMALIZA
DA
2FN
Tabela não
Tabela na
normalizada
1FN
1FN
1ª Forma Normal
5
(1FN)
Dizemos que uma tabela está na primeira
forma normal, quando ela não possui:
Atributos multivalorados
Atributos compostos
Alguns autores se referem a estes atributos
como tabelas aninhadas
QUAIS OS PROBLEMAS EM TER ESSE TIPO
DE
ATRIBUTO ?
1ª Forma Normal
6
(1FN)
Emp
CodProj Tipo Descr
CodEmp Nome Cat Sal DataIni Tempo
LSC001 Novo Sistema 2146 João A1 4 1/11/13 24
Desenv. de Estoque
3145 Sílvio A2 4 2/10/12 24
6126 José B1 9 3/10/11 18
1214 Carlos A2 4 4/10/13 18
8191 Mário A1 4 1/11/12 12
PAG02 Manutenção Sistema 8192 Mariana A1 4 1/05/12 12
de RH
4112 João A2 4 4/01/11 24
1ª Forma Normal
7
(1FN)
Cada atributo composto ou multivalorado deve ser
transformado numa nova tabela.
Adiciona uma chave estrangeira nessa nova tabela.
Projeto (CodProj, Tipo, Descricao, (CodEmp, Nome, Cat, Sal, DataIni,
Tempo))
Projeto (CodProj, Tipo, Descricao)
EmpProj(CodEmp, CodProj, Nome, Cat, Sal, DataIni,
Tempo)
Dependência
8
Funcional
Para avançar para a 2FN e a 3FN é necessário
conhecer o conceito de dependência funcional.
É a principal ferramenta de avaliação para
identificar se o agrupamento de atributos de uma
tabela é apropriado.
Evitando redundância de dados
Inconsistências
Perda de dados em operações de remoções ou
alterações
Dependência
9
Funcional
Existem 3 tipos:
Dependência Funcional Total
Dependência Funcional Parcial
Dependência Funcional
Transitiva
Dependência Funcional
10
Total
Os atributos não chave de uma tabela têm que
depender totalmente da chave primária e somente
dela.
Ex: Uma determinada tabela possui sua chave
primária composta pelos atributos A e B. Logo, C
será dependente funcional total se e somente se C
depender funcionalmente de A e B.
Dependência Funcional
11
Parcial
Os atributos não chave de uma tabela dependem
de parte da chave primária.
Ex: Uma determinada tabela possui sua chave
primária composta pelos atributos A e B. Logo, C
será dependente funcional parcial se e somente se
C depender funcionalmente de A ou B.
Dependência Funcional
12
Parcial
Solução para dependência funcional parcial
Dependência Funcional
13
Transitiva
O atributo C é dependente funcional transitivo de A
se C é funcionalmente dependente de B e B
funcionalmente dependente de A, na mesma tabela.
Dependência Funcional
14
Transitiva
2ª Forma Normal
15
(2FN)
Uma tabela está na 2FN se ela já estiver na 1FN.
Todo atributo que não forchave primária for
dependente funcional TOTAL.
Ouseja, não deve existirdependênciafuncional
parcial.
2ª Forma Normal
16
(2FN)
3ª Forma Normal
17
(3FN)
Uma tabela está na 3FN se ela já estiver na 2FN.
E NÃO deve existirdependênciafuncional
transitiva entre atributos não chave.
3ª Forma Normal
18
(3FN)
Exercíci
19
o
1. vendedor (nro_vend, nome_vend, sexo_vend,{nro_cli,
nome_cli, end_cli, data_atend } )
As seguintes dependências funcionais devem ser garantidas na
normalização:
• nro_vend → nome_vend, sexo_vend
• nro_cli → nome_cli, end_cli
• nro_vend , nro_cli → data_atend
Exercíci
20
o
Aluno (matricula, nome, status, codCurso, nomeCurso,
{CodDisciplina, nomeDisciplina, codProf, nomeProf, nota, faltas,
situacao} )
Matricula -> nome, Status,
CodCurso CodCurso -> nomeCurso
CodDisciplina -> nomeDisciplina
CodProf -> nomeProf
codDisciplina, matricula -> nota,
faltas, situação, codProf