Вы находитесь на странице: 1из 25

Banco de Dados

Prof. Carlos Fernando Papotti


Normalizao
A normalizao de dados uma srie de
passos que se segue no projeto de um
banco de dados que permite um
armazenamento consistente e um eficiente
acesso aos dados em um banco de dados
relacional. Esses passos reduzem a
redundncia de dados e as chances dos
dados se tornarem inconsistentes.
Formas Normais
O Processo de normalizao aplica
uma srie de regras sobre as tabelas
de um banco de dados, para verificar
se estas esto corretamente
projetadas. Embora existam cinco
formas normais (ou regras de
normalizao), na prtica usamos um
conjunto de trs Formas Normais.
Apesar de existir outras formas
normais como a quarta forma normal
e quinta forma normal, apenas as trs
primeiras tem sido considerada
atualmente.
Primeira Forma Normal
Uma relao R est na 1FN se
todos os
domnios bsicos contiverem
somente
valores atmicos (no possuem
grupos
repetitivos).
Procedimentos
Identificar a chave primria da
entidade.
Identificar o grupo repetitivo e
remov-lo da entidade.
Criar uma nova entidade com a
chave primria da entidade anterior
e o grupo repetitivo.
A chave primria da nova entidade
ser
obtida pela concatenao da chave
primria da entidade inicial e a do
grupo repetitivo.
Exemplo
(NumeroPedido; DataPedido;
CodigoCliente; NomeCliente;
EnderecoCliente; (CodigoProduto;
NomeProduto; QuantidadeProduto;
PrecoProduto; TotalProduto);
TotalPedido)
PEDIDO: (NumeroPedido;
DataPedido;
CodigoCliente; NomeCliente;
EnderecoCliente; TotalPedido)
ITEM_PEDIDO: (NumeroPedido;
CodigoProduto; NomeProduto;
QuantidadeProduto; PrecoProduto;
TotalProduto)
Segunda Forma Normal
Uma relao R est na 2FN se e somente
se ela estiver na primeira e todos os
atributos no chave forem totalmente
dependentes da chave primria composta
(dependente de toda a chave e no apenas
de parte dela).
Procedimentos:
Identificar os atributos que no so
funcionalmente dependentes de toda
a
chave primria.
Remover da entidade todos esses
atributos identificados e criar uma
nova
entidade com eles.
A chave primria da nova entidade
ser o
atributo do qual os atributos
removidos
so funcionalmente dependentes.
ITEM_PEDIDO: (NumeroPedido;
CodigoProduto; NomeProduto;
QuantidadeProduto; PrecoProduto;
TotalProduto)

PRODUTO: (CodigoProduto;
NomeProduto; PrecoProduto)
Terceira Forma Normal
Uma relao R est na 3FN se estiver na
2FN e todos os atributos no chave
forem dependentes no transitivos da
chave primria (cada atributo for
funcionalmente dependente apenas dos
atributos componentes da chave
primria
ou se todos os seus atributos no chave
forem independentes entre si).
Procedimentos:
Identificar todos os atributos que
so
funcionalmente dependentes de
outros
atributos no chave.
Remov-los e criar uma nova
entidade
com os mesmos.
A chave primria da nova entidade
ser o atributo do qual os atributos
removidos so funcionalmente
dependentes.
PEDIDO: (NumeroPedido;
DataPedido;
CodigoCliente; NomeCliente;
EnderecoCliente; TotalPedido)

CLIENTE: (CodigoCliente;
NomeCliente;
EnderecoCliente)
PEDIDO: (NumeroPedido; DataPedido;
CodigoCliente; TotalPedido)
CLIENTE: (CodigoCliente; NomeCliente;
EnderecoCliente)
ITEM_PEDIDO: (NumeroPedido;
CodigoProduto; QuantidadeProduto;
TotalProduto)
PRODUTO: (CodigoProduto;
NomeProduto; PrecoProduto)
Finalmente a tabela normalizada!
Transcreva para o DBDesigner
Normalize a tabela abaixo e
o modele no DBDesigner:
Cdigo de
Membro da
Equipe
Nome de
Membro da
Equipe
Ms Vendas do
Membro
Cdigo de
Departamento
Nome do
Departamento
Tabela Normalizada
Cdigo de
Membro de
Equipe
Ms Vendas do
Membro
Cdigo de
Membro de
equipe
Nome de Membro
de Equipe
Cdigo de
Departamento
Cdigo de
departamento
Nome de
Departamento
A Tabela a seguir Representa um sistema de recebimento de pedidos.
Normalize-a na terceira forma normal e a modele no DBDesigner
Suponha que os produtos sejam classificados por cdigo
Cdigo do
pedido
Data Cdigo do
Cliente
Nome do
Cliente
Cdigo do
Produto
Nome do
Produto
Preo
Unitrio
Cdigo de
Classificao
do Produto
Nome de
Classificao do
Produto
Quantid
ade
Tabela na 3 Forma Normal
Cdigo de pedido Data Cdigo do Cliente
Cdigo de Cliente Nome do Cliente
Cdigo de Pedido Cdigo do Produto Quantidade
Cdigo do
produto
Cdigo de
Classificao do
Produto
Nome do Produto Preo Unitrio
Cdigo de classificao do Produto Nome de Classificao do Produto
Com os dados abaixo faa a
normalizao:

paciente (nro_paciente, nome_paciente,
nro_quarto, descrio_quarto,
nro_cmodos_quarto, {cod_mdico,
nome_mdico, fone_mdico})
1FN
paciente (nro_paciente, nome_paciente, nro_quarto,
descrio_quarto,
nro_cmodos_quarto, cod_mdico, nome_mdico,
fone_mdico)
2FN
nro_paciente nome_paciente, nro_quarto, descrio_quarto,
nro_cmodos_quarto
cod_mdico nome_mdico, fone_mdico
nro_paciente, cod_mdico
paciente (nro_paciente, nome_paciente, nro_quarto,
descrio_quarto,
nro_cmodos_quarto)
mdico (cod_mdico, nome_mdico, fone_mdico)
atende (nro_paciente, cod_mdico)
3FN
nro_paciente nome_paciente, nro_quarto
nro_quarto descrio_quarto, nro_cmodos_quarto
paciente (nro_paciente, nome_paciente, nro_quarto)
mdico (cod_mdico, nome_mdico, fone_mdico)
atende (nro_paciente, cod_mdico)
quarto (nro_quarto, descrio_quarto, nro_cmodos_quarto)

Вам также может понравиться