Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Normalizao
Renata Viegas
2008.1
Introduo
Um dos objetivos principais do gerenciamento de
Bancos de Dados manter a integridade dos dados
nele armazenados, e para esse fim, algumas regras
precisam ser consideradas.
Algumas dessas regras so garantidas pelo prprio
gerenciador
tais como unicidade da chave, ligao entre relaes atravs
da chave estrangeira, etc.
2008.1
Introduo
necessrio que as relaes sejam
bem fundamentadas, no sentido de
evitar redundncias que possam gerar,
entre outros problemas, inconsistncia
de dados.
Para procurar garantir esse aspecto, foi
desenvolvida uma tcnica chamada
Normalizao.
2008.1
Introduo
Redundncia a causa de vrios problemas
com esquemas relacionais:
armazenamento
redundante,
anomalias
insero, de excluso e de atualizao.
de
2008.1
Introduo
Principal
tcnica
de
refinamento:
a
decomposio de um esquema em subesquemas.
A
decomposio
deve
ser
usada
cuidadosamente:
H motivos para se decompor uma relao?
A decomposio pode causar problemas?
2008.1
Introduo
Considere o esquema:
Pacientes(Id, Nome, Endereo, Telefone, Sexo,
Data_nascimento, Sigla_convnio,
Nome_convnio, Endereo_convnio,
Telefone_convnio)
2008.1
Introduo
Pacientes(Id, Nome, Endereo, Telefone, Sexo,
Data_nascimento,Sigla_convnio,
Nome_convnio, Endereo_convnio,
Telefone_convnio)
Por que?
Os dados de um convnio (nome, endereo e
telefone do convnio) so repetidos para cada
paciente associado a esse convnio.
Por exemplo, os dados da UNIMED sero repetidos
para cada um de seus associados.
2008.1
Introduo
Anomalia de Insero:
Quando se inserir um paciente preciso inserir tambm
os dados do convnio, mesmo que j estejam
cadastrados.
No possvel inserir um convnio sem inserir tambm
um paciente.
Anomalia de Excluso:
Ao se excluir um paciente, se este for o nico associado
de um convnio ento os dados do convnio sero
perdidos.
Anomalia de Modificao:
Para se modificar os dados de um convnio, preciso
atualizar os mesmos dados em todas as tuplas de
pacientes que estejam associados quele convnio.
2008.1
Dependncia Funcional
Dependncias funcionais (DFs) so restries de
integridade mais gerais que as restries de chave.
Exemplo de dependncia funcional:
{Sigla_convnio} {Nome_convnio, Endereo_convnio,
Telefone_convnio}
2008.1
Dependncia Funcional
Significado: Se duas linhas da tabela
Pacientes tiverem o mesmo valor de
Sigla_convnio, ento elas tem de ter
o mesmo valor de Nome_convnio, de
Endereo_convnio e de
Telefone_convnio.
2008.1
Dependncia Funcional
Identifique as dependncias funcionais:
2008.1
Dependncia Funcional
Identifique as dependncias funcionais:
Dependncias funcionais
Num_NF Data
Cod_Produto Descricao,Preco
Num_NF,Cod_Produto Quantidade
2008.1
Dependncia Funcional
Uma restrio de chave um caso especial de
DF: a chave determina funcionalmente todos os
outros atributos da tabela.
Como Id chave da tabela Pacientes, temos
que:
2008.1
Dependncia Funcional
Certas DFs causam redundncia!
Por exemplo Para cada associado de um
convnio, os dados do convnio so repetidos
na tabela Pacientes.
A causa desse problema a DF
2008.1
do
projeto
de
um
BD
2008.1
Normalizao
Conjunto de regras que ajudam na
definio de bancos de dados que no
contenham redundncia desnecessria
e que permitam o fcil acesso s
informaes
Mtodo
permitindo
identificar
a
existncia de problemas (anomalias) no
projeto de um BD relacional
2008.1
Normalizao
Converte progressivamente uma tabela em
tabelas de grau e cardinalidade menores at
que pouca ou nenhuma redundncia de
dados exista
H diferentes nveis de normalizao, de acordo
com as condies atendidas
A hierarquia entre as formas normais indica que
uma tabela s pode estar numa forma mais
avanada se, alm de atender as condies
necessrias,
j
estiver
na
forma
normal
imediatamente anterior
2008.1
Nveis de Normalizao
1FN
2FN
3FN
FNBC
4FN
5FN
2008.1
Normalizao
Se a normalizao bem sucedida:
O espao de armazenamento dos dados
diminui
A tabela pode ser atualizada com maior
eficincia
A descrio do BD ser imediata
2008.1
Normalizao
A finalidade das regras de normalizao
evitar anomalias de atualizao no banco de
dados
Anomalias de insero
Anomalias de alterao
Evitar inconsistncias
atualizao dos dados
Anomalias de excluso
reduzir
esforo
para
2008.1
Normalizao
Considere uma nica tabela Vendas para
representar as informaes sobre os
negcios de uma loja de CDs:
NOME_CLIENTE
COD_CD
MUSICA
CANTOR
PRECO
DATA_COMPRA
Alice Nbrega
215621
Bem que
se quis
Marisa
Monte
R$ 20,00
21/03/2003
...
...
...
...
...
...
Juliano Moreira
878650
Corcovado
Tom
Jobim
R$ 25,00
10/06/2003
2008.1
Normalizao
Caso fosse preciso registrar a compra de 5 CDs iguais
para um mesmo cliente, as seguintes anomalias
seriam observadas:
Anomalia de insero
Anomalia de alterao
Anomalia de excluso
2008.1
2008.1
ALUNO
PROFESSOR
SALA
BD1032
Alice Luna
Juliano Camargo
Mrcio Andrade
Bruno Pereira
101
...
...
...
...
CAPACIDADE
QTE_FALTAS
50
02
00
04
...
2008.1
2008.1
ALUNO
PROFESSOR
SALA
CAPACIDADE
QTE_FALTAS
BD1032
Alice Luna
Bruno Pereira
101
50
02
BD1032
Juliano
Camargo
Bruno Pereira
101
50
00
BD1032
Mrcio Andrade
Bruno Pereira
101
50
04
...
...
...
...
...
...
2008.1
2008.1
COD_TURM
A
ALUNO
PROFESSOR
SALA
CAPACIDADE
QTE_FALTA
S
BD1032
Alice Luna
Bruno Pereira
101
50
02
BD1032
Juliano
Camargo
Bruno Pereira
101
50
00
BD1032
Mrcio Andrade
Bruno Pereira
101
50
04
...
...
...
...
...
...
2008.1
2008.1
ALUNO
QTE_FALTA
S
BD1032
Alice Luna
02
BD1032
Juliano
Camargo
00
BD1032
Mrcio
Andrade
04
...
...
...
COD_TURM
A
PROFESSO
R
SALA
CAPACIDAD
E
BD1032
Bruno
Pereira
101
50
LG1512
Marina
Lucena
101
50
JV8796
Ana Barbosa
101
50
...
...
...
...
2008.1
2008.1
PROFESSOR
SALA
CAPACIDADE
BD1032
Bruno Pereira
101
50
LG1512
Marina Lucena
101
50
JV8796
Ana Barbosa
101
50
...
...
...
...
2008.1
2008.1
ALUNO
QTE_FALTA
S
BD1032
Alice Luna
02
BD1032
Juliano
Camargo
00
BD1032
Mrcio
Andrade
04
COD_TURM
A
...
PROFESSO
R
SALA
BD1032
Bruno
Pereira
101
LG1512
Marina
Lucena
101
JV8796
Ana Barbosa
101
...
...
...
...
...
SALA
CAPACIDAD
E
101
50
201
40
301
50
...
...
2008.1
2008.1
Normalizao
Aumentar o nvel de normalizao
contribui para melhorar a qualidade do
projeto do banco de dados
H ainda outras trs formas normais
(FNBC, 4FN e 5FN), cada uma com suas
restries
Essas outras formas normais no sero
vistas nesse curso
2008.1
Exerccios...
A tabela abaixo representa as vendas
numa loja de CDs.
Considerando as formas normais vistas
(1FN, 2FN e 3FN), indicar quais so
atendidas pelo projeto.
Caso alguma delas no seja atendida,
identifique o problema e proponha as
mudanas necessrias.
2008.1
Exerccio...
TABELA VENDAS
Chave composta
CLIENTE
COD_CD
215621
Alice
Nbrega
CANTOR
MUSICA
DURACA
O
Marisa
Monte
Beija Eu
Chocolat
e
2:20
3:05
Tom Jobim
Corcovad
o
Sabi
...
...
878650
...
...
PRECO
DATA_COMPRA
R$
20,00
21/03/2007
2:50
2:10
R$
25,00
...
...
...
2008.1
Soluo
A tabela Vendas no est na 1FN, pois h
vrios atributos no atmicos
Para deix-la em 1FN, preciso dividir
esses atributos em linhas
TABELA VENDAS
CLIENTE
COD_CD
CANTOR
MUSICA
DURACA
O
PRECO
DATA_COMPR
A
Alice
Nbrega
215621
Marisa
Monte
Beija Eu
2:20
R$
20,00
21/03/2007
Alice
Nbrega
215621
Marisa
Monte
Chocolate
3:05
R$
20,00
21/03/2007
Alice
Nbrega
878650
Tom Jobim
Corcovad
o
2:50
R$
25,00
21/03/2007
Alice
878650
Tom Jobim
Sabi
2:10
R$
21/03/2007
2008.1
Soluo
A tabela Vendas no est na 2FN, pois
h atributos que dependem apenas de
parte da chave primria composta
Para deix-la em 2FN, preciso criar
uma nova tabela
2008.1
Soluo
TABELA VENDAS
TABELA CDs
CLIENTE
COD_CD
DATA_COMPRA
Alice
Nbrega
215621
21/03/2007
Alice
Nbrega
878650
21/03/2007
...
...
...
COD_CD
CANTOR
MUSICA
DURACA
O
PRECO
215621
Marisa
Monte
Beija Eu
2:20
R$
20,00
215621
Marisa
Monte
Chocolat
e
3:05
R$
20,00
878650
Tom Jobim
Corcovad
o
2:50
R$
25,00
878650
Tom Jobim
Sabi
2:10
R$
2008.1
Soluo
A tabela CDs no est na 3FN, pois h
atributos que dependem de atributos
no-chave
Para deix-la em 3FN, preciso criar
uma nova tabela
2008.1
Soluo
COD_CD
CANTOR
MUSICA
PRECO
215621
Marisa
Monte
Beija Eu
R$
20,00
215621
Marisa
Monte
Chocolate
R$
20,00
878650
Tom Jobim
Corcovad
o
R$
25,00
878650
Tom Jobim
Sabi
R$
25,00
TABELA CDs
TABELA MUSICAS
MUSICA
DURACA
O
Beija Eu
2:20
Chocolat
e
3:05
Corcovad
o
2:50
Sabi
2:10
2008.1
CLIENTE
COD_CD
CANTOR
MUSICA
DURACA
O
PRECO
DATA_COMPR
A
Alice
Nbrega
215621
Marisa
Monte
Beija Eu
2:20
R$
20,00
21/03/2007
Alice
Nbrega
215621
Marisa
Monte
Chocolate
3:05
R$
20,00
21/03/2007
Alice
Nbrega
878650
Tom Jobim
Corcovad
o
2:50
R$
25,00
21/03/2007
Alice
Nbrega
878650
...
Tom Jobim
Sabi COD_CD
2:10 DATA_COMPRA
R$
21/03/2007
CLIENTE
25,00
Alice
215621
21/03/2007
...
... Nbrega ...
...
...
...
TABELA VENDAS
Alice
878650
21/03/2007
Nbrega
...
...
TABELA MUSICAS
MUSICA
DURACA
O
...
TABELA CDs
COD_CD
CANTOR
MUSICA
PRECO
215621
Marisa
Monte
Beija Eu
R$
20,00
Beija Eu
2:20
Chocolat
e
3:05
215621
Marisa
Monte
Chocolate
R$
20,00
Corcovad
o
2:50
878650
Tom Jobim
Corcovad
o
R$
25,00
2008.1
Observao...
Veja que as tabelas Vendas, CDs e Musicas j
esto em 3FN, mas ainda apresentam
algumas redundncias desnecessrias
Cliente e Data_Compra na tabela Vendas
Cod_CD, Cantor e Preco na tabela CDs
Para
resolver
esses
problemas,
seria
necessrio aplicar outras formas normais
2008.1
Exerccio...
A tabela abaixo representa os pedidos
de produtos de software para uma loja
e no obedece nenhuma das formas
normais vistas (1FN, 2FN e 3FN).
Indique os passos para deix-la em
cada uma dessas formas normais.
2008.1
Exerccio...
TABELA PEDIDOS
NUM_PEDIDO
DATA
FORNECEDOR
CNPJ
ENDERECO
COD_PRODUTO
NOME
QUANT
PRECO
033A
002M
145J
DOS
Corel
ABC
04
01
13
R$ 130
R$ 499
R$ 256
003
20/01/03
CasaSoftware
8888
R. Lapa, 77
004
27/01/03
BrasilSoftware
5555
Al. It, 49
002M
083P
145J
Corel
ZAPT
ABC
02
10
50
R$ 450
R$ 85
R$ 110
...
...
...
...
...
...
...
...
...
2008.1
Soluo...
Para deixar a tabela em 1FN, preciso
dividir os atributos no-atmicos em
linhas
A chave da tabela composta por
Num_Pedido e Cod_Produto
2008.1
Soluo...
TABELA PEDIDOS
NUM_PEDIDO
DATA
FORNECEDOR
CNPJ
ENDERECO
COD_PRODUTO
NOME
QUANT
PRECO
003
20/01/03
CasaSoftware
8888
R. Lapa, 77
033A
DOS
04
R$ 130
003
20/01/03
CasaSoftware
8888
R. Lapa, 77
002M
Corel
01
R$ 499
003
20/01/03
CasaSoftware
8888
R. Lapa, 77
145J
ABC
13
R$ 256
004
27/01/03
BrasilSoftware
5555
Al. It, 49
002M
Corel
02
R$ 450
004
27/01/03
BrasilSoftware
5555
Al. It, 49
083P
ZAPT
10
R$ 85
004
27/01/03
BrasilSoftware
5555
Al. It, 49
145J
ABC
50
R$ 110
...
...
...
...
...
...
...
...
...
2008.1
Soluo
Para deixar a tabela em 2FN, preciso criar
novas tabelas para os atributos que
dependem apenas de parte da chave
primria composta
Data, Fornecedor, CNPJ e Endereco dependem
apenas de Num_Pedido
Nome depende apenas de Cod_Produto
Quantidade e Preco dependem da chave composta
2008.1
Soluo
TABELA PEDIDOS
TABELA PRODUTOS
NUM_PEDIDO
COD_PRODUTO
QUANT
PRECO
COD_PRODUTO
NOME
003
033A
04
R$ 130
033A
DOS
003
002M
01
R$ 499
002M
Corel
003
145J
13
R$ 256
145J
ABC
004
002M
02
R$ 450
083P
ZAPT
004
083P
10
R$ 85
004
145J
50
R$ 110
TABELA DADOS_PEDIDOS
NUM_PEDIDO
DATA
FORNECEDOR
CNPJ
ENDERECO
003
20/01/03
CasaSoftware
8888
R. Lapa, 77
004
27/01/03
BrasilSoftware
5555
Al. It, 49
2008.1
Soluo
Para deixar as tabelas em 3FN,
preciso criar novas tabelas para os
atributos dependentes de atributos nochave
CNPJ e Endereco dependem de Fornecedor
2008.1
Soluo
TABELA PEDIDOS
NUM_PEDID
O
COD_PRODUT
O
QUAN
T
PRECO
003
033A
04
003
002M
003
TABELA PRODUTOS
COD_PRODUTO
NOME
R$ 130
033A
DOS
01
R$ 499
002M
Corel
145J
13
R$ 256
145J
ABC
004
002M
02
R$ 450
083P
ZAPT
004
083P
10
R$ 85
004
145J
50
R$ 110
TABELA DADOS_PEDIDOS
TABELA FORNECEDORES
NUM_PEDIDO
DATA
CNPJ
003
20/01/03
8888
004
27/01/03
5555
CNPJ
FORNECEDO
R
ENDEREC
O
8888
CasaSoftware
R. Lapa, 77
5555
BrasilSoftware
Al. It, 49