Normalização
Normalização é o conjunto de
regras que visa minimizar as
anomalias de modificação dos
dados e dar maior flexibilidade
em sua utilização.
Normalização
Existem cinco estágios de normalização, 1º, o
2º, o 3º, o 4º e o 5º. Para um banco de dados
se encontrar em cada um desses estágios ou
formas (denominadas formas normais), cada
uma de suas tabelas deve atender a alguns
pré-requisitos.
Os pré-requisitos são cumulativos, isto é,
para alcançar a 3ª forma normal (3NF), por
exemplo, um banco de dados precisa atender
aos pré-requisitos das 1ª e 2ª formas normais,
acrescidos dos requisitos exclusivos da 3NF.
Dependência Funcional
As regras de Normalização são
fundamentadas nos conceitos de
“dependência Funcional”.
Um atributo B possui dependência
Funcional do atributo A se, para
cada valor do atributo A, existe
exatamente um único valor do
atributo B.
Dependência Funcional
A dependência funcional é
representada por: A → B
Exemplo:
Na tabela Cliente (CPF, Nome, Conta)
Nome é função (Dependentes Funcional )do
CPF e essa dependência é expressa por:
CPF → Nome
Dependência Funcional Total
Um atributo B possui “Dependência Funcional
Total” do atributo A (possivelmente composto)
se:
•
•
B é Dependente Funcional do atributo A
e
B não é dependente funcional de nenhum
subconjunto apropriado do atributo A
Exemplo inicial  Tabela Clientes
Tabela Clientes (Num, Nome, Telefone)
Num
Nome
Telefone
123
Rachel Ingram
555-861-2025
456
James Wright
555-403-1659
555-776-4100
555-780-4324
789
Maria Fernandez
555-808-9633
Primeira Forma Normal (1FN)
Primeira Forma Normal -(1FN) - “Uma relação
está na 1FN se somente todos os domínios básicos
contiverem somente valores atômicos (não
contiver grupos repetitivos)”
Primeira Forma Normal (1FN)
A tabela CLIENTES não está na primeira forma normal porque
existem domínios básicos com valores não atômicos, no caso,
decorrente da possibilidade de mais de um telefone por cliente.
Podemos transformar a tabela CLIENTES na 1 FN, construindo a
tabela CLIETES2
Transformando a Tabela CLIENTES
na Primeira Forma Normal (1FN)
CLIENTES2
Num
123
456
456
456
789
Nome
Rachel Ingram
James Wright
James Wright
James Wright
Maria Fernandez
Telefone
555-861-2025
555-403-1659
555-776-4100
555-780-4324
555-808-9633
Segunda Forma Normal (2FN)
“Uma relação R está na 2FN se e somente se
ela estiver na primeira e todos os atributos
não chave forem totalmente dependentes da
chave primária (dependente de toda a chave e
não apenas de parte dela)”
Segunda Forma Normal (2FN)
Procedimentos:
a) Identificar os atributos que não são funcionalmente dependentes
de toda a chave primária.
b) Remover da entidade todos esses atributos identificados e criar
uma nova entidade com eles. A chave primária da nova entidade
será o atributo do qual os atributos do qual os atributos
removidos são funcionalmente dependentes.
A chave primária da nova entidade será o atributo do qual os
atributos removidos são funcionalmente dependentes.
Segunda Forma Normal (2FN) Exemplo
Suponhas as tabelas:
Notas_ Fiscais (Num_NF, Data da Emissão, Código do Cliente,
Nome do cliente, Endereço do cliente, Total Geral da Nota)
Itens_Da_Venda (Num_NF, Código da Mercadoria, Descrição da
Mercadoria, Quantidade vendida, Preço unitário, Total da linha
da nota)
Itens_Da_Vendas não está em 2FN pois “Descrição da Mercadoria”
e “Preço unitário” não são Totalmente Dependentes Funcionais
da Chave (Num. NF, Código da Mercadoria), pois são
Dependentes Funcionais de um subconjunto da chave que é o
“Código da Mercadoria”.
Segunda Forma Normal (2FN) Exemplo
Normalizando para segunda forma normal (2FN) teremos:
Notas_ Fiscais (Num_NF, Série, Data da Emissão,Código do Cliente,
Nome do cliente, Endereço do clien te, Total Geral da Nota)
Itens_Da_Venda (Num_NF, Código da Mercadoria, Quantidade
vendida, Total da linha da nota )
Mercadorias (Código da Mercadoria, Descrição da Mercadoria,
Preço unitário )
Terceira Forma Normal (3FN)
”Uma relação R está na 3FN se somente
estiver na 2FN e todos os atributos não
chave forem dependentes não
transitivos da chave primária (cada
atributo for funcionalmente
dependente apenas dos atributos
componentes da chave primária ou se
todos os seus atributos não chave forem
independentes entre si)”
Terceira Forma Normal (3FN)
Procedimentos:
a) Identificar todos os atributos que são funcionalmente
dependentes de outros atributos não chave;
b) Removê-los e criar uma nova entidade com os mesmos.
A chave primária da nova entidade será o atributo do qual os
atributos removidos são funcionalmente dependentes.
Terceira Forma Normal (3FN) Tomando-se novamente as tabelas em 2FN do exemplo
anterior.
• Notas_ Fiscais (Num_NF, Série, Data da
Emissão,Código do Cliente, Nome do cliente, Endereço
do clien te, Total Geral da Nota)
•
Itens_Da_Venda (Num_NF, Código da Mercadoria,
Quantidade vendida, Total da linha da nota )
•
Mercadorias (Código da Mercadoria, Descrição da
Mercadoria, Preço unitário )
Terceira Forma Normal (3FN) - Exemplo
Itens_Da_Vendas e Mercadorias estão em 2FN e já
estão em 3FN. Por outro lado, observe a tabela
Notas_Fiscais
Notas_ Fiscais (Num_NF, Série, Data da Emissão,
Código do Cliente, Nome do cliente, Endereço do
cliente, Total Geral da Nota)
Esta tabela está em 2FN, mas não está em 3FN pois
“Nome do Cliente” e “Endereço do Cliente” são
Dependentes Funcionais de Código do Cliente, que por
sua vez é Dependente Funcional de Num_NF, ou seja,
são Dependentes Funcionais Transitivos da chave
(Num. NF).
Terceira Forma Normal (3FN) - Exemplo
Normalizando para segunda forma normal (3FN)
teremos:
• Notas_ Fiscais (Num_NF, Data Emissão, Código do
Cliente, Total Geral da Nota)
• Clientes (Código do Cliente, Nome do cliente, Endereço
do cliente)
Boyce Codd Normal Form (BCNF) -
” Uma relação R está na BCNF se todo
determinante for uma chave candidata”
Boyce Codd Normal Form (BCNF) -
A BCNF substitui ao mesmo tempo a
2FN e 3 FN.
Vamos aplicá-la ao exemplo anterior e
veremos que o resultado é o mesmo
Download

Normalização de Banco de Dados