Escolar Documentos
Profissional Documentos
Cultura Documentos
NORMALIZAÇÃO
Prof. Angelo Augusto Frozza, M.Sc.
MOTIVAÇÃO
Tipos de chave
Chave candidata:
Todas as opções de identificação única de um registro;
Chave primária:
Chave escolhida como identificação única;
Chave estrangeira:
Chave que representa uma relação com outra tabela, ou
seja, representa a chave primária da tabela relacionada.
MOTIVAÇÃO
Após a construção do modelo conceitual dos dados é feita
a transformação para um modelo lógico (esquema
relacional);
Empregado Emp_ID
100
Nome
Margarida
Depart
Marketing
Salário
42000
Curso
SPSS
Dta de conclusão
19-06-2002
Curso
100 Margarida Marketing 42000 Pesquisa 07-10-2002
140 Hélio Financeira 39000 IVA 08-12-2002
110 Cristóvão Sist. Informação 41500 SPSS 01-12-2002
110 Cristóvão Sist. Informação 41500 C++ 22-04-2002
190 Lourenço Contabilidade 38000 Investimen 07-05-2002
150 Susana Marketing 38500 SPSS 19-06-2002
150 Susana Marketing 38500 TQM 12-08-2003
1ª FN
Remover as
dependências
parciais
2ª FN
Remover
dependências
transitivas
3ª FN
NORMALIZAÇÃO
A normalização é baseada na análise das
dependências funcionais:
Uma dependência funcional é uma relação particular
entre 2 atributos;
B é funcionalmente dependente de A
A determina B
B depende de A
NORMALIZAÇÃO
Um atributo pode estar dependente de 2 ou mais
atributos, em vez de um único.
São exemplos:
ISBN Título do livro
N_Funcionario Departamento
Se se conhece o N_Funcionario (atributo único) é possível
determinar o Departamento (um funcionário só pode
pertencer a um departamento)
Departamento → N_funcionario ?
Não, pois Departamento 900 => {1021,1023}
N_funcionario → Departamento ?
Sim, pois se é conhecido o N_funcionario (atributo
único) é possível determinar o Departamento (um
funcionário só pode pertencer a um departamento)
NORMALIZAÇÃO
N_funcionario Nome_Proprio Sobrenome Departamento
1021 Sofia Reis 900
1022 Afonso Reis 700
1023 Antonio Cardoso 900
Nome_proprio → N_funcionario ?
Não, pois podem existir funcionários com o mesmo nome =>
podem haver múltiplos valores de N_funcionario para o
mesmo Nome_próprio
N_funcionario → Sobrenome?
Apesar de dois funcionários terem o mesmo sobrenome, se é
conhecido o N_funcionario determina-se um só Sobrenome
N_funcionario → todos os restantes atributos
FORMAS NORMAIS
Primeira Forma Normal (1FN)
Eliminar redundâncias
Itens_Encomenda (#encomenda,
#item_encomenda, cod_produto, produto,
qtd_encomendada)
1ª FORMA NORMAL (ELIMINAR REDUNDÂNCIAS)
COD-ALUNO
Valores atômicos:
NOME
DISCIPLINA ENDEREÇO
COD-ALUNO NOME
ALUNO
COD-ALUNO NOME
ALUNO
DISCIPLINA DISCIPLINA
DEPENDÊNCIA
FUNCIONAL
PRODUTO
NA CHAVE
PRIMÁRIA
NOME_PROD PRECO_PROD
FORMAS NORMAIS
Segunda Forma Normal (2FN)
Dependência total da Chave
EXEMPLOS DEPENDÊNCIA NÃO FUNCIONAL NA CHAVE COMPOSTA:
COD_PROD NR-ORDEM
POSSUI PRECO_PROD
DEPENDÊNCIA POSSUI DEPENDÊNCIA
PARCIAL DA CHAVE ORD-PROD PARCIAL DA CHAVE
COMPOSTA. COMPOSTA:
COD_PROD APENAS COD_PROD APENAS
TIPO_ORDEM
NOME_PROD
DATA-FABRIC
DEPENDÊNCIA
FUNCIONAL
APENAS COM
A CHAVE! COD_PROD NOME_PROD
PRECO_PROD
PRODUTO
Possui DF com
COD_FAMLIA e
COD_FAMILIA NOME_FAMILIA
COD_PROD
3ª FORMA NORMAL (ELIMINAR DEPENDÊNCIAS TRANSITIVAS)
Tela do
Sistema de
Controle de
Venda
FORMAS NORMAIS
Tabela física do banco de dados
Funcionário
Resultado
Cod_funcionar Nome_Funcionari Nome_Filhos Dt_Nasc_filhos
io o
Carlos da Silva 04/04/1980
001 João da Silva
Pedro da Silva 28/07/1985
002 Maria das Dores Carla das Dores 25/05/1980
003 Claudio Soares
Jose Sem Carlos Sem Sobrenome 10/03/1987
004
Sobrenome Maria Sem Sobrenome 23/09/1990
Tratamento a nível de
aplicação, mantendo a
relação R e R2 (criando
redundância)
FORMA NORMAL DE BOYCE/COOD (BCFN)
Imagine a relação:
(Professor CodDisciplina),
- + relações
+ - redundância