Banco
de Dados
Normalização
Formas
para Normalizaçao
Primeira
Forma Normal
Segunda
Forma Normal
Terceira
Forma Normal
BCNF
Para que serve?
- Para analisar-se as tabelas e
organizá-las de forma que a sua estrutura seja simples,
relacional e estável
para que o gerenciamento possa ser também simples
eficiente e seguro
Objetivos
- evitar a perda e a
repetição da informação e
- atingir uma forma de
representação adequada para o que se deseja armazenar
Também pode-se utilizar
normalização para projetar tabelas a partir de documentos,
considerando-os como uma única tabela e aplicando-se as regras .
Para adequar uma tabela a uma
forma normal, deve-se redesenhar seu formato.
A normalização não faz parte do modelo E-R, mas pode auxiliar
o controle de qualidade de um projeto lógico de BD.
O que é normalização?
Considerações
- vamos supor que todas estas
informações sejam armazenadas em uma tabela chamada NotaFiscal
- considerar que:
- nome de cliente e
nome de vendedor
-
- O total da nota é um
elemento de dados redundante porque
- pode ser calculado a
partir das quantidades e preços de cada item
vendido.
- idealmente
não seria necessário armazená-lo
- depende do
projeto
Relação de Atributos de
NotaFiscal
- num
- data
- total
- codven
- nomven
- codcli
- nomcli
- endcli
- codpro
- descr
- un
- prun
- qtde
- Uma tabela está em
primeira forma normal se nenhum dos seus atributos tem
domínio multivalorado
- ou seja:
- devem ser
eliminados itens de repetição
analisando-se então a relação
de atributos da entidade NotaFiscal criada anteriormente a partir
do documento nota fiscal, podemos verificar que:
- há itens de repetição
- onde? . . .
Relação de Atributos de
NotaFiscal
- num
- data
- total
- codven
- nomven
- codcli
- nomcli
- endcli
- codpro
- descr
- un
- prun
- qtde
Relação de Atributos das
relações identificadas
- tabela NotaFiscal
- num
- data
- total
- codven
- nomven
- codcli
- nomcli
- endcli
- tabela Item
- num
- codpro
- descr
- un
- prun
- qtde
Menu
- Dependência da chave prim.
Uma tabela está na segunda forma
normal quando está na 1FN e seus atributos
dependem funcionalmente da totalidade da chave primária
analisando-se então as relações
de atributos das entidades NotaFiscal e Item
criadas anteriormente a partir da aplicação da regra de 1FN,
podemos verificar que:
- há atributos que não
dependem totalmente da chave primária.
- onde? . . .
Considerações
- num em NotaFiscal é o
atributo determinante ou chave primária porque:
- conhecendo-se num implica
em conhecer
- data
- total
- codven
- codcli
- nomecli
- endcli
SIM
Considerações
- num + codpro
em Item são os atributos determinantes ou chave
primária porque:
- conhecendo-se ambos implica
em conhecer
- isto é verdade?
NÃO
Porquê não???
Considerações
- porque, somente conhecendo-se
codpro
- mas e quanto a
- prun é o mesmo que preço
de tabela?
- qual a diferença entre
ambos?
- tabela Produto
codpro
descr
un
Relação de Atributos das
Relações Identificadas
Menu
- Dependência transitiva
- Uma tabela está na
terceira forma normal quando está na 2FN e não há
dependência funcional transitiva entre seus atributos
- o que é dependência
funcional transitiva?
- situação onde um
atributo depende de outro e este segundo depende
de um terceiro
analisando-se então as relações
de atributos das entidades NotaFiscal , Item e Produto
criadas anteriormente a partir da aplicação da regra de 2FN,
podemos verificar que:
- há atributos que dependem
transitivamente de outros.
- onde? . . .
- tabela Produto
codpro
descr
un
Identificando relações de
dependência transitiva
- tabela Produto
codpro
descr
un
tabela Cliente
codcli
nomcli
endcli
tabela Vendedor
codven
nomven
Identificando relações de
dependência transitiva
Menu
- uma tabela está na forma
normal BCNF quando todo determinante existente na tabela
é chave candidata.
- Caso uma relação possua
chaves candidatas com atributos sobrepostos, poderemos
obter imperfeições
- exemplo
- abastecimento
- nbomb
- capac
- codfun
- nomfun
- data
- hora
- codcar
- placa
- descrVeiculo
- kmOdômetro
- litros
Forma Normal de Boyce-Codd
(BCNF)
- a tabela teria 3 chaves
candidatas
Menu