Normalização Exemplo de Nota Fiscal: NF no 001234 Livraria Chega Mais Ltda Av. Cosmos Bittencurt, 2.345 – CEP: 899002-123 Blumenau – Santa Catarina – Brasil Nota Fiscal – Venda a Consumidor Cliente: Maria da Silva Vendedor: Zé do Balcão End: Av. Martim Lutter, s/n Data: 10/10/10 Cód Descrição Unid Qtde Preço Unit Preço Total 123 Régua acr. 30 cm un 1 0,80 0,80 234 Penal escolar ref.1 un 1 2,60 2,60 345 Gramplos 0.08’’ cx 2 1,50 3,00 Total da Nota 6,40 Preciso criar uma tabela no banco de dados para armazenar ... Tabela Nota Fiscal: Número, NomeCliente, EndereçoCliente, NomeVendedor, DataEmissão, CodProd1, DescrProd1, UnProd1, QtdeProd1, PrecoProd1, PrecoTotal1, CodProd2, DescrProd2, UnProd2, QtdeProd2, PrecoProd2, PrecoTotal2, CodProd3, DescrProd3, UnProd3, QtdeProd3, PrecoProd3, PrecoTotal3, CodProd4, DescrProd4, UnProd4, QtdeProd4, PrecoProd4, PrecoTotal4, CodProd5, DescrProd5, UnProd5, QtdeProd5, PrecoProd5, PrecoTotal5, CodProd6, DescrProd6, UnProd6, QtdeProd6, PrecoProd6, PrecoTotal6, TotalNota Problemas? Quais? FURB/DSC – Prof. Alexander Roberto Valdameri Aplicação da 1ª FN Enunciado: Uma tabela está na primeira forma normal se nenhum dos seus atributos tem domínio multivalorado. Objetivo: Evitar que se tenha que reservar espaços para armazenar dados multivalorados, sendo que o espaço pode ser desperdiçado em um registro e ser insuficiente em outro. Utilização: Projetam-se os atributos com domínio multivalorado para fora da tabela, levando um atributo (geralmente a chave da tabela original ) como elo para refazer a ligação e recuperar o conteúdo da tabela original. Tabela Nota Fiscal: Número, NomeCliente, EndereçoCliente, NomeVendedor, DataEmissão, TotalNota Tabela Item da Nota Fiscal: Número, CodProd, DescrProd, UnProd, QtdeProd, PrecoProd, PrecoTotal Os dados armazenados ficariam assim: Número NomeCliente EndereçoCliente 001234 NomeVendedor DataEmissão TotalNota Maria da Silva Av. Martin Luter,s/n Zé do Balcão 10/10/10 6,40 Número CodProd DescrProd UnidProd QtdeProd PrecoProd PrecoTotal 001234 123 Régua acr. 30 cm Un 1 0,80 0,80 001234 234 Penal escolar ref.1 Un 1 2,60 2,60 001234 345 Grampos 0.08” Cx 2 1,50 3,00 FURB/DSC – Prof. Alexander Roberto Valdameri Aplicação da 2ª FN Enunciado: Uma tabela está na segunda forma normal quando está na 1FN e seus atributos dependem funcionalmente da totalidade da chave ou atributo determinante. A 2FN aplica-se a tabelas onde a chave (atributo determinante) é composta por mais de um atributo. Objetivo: Evitar que se mantenham informações sobre um conjunto que tem interseção com o conjunto representado na tabela, mas tem existência independente. Utilização: Projetam-se os atributos que dependem funcionalmente de parte da chave para fora da tabela, levando a mesma (parte) para servir como elo para refazer a ligação e recuperar o conteúdo da tabela original. Tabela Item da Nota Fiscal: Número, CodProd, QtdeProd, PrecoProd (estático), PrecoTotal Tabela Produto: CodProd, DescrProd, UnProd, PrecoProd (dinâmico) Os dados armazenados ficariam assim: Número CodProd QtdeProd PrecoProd PrecoTotal 001234 123 1 0,80 0,80 001234 234 1 2,60 2,60 001234 345 2 1,50 3,00 CodProd DescrProd 123 Régua acr. 30 cm Un 0,80 234 Penal escolar ref.1 Un 2,60 345 Grampos 0.08” Cx 1,50 UnProd PrecoProd FURB/DSC – Prof. Alexander Roberto Valdameri Aplicação da 3ª FN Enunciado: Uma tabela está na terceira forma normal quando está na 2FN e não há dependência funcional transitiva entre seus atributos. Dependência funcional transitiva é a situação onde um atributo depende de outro e este segundo depende de um terceiro. Objetivo: Separar subconjuntos insertos em um superconjunto e evitar redundância nas informações. Utilização: Projetam-se os atributos que dependem transitivamente da chave para fora da tabela, levando o seu determinante direto como elo para refazer a ligação e recuperar o conteúdo da tabela original. Tabela Nota Fiscal: Número, Código Cliente, Código Vendedor, Data Emissão, TotalNota Tabela Cliente: CódigoCliente, Nome Cliente, Endereço Cliente Tabela Vendedor: CódigoVendedor, Nome Vendedor Os dados armazenados ficariam assim: Número Código Cliente Código Vendedor Data Emissão Total Nota 001234 100 1 10/10/10 Código Cliente Nome Cliente Endereço Cliente 100 Maria da Silva Av. Martin Luter, s/n Código Vendedor Nome Vendedor 1 Zé do Balcão FURB/DSC – Prof. Alexander Roberto Valdameri 6,40 Exemplo de Nota Fiscal: NF no 001234 Livraria Chega Mais Ltda Av. Cosmos Bittencurt, 2.345 – CEP: 899002-123 Blumenau – Santa Catarina – Brasil Nota Fiscal – Venda a Consumidor Cliente: Maria da Silva Vendedor: Zé do Balcão End: Av. Martim Lutter, s/n Data: 10/10/10 Cód Descrição Unid Qtde Preço Unit Preço Total 123 Régua acr. 30 cm un 1 0,80 0,80 234 Penal escolar ref.1 un 1 2,60 2,60 345 Gramplos 0.08’’ cx 2 1,50 3,00 Total da Nota 6,40 Tabela NOTA_FISCAL: Número 001234 Código Cliente Código Vendedor Data Emissão Total Nota 100 1 10/10/10 6,40 Tabela CLIENTE: Código Cliente 100 Nome Cliente Maria da Silva Endereço Cliente Av. Martin Luter,s/n Tabela VENDEDOR: Código Vendedor Nome Vendedor 1 Zé do Balcão Tabela ITEM_NOTA_FISCAL: Número CodProd 001234 123 001234 234 001234 345 QtdeProd PrecoProd PrecoTotal 0,80 0,80 2,60 2,60 1,50 3,00 UnProd PrecoProd Un 0,80 Un 2,60 Cx 1,50 1 1 2 Tabela PRODUTO: CodProd 123 234 345 DescrProd Régua acr. 30 cm Penal escolar ref.1 Grampos 0.08” FURB/DSC – Prof. Alexander Roberto Valdameri Quarta Forma Normal (4FN) Enunciado: Uma tabela está na quarta forma normal se está na 3FN e não apresenta mais um fato multivalorado em relação a uma entidade descrita pela tabela. Objetivo: Evitar a redundância em situações onde há fatos multivalorados em vez de dependências funcionais. É possível manipular um fato multivalorado em uma tabela, mas não dois ou mais. Utilização: Constroem-se tantas tabelas quantos fatos multivalorados há para certa entidade descrita na tabela. Esta entidade estará representada em todas as tabelas resultantes. Código Fornecedor 222 222 222 222 222 Código Peça NR1234 NR5645 NR5645 NR7680 NR3456 Código Comprador 555 666 555 444 333 Aplicando a 4FN: Código Fornecedor Código Peça 222 NR1234 222 NR5645 Código Fornecedor Código Comprador 222 555 222 666 222 222 222 222 NR7680 NR3456 FURB/DSC – Prof. Alexander Roberto Valdameri 444 333 Quinta Forma Normal (5FN) Enunciado: Uma tabela está na quinta forma normal se está na 4FN e seu conteúdo não pode ser reconstituído a partir de tabelas menores. Objetivo: Impedir que a decomposição de tabelas gere informação inconsistente na junção. Utilização: Verifique sempre se há ou não necessidade de conceber relacionamentos de grau maior do que dois. Forma Normal BOYCE-CODD (FNBC) Enunciado: Uma tabela está na FNBC se e somente se todos os determinantes forem chaves candidatas. Chave candidata é um ou mais atributos que podem ser uma chave. Aluno Especialização Orientador 100 150 200 250 300 300 Matemática Psicologia Matemática Matemática Psicologia Matemática Nelson Elaine Roseli Nelson Marli Roseli Aplicando a FNBC: Aluno 100 150 Orientador Nelson Elaine Orientador Nelson Elaine Especialização Matemática Psicologia 200 250 Roseli Nelson Roseli Marli Matemática Psicologia FURB/DSC – Prof. Alexander Roberto Valdameri