You are on page 1of 6

CURSO DE BACHARELADO EM CINCIA DA COMPUTAO

NORMALIZAO
Processo de decomposio de esquemas em esquemas menores com propriedades desejveis. Processo de decomposio de relaes no satisfatrias em relaes menores para evitar anomalias de atualizaes. Uma nota fiscal apresenta um lay-out assim : Mercantil Guaramiranga Ltda. Rua Jos Moreira Filho, 22 Data de emisso : 8 de novembro de 2001 Cliente : 10 - Rocilda Farias Moreira Endereo : Stio Botija Cidade : Guaramiranga Estado : CE Cd. produto 2.333 2.352 2.377 Unidade kg Kg Kg Descrio Acar Arroz Feijo Quantidade Preo unitrio 10 0,79 15 1,10 4 1,80 Preo total 7,90 16,50 7,20 Nota fiscal de sada n 04584

Total da nota Valor do ICMS Data de sada das mercadorias Vendedor : 2 - Paulo Viana Um cliente pode comprar vrios produtos emitindo-se apenas uma nota fiscal.

31,60 5,37 9/11/2001

O esquema relacional dessa nota pode ser : NotaF1 (dtEmissao, nmNotaFiscal, cdCliente, dsCliente, dsEndereco, dsCidade, dsEstado, (cdProduto, dsUnidade, dsProduto, nmQuantidade, nmPrecoUnit, nmPrecoTotal), nmTotalNota, nmIcms, dtSada, cdVendedor, nmVendedor) A relao acima no est normalizada, pois a informao sobre os produtos comprados um conjunto de valores, isto , do tipo multivalorado. Como seriam armazenados esses bytes fsicamente?

CT808 ANLISE E PROJETO DE SISTEMAS

Professor PAULO MARCELO FARIAS MOREIRA

CURSO DE BACHARELADO EM CINCIA DA COMPUTAO Ou colocando-se os bytes que armazenam dados sobre os outros produtos ao lado.

Como um programa poderia saber se os prximos bytes seriam um novo produto de uma mesma nota fiscal ou j seriam dados de uma outra nota fiscal? Uma relao com atributos (ou colunas) atmicos do tipo normalizada, isto , est em 1FN. Repetindo-se os dados das colunas atmicas passa-se para 1FN, tal como abaixo : NotaF2 (dtEmissao, nmNotaFiscal, cdCliente, dsCliente, dsEndereco, dsCidade, dsEstado, cdProduto, dsUnidade, dsProduto, nmQuantidade, nmPrecoUnit, nmPrecoTotal, nmTotalNota, nmIcms, dtSada, cdVendedor, dsVendedor) Nessa relao os atributos nmNotaFiscal e cdProduto formam a chave primria. E isoladamente nem nmNotaFiscal nem cdProduto podem ser chave . Assim para cada item comprado ser registrado tambm o nome do cliente, endereo e nome do vendedor, por exemplo, aumentando a redundncia consideravelmente.

1FN Uma relao est na 1FN se os domnios incluem apenas valores atmicos, ou os valores dos atributos so simples. Tambm no pode haver atributos ou colunas repetidos para armazenar dados semelhantes. A tabela tambm no pode apresentar colunas repetidas, tal como no exemplo abaixo : funcionrio salrio Horas extras prmios Anunios Pois se forem criadas novas vantagens para o empregado a tabela ser modificada. E pode haver grande desperdcio se poucos recebem prmios. Roupa Mancha1 Mancha2 Mancha3 Mancha4 Os valores das manchas das roupas sero falso ou verdadeiro. Mas se precisarmos incluir outras manchas o programa precisar ser alterado. cliente Acar Arroz E se a loja passar a vender mais produtos? Feijo Farinha

Dependncia Funcional Dada uma relao R, dizemos que uma coluna ou conjunto de colunas B de R dependente funcional de uma coluna ou conjunto de colunas A de R, denotado por A B, se e somente se a cada valor VA de A existir nas
CT808 ANLISE E PROJETO DE SISTEMAS Professor PAULO MARCELO FARIAS MOREIRA

CURSO DE BACHARELADO EM CINCIA DA COMPUTAO tuplas de R em que aparece VA um nico valor VB. Em outras palavras, se VA ocorrer em duas tuplas diferentes, o mesmo VB deve ocorrer em ambas. Existe dependncia funcional A B se e somente se quando duas tuplas tiverem os mesmos valores de A elas tambm tero os mesmos valores de B. Para todos os pares de tuplas t1 e t2 tal que t1[A] = t2[A] Deve acontecer tambm que t1[B] = t2[B] Os valores de B dependem de A. Os valores de B so determinados por A. Os valores de A determinam os valores de B. B dependente funcional de A. No exemplo da nota fiscal encontramos as seguintes dependncias funcionais cdProduto dsUnidade, dsProduto nmNotaFiscal cdCliente, dsCliente Dependncia Funcional Parcial Se (X, Y) Z e XZ Ento Z dependente funcional parcial de (X, Y) Dependncia Funcional Total Se (X, Y) Z e X no Z e Y no Z Ento Z dependente funcional total de (X, Y) Em uma relao R(A, B, C, D) a existncia de uma DF parcial (A, B) C com A C indica que h uma mistura de informaes nos dados. 2FN Uma relao est na 2FN se cada atributo no primo (fora da chave) for dependente funcional total da chave. No exemplo da nota fiscal a relao no est em 2FN. NotaF2 (dtEmissao, nmNotaFiscal, cdCliente, dsCliente, dsEndereco, dsCidade, dsEstado, cdProduto, dsUnidade, dsProduto, nmQuantidade, nmPrecoUnit, nmPrecoTotal, nmTotalNota, nmIcms, dtSada, cdVendedor, dsVendedor) A chave da relao acima (nmNotaFiscal, cdProduto) e no est em 2FN pois (nmNotaFiscal, cdProduto) cdCliente, dsCliente, dsUnidade, dsProduto, dtEmissao, dtSaida, (nmNotaFiscal, cdProduto) cdVendedor, dsVendedor
CT808 ANLISE E PROJETO DE SISTEMAS Professor PAULO MARCELO FARIAS MOREIRA

CURSO DE BACHARELADO EM CINCIA DA COMPUTAO Mas suficiente cdProduto dsUnidade, dsProduto, nmPrecoUnit nmNotaFiscal cdCliente, dsCliente, dtEmissao, dtSaida, cdVendedor, dsVendedor H dependncia funcional parcial. Ser preciso decompor em trs relaes para passar para 2FN 1. Produtos (cdProduto, dsUnidade, dsProduto, nmPrecoUnit) 2. NotaF3(nmNotaFiscal, dtEmissao, cdCliente, dsCliente, dsEndereco, dsCidade, dsEstado, nmTotalNota, nmIcms, dtSada, cdVendedor, dsVendedor) 3. ItemNota(nmNotaFiscal, cdProduto, nmQuantidade, nmPrecoTotal) Diversas anomalias foram eliminadas ao se passar para 2FN. A redundncia de dados sobre os produtos, por exemplo, tambm foi eliminada. Questo para discutir : Toda relao cuja chave no composta est em 2FN? Para se chegar a 2FN precisamos retirar das relaes que tm como chave primria uma chave composta os atributos que so funcionalmente dependentes de apenas uma parte da chave. Mas examinando-se a relao que registra as notas fiscais (NotaF3) ainda temos anomalias pois podemos perder as informaes de um cliente (ou vendedor) que tem registrado apenas uma nota fiscal ou no podemos registrar informaes de um cliente (ou vendedor) se o mesmo ainda no tiver efetuado uma compra. Dependncia Funcional Transitiva Existe dependncia funcional transitiva em X Y se XZe ZYe Z no subconjunto da chave da relao 3FN Uma relao est na 3FN se qualquer atributo no primo (fora da chave) no dependente funcional transitivo da chave, ou seja, no existe atributo no primo dependente funcional transitivo da chave. No exemplo da nota fiscal a relao no est em 3FN. nmNotaFiscal dsCliente, dtEmissao, dtSaida, cdVendedor, dsVendedor mas nmNotaFiscal cdCliente cdCliente dsCliente, dtEmissao, dtSaida e nmNotaFiscal dsVendedor mas nmNotaFiscal cdVendedor cdVendedor dsVendedor H dependncia funcional transitiva. Ser preciso decompor NotaF3 em trs relaes para passar para 3FN 1. Clientes(cdCliente, dsCliente, dsEndereco, dsCidade, dsEstado)
CT808 ANLISE E PROJETO DE SISTEMAS Professor PAULO MARCELO FARIAS MOREIRA

CURSO DE BACHARELADO EM CINCIA DA COMPUTAO 2. Vendedores(cdVendedor, dsVendedor) 3. NotaF4(nmNotaFiscal, dtEmissao, cdCliente, nmTotalNota, nmIcms, dtSada, cdVendedor) BCNF Para estudar BCNF vamos relembrar a relao NotaF2 NotaF2 (dtEmissao, nmNotaFiscal, cdCliente, dsCliente, dsEndereco, dsCidade, dsEstado, cdProduto, dsUnidade, dsProduto, nmQuantidade, nmPrecoUnit, nmPrecoTotal, nmTotalNota, nmIcms, dtSada, cdVendedor, dsVendedor) e considerar apenas alguns atributos NotaF8 (nmNotaFiscal, cdProduto, dsProduto, nmQuantidade) A chave da relao acima (nmNotaFiscal, cdProduto) mas numa nota fiscal no se repete um produto mais de uma vez e a chave escolhida poderia ter sido (nmNotaFiscal, dsProduto). Existem duas chaves possveis, so compostas e se superpem, isto , h um atributo comum. No caso acima nmNotaFiscal. Sabemos que um cdigo de produto determina a descrio do produto mas o inverso no ocorre pois poderamos ter 2 produtos com cdigos diferentes mas com a mesma descrio. Como exemplo alguns supermercados colocam alguns produtos que esto com data de vencimento muito prxima com outro cdigo e passam a ter preo menor apesar de ser o mesmo produto. cdPproduto dsProduto mas dsProduto no cdProduto Aproveito para mostrar uma particularidade de algumas lojas que no permitem, para maior controle ou segurana, uma quantidade maior que 1 para alguns produtos. Se o cliente comprar 12 latas de cerveja, por exemplo, o caixa registra como se fossem 12 produtos distintos. Nesse caso a chave que adotamos no poderia ser mais utilizada. Voltando ao nosso exemplo, vamos supor que a chave escolhida para a relao fosse (nmNotaFiscal, dsProduto). O que altera no nosso estudo? Nesse caso no haveria transitividade. Mas se a chave fosse (nmNotaFiscal, cdProduto) sem esquecer que h tambm a possibilidade de escolha da outra chave, isto , cdProduto tambm atributo primo, podemos pensar que a dependncia de dsProduto no total em relao a chave, pois cdProduto dsProduto. Vamos relembar a definio de 2FN Uma relao est na 2FN se qualquer atributo no primo (fora da chave) for dependente funcional total da chave. No caso acima dsProduto pertence a uma chave, ento no se enquadra na situao acima. Foi criada ento a forma BCNF que pode ser definida assim Para toda DF X Y Ento X superchave Adotando-se esse modo acima de definir uma forma normal podemos redefinir 3FN assim Para toda DF X Y Ento X superchave ou Y atributo primo
CT808 ANLISE E PROJETO DE SISTEMAS Professor PAULO MARCELO FARIAS MOREIRA

CURSO DE BACHARELADO EM CINCIA DA COMPUTAO Considere que cada viagem est associada a um nico navio que leva uma nica carga numa viagem e a entrega numa seqncia de portos. Um navio pode visitar somente um porto por dia. Um navio est relacionado com somente uma viagem em um dado dia. Um navio est associado a somente um tipo. N nome do navio T tipo de navio V identificador da viagem C carga levada por um navio em uma viagem P porto D dia NT ND P ND V Pode ser transformado em ND PV V NC Pode ser transformado em VN VC

Um investidor precisa de uma corretora para fazer investimentos em aes, que so de diversos tipos e que pagam dividendos de acordo com o tipo. C corretora E endereo da corretora I investidor S tipo de aes D dividendos pago pelo tipo de aes Q quantidade de aes de um investidor CE SD IC IS Q

CT808 ANLISE E PROJETO DE SISTEMAS

Professor PAULO MARCELO FARIAS MOREIRA

You might also like