NORMALIZAÇÃO
Normalização
2
Conjunto de regras aplicadas numa 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:
🞑 Eliminarredundância de dados
🞑 Eliminar estruturas do MER inexistentes no modelo
lógico
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
2FN
Tabela
NORMALIZADA
2FN
Tabela não
Tabela na
normalizada
1FN
1FN
1ª Forma Normal (1FN)
5
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 (1FN)
6
Emp
CodProj Tipo Descr
CodEmp Nome Cat Sal DataIni Tempo
LSC001 Novo Sistema de 2146 João A1 4 1/11/13 24
Desenv. 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 de 8192 Mariana A1 4 1/05/12 12
RH
4112 João A2 4 4/01/11 24
1ª Forma Normal (1FN)
7
Cada atributo composto ou multivalorado deve ser
transformado numa nova tabela.
Adiciona uma chave estrangeira nessa nova tabela.
Dependência Funcional
8
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 Funcional
9
Existem 3 tipos:
🞑 Dependência Funcional Total
🞑 Dependência Funcional Parcial
🞑 Dependência Funcional Transitiva
Dependência Funcional Total
10
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 Parcial
11
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 Parcial
12
Solução para dependência funcional parcial
Dependência Funcional Transitiva
13
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 Transitiva
14
2ª Forma Normal (2FN)
15
Uma tabela está na 2FN se ela já estiver na 1FN.
Todo atributo que não for chave primária for
dependente funcional TOTAL.
Ou seja, não deve existir dependência funcional
parcial.
2ª Forma Normal (2FN)
16
3ª Forma Normal (3FN)
17
Uma tabela está na 3FN se ela já estiver na 2FN.
E NÃO deve existir dependência funcional
transitiva entre atributos não chave.
3ª Forma Normal (3FN)
18
Exercício
19
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ício
20
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