Você está na página 1de 32

Banco de Dados I

4 Normalizao
Grinaldo Lopes de Oliveira (grinaldo@gmail.com)
Curso Superior de Tecnologia em
Anlise e Desenvolvimento de Sistemas

* Material com crditos de colaborao dos professores Mrcio Soussa, Leandro Coelho e Pablo Florentino
Agenda

Aprendendo
Normalizao
Normalizao
Projeto Lgico - Normalizao
Processo muito importante para um projeto de
banco de dados.
Consiste em analisar o modelo e atravs de
regras formais, reestruturar possveis tabelas e
atributos, reduzindo assim redundncias e
permitindo o crescimento do BD com o mnimo
de efeito colateral.
Consiste em diminuir redundncia e anomalias
de insero, atualizao e deleo.
Projeto Lgico - Normalizao
Consiste em analisar relaes para satisfazer
requisitos cada vez mais rigorosos acarretando
agrupamentos cada vez melhores, mais estveis
e seguros.
Realiza-se uma srie de testes para certificar se
a relao est ou no em uma determinada
forma normal. O processo consiste em certificar
e decompor.
Fundamentado no conceito de Dependncia
Funcional.
Projeto Lgico Formas Normais
Dividem-se em 6 formas normais:
1 FN (1o Forma Normal)
2 FN (2o Forma Normal)
3 FN (3o Forma Normal) * Diz-se normalizado
4 FN (4o Forma Normal)
FNBC (Forma Normal de Boyce e Codd)
_______Estudaremos at aqui ______________
5 FN (5o Forma Normal)
Projeto Lgico Fundamento das FNs
Dependncia Funcional
Corresponde a um restrio entre
conjuntos de atributos em uma relao
Se X identifica Y, ento X Y e diz-se
que h uma dependncia funcional entre
eles.
X determina Y, Y funcionalmente
dependente de X
Projeto Lgico - Normalizao
Dependncias Funcionais
cod_livro titulo_livro
cod_livro cod_editora LIVRO
cod_livro nome_editora cod_livro
cod_livro peso_livro titulo_livro
cod_livro qtd_paginas
cod_editora
cod_livro qtd_capitulos
nome_editora
titulo_livro cod_liv peso_livro
titulo_livro cod_ed qtd_paginas
titulo_livro nome_ed qtd_capitulos
titulo_livro peso_liv
titulo_livro qtpaginas_liv
titulo_livro qtcapitulos_liv
cod_editora nome_editora
nome_editora cod_editora
Projeto Lgico - Normalizao
Dependncias Funcionais
titulo_livro cod_livro

cod_editora cod_editora

nome_editora nome_editora
cod_livro titulo_livro
peso_livro peso_livro

qtd_paginas qtd_paginas

qtd_capitulos qtd_capitulos

cod_livro e titulo_livro so chaves candidatas. Todos os atributos de


uma relao devem ser funcionalmente dependentes das chaves candidatas
e, consequentemente, da chave primria.
Debate em Sala de Aula
Identifique as dependncias funcionais na relao
abaixo:
Matricula, nome, sexo e data de nascimento do aluno, cdigo,
nome e carga horria de disciplina e a data da inscrio do
aluno na disciplina
Projeto Lgico Modelo no normalizado
Cod Nome Tel 1 Tel 2 Endereo Cd. Nome Preo Qtde
Fornecedor Forneced Pea Pea Unitrio Pedi
(PK) or (PK) da
F1 Fornecedor 2431011 4350445 Av. Teste s/n P1 Pea 1 R$ 5,00 50
1 40256-000
Salvador, BA
F1 Fornecedor 2431011 4350445 Av. Teste s/n P2 Pea 2 R$ 7,50 30
1 40256-000
Salvador, BA
F1 Fornecedor 2431011 4350445 Av. Teste s/n P3 Pea 3 R$ 10,00 40
1 40256-000
Salvador, BA
F2 Fornecedor 4560989 3361234 Rua. XX 40470- P1 Pea 1 R$ 5,00 30
2 090
Itabuna, BA
F2 Fornecedor 4560989 3361234 Rua. XX 40470- P2 Pea 2 R$ 7,50 15
2 090
Itabuna, BA
Projeto Lgico Anomalias do Modelo
Problemas de Insero
S possvel inserir um novo fornecedor quando o mesmo solicitar peas;
S possvel inserir uma nova pea quando a mesma for solicitada por um
fornecedor;

Problemas de Atualizao
Para atualizar o endereo do fornecedor, todos os registros desse
fornecedor devero ser atualizados.
Para atualizar o preo da pea, todos os registros dessa pea devero ser
atualizados.

Problemas de Excluso
Caso sejam deletadas todas as solicitaes de um fornecedor, seus dados
cadastrais tambm sero apagados.
Debate em Sala de Aula

Existe alguma vantagem em


manter tabelas desnormalizadas?
Projeto Lgico - Normalizao
1a Forma Normal (1FN ou 1NF)
Uma relao est 1FN se e somente se todos os
seus domnios s contm valores atmicos;
O modelo relacional exige que as relaes
estejam pelo menos na 1FN;
Caractersticas:
Estrutura tabular;
Princpio da atomicidade;
Proibio de campos multivalorados.
Projeto Lgico - Normalizao

1a Forma Normal (1FN ou 1NF)


FUNCIONARIO
matricula nome cod_depend
1052 Bob Jones D213 No est na 1FN
1053 Liz Moore
1107 Ted Smith D240 D241

FUNCIONARIO
matricula nome cod_depend
1052 Bob Jones D213
Est na 1FN
1053 Liz Moore
1107 Ted Smith D240
1107 Ted Smith D241
Projeto Lgico - Normalizao
2a Forma Normal (2FN ou 2NF)
Uma relao est na 2 FN se e somente se est
na 1FN e todos os atributos no chave so
totalmente dependentes da chave primria;
Diz respeito s chaves primrias compostas;
Se a chave primria de uma relao no
composta e a relao est na 1FN, ela est
tambm na 2FN;
Uma relao que est na 1 FN pode no estar na
2FN se sua chave for composta.
Projeto Lgico - Normalizao

2a Forma Normal (2FN ou 2NF)


Decomposio funcional
p# nome_peca
FORNECEDOR_PECA
p# cod_cor f#
p# cor p#
nome_peca
p# peso cod_cor
(f#,p#) quantidade cor
peso
A nica dependncia total de quantidade
quantidade.
Projeto Lgico - Normalizao
2a Forma Normal (2FN ou 2NF)
Dependcias parciais
Problemas de atualizao (insert, update, delete);

FORNECEDOR_PECA
f# s# nome_pec cod_co cor peso quantidad
a r e
f1 p1 prego c1 cinza 13 300
f1 P2 porca c2 preto 15 200
f2 p1 prego c1 cinza 13 750
f2 p3 chave c3 azul 10 650
f2 p4 roda c2 preto 23 400
f4 p5 jante c1 cinza 25 200
Projeto Lgico - Normalizao

2a Forma Normal (2FN ou 2NF)


Dependcias parciais
Soluo: decomposio de projeo sem perda de
dados (non-loss projection decomposition);

PECA
FORNECEDOR_PECA p#
f# nome_peca
p# cod_cor
quantidade cor
peso
quantidade
Projeto Lgico - Normalizao
3 Forma Normal (3FN ou 3NF)
Uma relao est na 3 FN se e somente se ela est na 2
FN e seus atributos no chave so mutuamente
independentes;
Os atributos so considerados mutuamente
independentes quando nenhum atributo funcionalmente
dependente de nenhuma combinao dos outros, exceto
da chave primria;
A ttulo de simplificao a terceira forma normal considera
que a relao ter somente uma chave candidata, ou seja,
a chave primria.
Projeto Lgico - Normalizao

3 Forma Normal (3FN ou 3NF)


Os atributos cod_cor e cor so dependentes
funcionalmente um do outro;
Dependncia indesejada durante as atualizaes
de dados;
No est na 3FN. PECA
cod_peca
nome_peca
cod_cor
cor
peso
Projeto Lgico - Normalizao

3 Forma Normal (3FN ou 3NF)


Opes para normalizao da relao:
Eliminar o atributo cod_cor; (Opo 1)
Criar uma relao distinta para as informaes sobre
cor. (Opo 2)
Opo 1 Opo 2

PECA PECA COR


cod_peca cod_peca cod_cor
nome_peca nome_peca cor
cor cod_cor
peso peso
Projeto Lgico - Normalizao

4a Forma Normal (4FN)


Uma tabela est na 4FN se ela estiver na 3FN e
no possuir DFs multivaloradas
tabelas com DFs multivaloradas devem ser
desmembradas em tabelas que no possuam tais DFs
Tabelas que possuem CP composta por um ou
dois atributos, ou que possuem atributos no-
chave esto automaticamente na 4FN
4FN - Aplicao
3FN: Estantes (nmero, capacidade)
Livros (ISBN, ttulo, ano)
Autores (codAutor, nome, nacionalidade)
DistribuioLivrosAutor(nmero, ISBN, codAutor)
DF Multivalorada: ISBN codAutor

4FN: Estantes (nmero, capacidade)


Livros (ISBN, ttulo, ano)
Autores (codAutor, nome, nacionalidade)
DistribuioLivros(nmero, ISBN)
Autoria(ISBN, codAutor)
Projeto Lgico - Normalizao

Boyce and Codd Normal Form (BCNF)


Uma relao est na BCNF se e somente se todo
determinante chave candidata;
Um determinante qualquer atributo do qual algum outro
atributo funcionalmente dependente;
As anomalias resolvidas pela BCNF aparecem em
relaes com as seguintes caractersticas:
Mltiplas chaves candidatas;
Chaves candidatas so compostas;
Chaves candidatas possuem ao menos um atributo em
comum.
Projeto Lgico - Normalizao
Boyce and Codd Normal Form (BCNF)
Exemplo: Relao de Monitores de Disciplinas:
Cada disciplina pode ter vrios monitores;
Um monitor s monitora uma disciplina.

aluno disciplina monitor


MONITOR
aluno Aline Fsica II Mrio
disciplina Aline Lgica Marcos
monitor Aline Pesquisa Ana
Carlos Fsica II Paula
Joo Fsica II Mrio
Projeto Lgico - Normalizao

Boyce and Codd Normal Form (BCNF)


Dependncias funcionais
monitor disciplina
{aluno, disciplina} monitor
{aluno, monitor} disciplina

aluno monitor

disciplina
Est na 3FN, mas no est
na BCNF.
Projeto Lgico - Normalizao

Boyce and Codd Normal Form (BCNF)


Soluo (decomposio sem perdas):

ALUNO_MONITOR MONITOR_DISCIPLIN
aluno monitor A

Aline Mrio monitor displina

Aline Marcos Mrio Fsica II

Aline Ana Marcos Lgica

Carlos Paula Ana Pesquisa

Joo Mrio Paula Fsica II

Atende BCNF.
Projeto Lgico - Normalizao

Benefcios
Estabilidade do Modelo Lgico
Ex.: Itens de repetio

Integridade
Economia
Custo de manipulao dos dados. Backup, restaurao,
atualizao (estr. adicionais)

Fidelidade ao Ambiente Observado


Tarefa Extra-Classe

Exerccio 1 - A tabela abaixo est na 1FN.


Obtenha a 2FN, 3FN e 4FN:

ArtigosAceitos (ID-artigo, ttulo, ano, ID-autor,


codEvento, nomeEvento, ID-revisor)
Tarefa Extra-Classe
Exerccio 2 Relatrio de Reservas em uma Locadora
de DVDs
Banco de Dados I
Aula 4 Normalizao

Grinaldo Lopes de Oliveira (grinaldo@gmail.com)


Curso Superior de Tecnologia em
Anlise e Desenvolvimento de Sistemas

Você também pode gostar