Home » Tecnologia
Terceira Forma Normal 3FN - Normalização de dados
O que é a Terceira Forma Normal 3FN - Normalização de dados
Gostou? Recomende:
Uma tabela está na Terceira Forma Normal 3FN se ela estiver na 2FN e se nenhuma coluna não-chave depender de outra coluna não-chave.
Na terceira forma normal temos de eliminar aqueles campos que podem ser obtidos pela equação de outros campos da mesma tabela.
Procedimentos:
- a) Identificar todos os atributos que são funcionalmente dependentes de outros atributos não chave;
- b) Removê-los.
A chave primária da nova entidade será o atributo do qual os atributos removidos são funcionalmente dependentes.
Exemplo de normalização na terceira forma normal
Considere a tabela abaixo:

Tabela não está na terceira forma normal
Considerando ainda a nossa tabela Venda, veremos que a mesma não está na terceira forma normal, pois o subtotal é o resultado da multiplicação Quant X Valor_unit, desta forma a coluna subtotal depende de outras colunas não-chave.
Para normalizar esta tabela na terceira forma normal teremos de eliminar a coluna subtotal, como no exemplo a seguir:
Tabela na terceira forma normal
Conforme visto nos post primeira forma normal e segunda forma normal, a normalização torna a tabela mais otimizada e sem anomalias. Veja também o post Normalização de dados e as formas normais.
Participe do Simulado de HTML
Veja também:
Compartilhe com seus amigos:
// Comentários
Alexandre // Palmas-TO // 11/03/2009 11:09:00
Otimo artigo, eu nunca tinha entendido direito a diferença. valeu mesmo ! muito bem comentado
Juliana // Salto/SP // 15/03/2009 20:19:00
Obrigada pelos posts... me ajudaram mt a entender e concluir um trabalho!
LUIS CARLOS // aquela // 17/03/2009 13:09:00
BABA // LISBOA // 17/03/2009 13:10:00
Diego Dayvison // Franca-SP // 13/04/2009 15:55:00
Ok...ótima abordagem da matéria.
Obrigado.
Diego // sao luis // 23/05/2009 19:59:00
poh tava penando pra compreender isso pelo livro e com estes posts ficou td mais claro :D valeu pela ajuda. vai me ajudar a passar no concurso :D
Tatiana // Brasilia // 26/05/2009 22:06:00
Obrigada pela abordagem clara das formas normais. Não estava conseguindo compreender pelos os livros!
Desse jeito ficou explicado de forma clara!
:)
fuvio // luanda // 16/06/2009 12:00:00
escreva mais porq nos aqui em africa temos tido carencia de material de apoio
Airton // Luanda // 04/10/2009 20:10:00
Este material deu-me um bom apoio, esta bem sim plificado, facil de se perceber, mto bom. Obrigado pela ajuda, e que escreva mais
Francisco Magalhães // natal // 09/10/2009 12:34:00
Estou errado ou a tabela final não está na 2FN?
O campo Valor_unit não depende de N_pedido, mas de Codigo_produto.
Corrija-me, por favor.
Júlio Pacheco // Fortaleza, Brasil // 10/10/2009 12:34:00
Respondendo à dúvida do Francisco Magalhães, vai depender do negócio, amigo. Há empresas que usam tabelas de preço fixo e outras que embutem o desconto dado em balcão (por exemplo), no valor unitário, de forma que o valor unitário poderá variar para um mesmo produto em vendas diferentes. No primeiro exemplo, a tabela não estaria normalizada, mas no segundo sim. Saudações.
Francisco Magalhães // natal // 13/10/2009 08:53:00
Daniel // São Paulo // 10/05/2010 02:12:00
E o que acontece se no mesmo pedido forem comprados produtos diferentes? Nesse caso Nº Pedido não serve como chave primária, ou seria necessário usar outra chave?
Grato,
Daniel
Lucas // Santa Barbara dOeste // 26/05/2010 10:20:00
Muito bom, simples e bem explicado com exemplos bem feitos!
Daniel, acredito que se no mesmo pedido forem comprados produtos diferentes, não ha problema nenhum, pois no exemplo a tabela esta ligando codigo do produto com codigo do pedido, ou seja, ha uma tabela separada para produto e uma separada para pedido, nessa relação N para N, acredito que a tabela do exemplo é apenas uma tabela intermediária para realizar essa ligação, e ambos numero do pedido e código do produto são chaves primárias.
luis.blog.br // Limeira/SP // 26/05/2010 15:29:00
Francisco e Daniel.
As respostas do Júlio e Lucas, respectivamente, respondem as suas perguntas.
nanda // Pococity // 12/07/2010 20:42:00
Brigadim
Noooooooooosaa!!! eu penei pra caramba
pra encontrar issi bem explicadim!!!!!!!!
junior // fortaleza // 01/10/2010 15:43:00
otimo post, está de parabens são iniciativas assim que levam a difusão do conhecimento com informações precisas e claras. Melhor que muitos livros sobr BD existente hoje no mercado
parabens
rafael // cvsfd // 19/10/2010 18:04:00
Bacana gostei muito da explicaçao ficou bem claro
Célio Ph.D. // São Paulo // 29/11/2010 03:43:00
Caro Luis, parte do material está incorreto e os exemplo incoerentes. Obrigado pela intenção, mas cuidado ao distribuir material de baixa qualidade pela internet. Observe:
Seja a tabela R( Projeto * , Cidade , País ). Essa tabela está em 1FN e 2FN, mas não está em 3FN porque o atributo País depende de Cidade.
Com a sua explicação é impossível resolver isso, visto que ela trata de um CASO PARTICULAR da definição da 3FN:
* Uma relação (tabela) R está em 3FN se estiver em 2FN e todo atributo não primo depender apenas de um atributo primo. (Um atributo primo é um atributo que não pertence à chave primária)
Nesse caso se você remover o atributo País estará perdendo informação! O procedimento correto é decompor a tabela em:
M( Projeto* , Cidade ) e N( Cidade* , Pais )
Vítor Prado Gonçalves // Osasco // 08/12/2010 15:31:00
PARABÉNS, JA VI O SEUS DOIS ULTIMOS POST, E RECOMENDO A TODOS A SEGUIREM ESSAS EXPLICAÇÕES, MUITO GRATO...
Diego Fanali // Pirajuí SP // 17/05/2011 20:45:00
Boa Noite, Parabens Luis otimo poster
Eu estou cursando Ciencia da Computação e aqui consegui tirar minhas duvidas da teoria das formas com ajuda de tal, simples porém bem estruturado, objetivo mostrando o foco de cada normalização e com tabelas para melhorar o entendimento trazendo um pouco da pratica, para quem não possui tal visão por falta de experiencia.