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
Download

Normalização