Terceira Forma Normal 3FN - Normalização de dados

O que é a Terceira Forma Normal 3FN - Normalização de dados

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 3ª forma normal
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
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.
 


 

Veja também:




// 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

concordo

BABA // LISBOA // 17/03/2009 13:10:00

OLA VALEU CARA

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

Obrigado.

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.

Marcelo Santos // Palmeira / AL // 28/03/2012 10:04:00

gostei muito desse material, me ajudou bastante. Agora sim já sei qual a diferença e dependencia que há entre as formas normais. Vlw

KIVIA MAIANNE // PARAISO- TO // 26/09/2012 10:19:00

GOSTEI MUITO TAVA COM UMA DUVIDA IMENSA....

TINHA DE APRESENTAR UM TRABALHO E COMSEGUI TIRA UMA NOTA BOA ....

OBRIGADA GALERA COMTINUI ASSIM...

BEIJOS....=)

kivia maianne...

Sérgio // Salvador // 05/02/2013 10:59:00

Muito bom. Melhor artigo da internet sobre o assunto

Heriberto // Osasco // 14/10/2013 23:27:00

Excelente material. Recomenda alguma leitura para aprofundar no assunto?





 

2007-2015   //   Blog do Luis   //   Política de Privacidade   //   Eu creio em Deus