Escolar Documentos
Profissional Documentos
Cultura Documentos
Código do Vendedor
Nome do Vendedor
Data do Pedidos
Número do Pedido Cliente
Nome do Cliente
CNPJ
IE
Código do Produto
Quantidade do Produto
Descrição do Produto
Valor Unitário
Unidade
Valor Total
Considerando a 1FN sobre a tabela PEDIDO, será necessário
criar uma nova tabela chamada ITEM-DE-PEDIDO, que
possuirá os atributos da tabela PEDIDO.
Um PEDIDO possui no mínimo 1 e no máximo N
ocorrências em ITEM-DE-PEDIDOS e um ITEM-DE-PEDIDOS
pertence a 1 e somente 1 PEDIDO, logo o relacionamento
POSSUI é do tipo 1 para N (1:N).
◦
PEDIDO ITEM-DE-PEDIDO
PEDIDO
CLIENTE (1,1)
VENDEDOR
(1,1)
CNPJ (PK)
Código do Vendedor (PK)
Nome do Cliente Nome do Vendedor
CNPJ
IE
Projeto (CodProj, Tipo, Descricao, (CodEmpregado, NomeEmp, Categoria,
Salario, DataInicio, Tempo))
1FN
◦ Inconsistências
◦ Total
◦ Parcial
◦ Transitiva
◦ Obs1: para o entendimento das dependências funcionais total e
parcial considere uma situação simples em que temos a tabela
ALOCAÇÃO, a qual se refere a alocação de empregados a projetos.
◦ Obs2: para o entendimento da dependência funcional transitiva
considere a tabela EMPREGADO.
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.
A B C
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 o atributo C depender
funcionalmente de A ou B.
A B C
Solução para dependência funcional parcial
O atributo C é dependente funcional
transitivo de A se C é funcionalmente
dependente de B e B funcionalmente
dependente de A, na mesma tabela.
A B C
Relembrando:
◦ 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.
A B C
Solução para dependência funcional parcial
(relembrando)
Projeto (CodProj, Tipo, Descricao, (CodEmpregado, NomeEmp, Categoria,
Salario, DataInicio, Tempo))
2FN
Projeto (CodProj, Tipo, Descricao, (CodEmpregado, NomeEmp, Categoria,
Salario, DataInicio, Tempo))
1FN
Projeto (CodProj, Tipo, Descricao)
EmpProj(CodEmpregado, CodProj, NomeEmp, Categoria, Salario, DataInicio,
Tempo)
2FN
Projeto (CodProj, Tipo, Descricao)
EmpProj(CodEmpregado, CodProj, DataInicio, Tempo)
Empregado(CodEmpregado, NomeEmp, Categoria, Salario)
Projeto (CodProj, Tipo, Descricao)
EmpProj(CodEmpregado, CodProj, DataInicio, Tempo)
Empregado(CodEmpregado, NomeEmp, Categoria, Salario)
A B C
Uma dependência funcional transitiva ou
indireta acontece quando uma coluna não
chave primária depende funcionalmente de
outra coluna ou combinação de colunas não
chave primária.
A passagem à 3FN consta em dividir tabelas
de forma a eliminar as dependências
transitivas.
Dependência transitiva
Veja o exemplo:
A B C
3FN
Resultado:
3FN
1FN
3FN