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,
dependente de X

funcionalmente

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
cod_livro
titulo_livro
cod_editora
nome_editora
peso_livro
qtd_paginas
qtd_capitulos

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
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

Av. Teste s/n


40256-000
Salvador, BA

P1

Pea 1

R$ 5,00

50

F1

Fornecedor
1

2431011

4350445

Av. Teste s/n


40256-000
Salvador, BA

P2

Pea 2

R$ 7,50

30

F1

Fornecedor
1

2431011

4350445

Av. Teste s/n


40256-000
Salvador, BA

P3

Pea 3

R$ 10,00

40

F2

Fornecedor
2

4560989

3361234

Rua. XX 40470090
Itabuna, BA

P1

Pea 1

R$ 5,00

30

F2

Fornecedor
2

4560989

3361234

Rua. XX 40470090
Itabuna, BA

P2

Pea 2

R$ 7,50

15

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

1052

Bob Jones

1053

Liz Moore

1107

Ted Smith

cod_depend

No est na 1FN

D213

D240 D241
FUNCIONARIO

matricula

nome

cod_depend

1052

Bob Jones

D213

1053

Liz Moore

1107

Ted Smith

D240

1107

Ted Smith

D241

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
A nica dependncia total de
quantidade.

FORNECEDOR_PECA
f#
p#
nome_peca
cod_cor
cor
peso
quantidade

Projeto Lgico - Normalizao


2a Forma Normal (2FN ou 2NF)
Dependcias parciais
Problemas de atualizao (insert, update, delete);
FORNECEDOR_PECA
f#

s#

nome_pec
a

cod_co
r

cor

peso

quantidad
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);

FORNECEDOR_PECA
f#
p#
quantidade

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
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
PECA
cod_peca
nome_peca
cor
peso

Opo 2
PECA
cod_peca
nome_peca
cod_cor
peso

COR
cod_cor
cor

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 nochave 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.

MONITOR
aluno
disciplina
monitor

aluno

disciplina

monitor

Aline

Fsica II

Mrio

Aline

Lgica

Marcos

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
A

aluno

monitor

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