Sunteți pe pagina 1din 32

Banco de Dados I

Banco de Dados I
4
4

Normalizao
Normalizao
Grinaldo Grinaldo Lopes de Oliveira ( Lopes de Oliveira (grinaldo grinaldo@ @gmail gmail.com) .com)
Curso Superior de Tecnologia em Curso Superior de Tecnologia em
Anlise e Desenvolvimento de Sistemas Anlise e Desenvolvimento de Sistemas
* Material com crditos de colaborao dos professores Mrcio Soussa, Leandro Coelho e Pablo Florentino
Agenda
Aprendendo
Normalizao
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 - Normalizao
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 Formas Normais
Dependncia Funcional
Corresponde a um restrio entre
conjuntos de atributos em uma relao
Se X identifica Y, ento XY e diz-se
que h uma dependncia funcional entre
eles.
X determina Y, Y funcionalmente
dependente de X
Projeto Lgico Fundamento das FNs
Projeto Lgico - Normalizao
Dependncias Funcionais
cod_livro titulo_livro
cod_livro cod_editora
cod_livro nome_editora
cod_livro peso_livro
cod_livro qtd_paginas
cod_livro qtd_capitulos
titulo_livro cod_liv
titulo_livro cod_ed
titulo_livro nome_ed
titulo_livro peso_liv
titulo_livro qtpaginas_liv
titulo_livro qtcapitulos_liv
cod_editora nome_editora
nome_editora cod_editora
LIVRO LIVRO
cod_livro
titulo_livro
cod_editora
nome_editora
peso_livro
qtd_paginas
qtd_capitulos
Projeto Lgico - Normalizao
Dependncias Funcionais
cod_livro
titulo_livro
cod_editora
nome_editora
peso_livro
qtd_paginas
qtd_capitulos
titulo_livro
cod_livro
cod_editora
nome_editora
peso_livro
qtd_paginas
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
Cod
Fornecedor
(PK)
Nome
Forneced
or
Tel 1 Tel 2 Endereo Cd.
Pea
(PK)
Nome
Pea
Preo
Unitrio
Qtde
Pedi
da
F1 Fornecedor
1
2431011 4350445 A. Te!te !"n
4025#$000
%alador& 'A
P1 Pea 1 () 5&00 50
F1 Fornecedor
1
2431011 4350445 A. Te!te !"n
4025#$000
%alador& 'A
P2 Pea 2 () *&50 30
F1 Fornecedor
1
2431011 4350445 A. Te!te !"n
4025#$000
%alador& 'A
P3 Pea 3 () 10&00 40
F2 Fornecedor
2
45#0+,+ 33#1234 (-a. .. 404*0$
0+0
/ta0-na& 'A
P1 Pea 1 () 5&00 30
F2 Fornecedor
2
45#0+,+ 33#1234 (-a. .. 404*0$
0+0
/ta0-na& 'A
P2 Pea 2 () *&50 15
Projeto Lgico Modelo no normalizado
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.
Projeto Lgico Anomalias do Modelo
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
D240 D241 Ted Smith 1107
Liz Moore 1053
D213 Bob Jones 1052
cod_depend nome matricula
D241 Ted Smith 1107
FUNCIONARIO
D240 Ted Smith 1107
Liz Moore 1053
D213 Bob Jones 1052
cod_depend nome matricula
No est na 1FN No est na 1FN
Est na 1FN Est na 1FN
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
p# cod_cor
p# cor
p# peso
(f#,p#) quantidade
FORNECEDOR_PECA FORNECEDOR_PECA
f#
p#
nome_peca
cod_cor
cor
peso
quantidade
A nica dependncia total de 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
200 25 cinza c1 jante p5 4
400 23 preto c2 roda p4 2
!50 10 az"# c3 cha$e p3 2
750 13 cinza c1 pre%o p1 2
200 15 preto c2 porca &2 1
300 13 cinza c1 pre%o p1 1
quantidad
e
peso cor cod_co
r
nome_pec
a
s# f#
Projeto Lgico - Normalizao
2a Forma Normal (2FN ou 2NF)
Dependcias parciais
Soluo: decomposio de projeo sem perda de
dados (non-loss projection decomposition);
FORNECEDOR_PECA FORNECEDOR_PECA
f#
p#
quantidade
PECA PECA
p#
nome_peca
cod_cor
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 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)
PECA PECA
cod_peca
nome_peca
cod_cor
peso
COR COR
cod_cor
cor
Opo 2
PECA PECA
cod_peca
nome_peca
cor
peso
Opo 1
Projeto Lgico - Normalizao
4
a
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
FN - A!licao
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.
MONITOR MONITOR
aluno
disciplina
monitor
M'rio ()sica ** Jo+o
&a"#a ()sica ** ,ar#os
-na &es."isa -#ine
Marcos L/%ica -#ine
M'rio ()sica ** -#ine
monitor disciplina aluno
Projeto Lgico - Normalizao
Boyce and Codd Normal Form (BCNF)
Dependncias funcionais
monitor disciplina
{aluno, disciplina} monitor
{aluno, monitor} disciplina
monitor
aluno
disciplina
Est na 3FN, mas no est
na BCNF.
Projeto Lgico - Normalizao
Boyce and Codd Normal Form (BCNF)
Soluo (decomposio sem perdas):
ALUNO_MONIOR
M'rio Jo+o
&a"#a ,ar#os
-na -#ine
Marcos -#ine
M'rio -#ine
monitor aluno
MONIOR_DI!CIPLIN
A
()sica ** &a"#a
&es."isa -na
L/%ica Marcos
()sica ** M'rio
displina monitor
Atende BCNF.
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
Projeto Lgico - Normalizao
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
Banco de Dados I
Aula 4
Aula 4

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

S-ar putea să vă placă și