SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
Banco de Dados I
Banco de Dados I
4
4 –
– Normalização
Normalização
Grinaldo
Grinaldo Lopes de Oliveira (
Lopes de Oliveira (grinaldo
grinaldo@
@gmail
gmail.com)
.com)
Curso Superior de Tecnologia em
Curso Superior de Tecnologia em
Análise e Desenvolvimento de Sistemas
Análise e Desenvolvimento de Sistemas
* Material com créditos de colaboração dos professores Márcio Soussa, Leandro Coelho e Pablo Florentino
Agenda
Aprendendo
Normalização
Normalização
Processo muito importante para um projeto de
banco de dados.
Consiste em analisar o modelo e através de
regras formais, reestruturar possíveis tabelas e
atributos, reduzindo assim redundâncias e
permitindo o crescimento do BD com o mínimo
de efeito colateral.
Consiste em diminuir redundância e anomalias
de inserção, atualização e deleção.
Projeto Lógico - Normalização
Consiste em analisar relações para satisfazer
requisitos cada vez mais rigorosos acarretando
agrupamentos cada vez melhores, mais estáveis
e seguros.
Realiza-se uma série de testes para certificar se
a relação está ou não em uma determinada
forma normal. O processo consiste em certificar
e decompor.
Fundamentado no conceito de Dependência
Funcional.
Projeto Lógico - Normalização
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 Lógico – Formas Normais
Dependência Funcional
Corresponde a um restrição entre
conjuntos de atributos em uma relação
Se X identifica Y, então X Y e diz-se
que há uma dependência funcional entre
eles.
X determina Y, Y é funcionalmente
dependente de X
Projeto Lógico – Fundamento das FNs
Projeto Lógico - Normalização
Dependências 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 Lógico - Normalização
Dependências 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 são chaves candidatas. Todos os atributos de
uma relação devem ser funcionalmente dependentes das chaves candidatas
e, consequentemente, da chave primária.
Debate em Sala de Aula
Identifique as dependências funcionais na relação
abaixo:
Matricula, nome, sexo e data de nascimento do aluno, código,
nome e carga horária de disciplina e a data da inscrição do
aluno na disciplina
Cod
Fornecedor
(PK)
Nome
Forneced
or
Tel 1 Tel 2 Endereço Cód.
Peça
(PK)
Nome
Peça
Preço
Unitário
Qtde
Pedi
da
F1 Fornecedor
1
2431011 4350445 Av. Teste s/n
40256-000
Salvador, BA
P1 Peça 1 R$ 5,00 50
F1 Fornecedor
1
2431011 4350445 Av. Teste s/n
40256-000
Salvador, BA
P2 Peça 2 R$ 7,50 30
F1 Fornecedor
1
2431011 4350445 Av. Teste s/n
40256-000
Salvador, BA
P3 Peça 3 R$ 10,00 40
F2 Fornecedor
2
4560989 3361234 Rua. XX 40470-
090
Itabuna, BA
P1 Peça 1 R$ 5,00 30
F2 Fornecedor
2
4560989 3361234 Rua. XX 40470-
090
Itabuna, BA
P2 Peça 2 R$ 7,50 15
Projeto Lógico – Modelo não normalizado
Problemas de Inserção
Só é possível inserir um novo fornecedor quando o mesmo solicitar peças;
Só é possível inserir uma nova peça quando a mesma for solicitada por um
fornecedor;
Problemas de Atualização
Para atualizar o endereço do fornecedor, todos os registros desse
fornecedor deverão ser atualizados.
Para atualizar o preço da peça, todos os registros dessa peça deverão ser
atualizados.
Problemas de Exclusão
Caso sejam deletadas todas as solicitações de um fornecedor, seus dados
cadastrais também serão apagados.
Projeto Lógico – Anomalias do Modelo
Debate em Sala de Aula
Existe alguma vantagem em
manter tabelas desnormalizadas?
Projeto Lógico - Normalização
1a Forma Normal (1FN ou 1NF)
Uma relação está 1FN se e somente se todos os
seus domínios só contém valores atômicos;
O modelo relacional exige que as relações
estejam pelo menos na 1FN;
Características:
Estrutura tabular;
Princípio da atomicidade;
Proibição de campos multivalorados.
Projeto Lógico - Normalização
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
Não está na 1FN
Não está na 1FN
Está na 1FN
Está na 1FN
Projeto Lógico - Normalização
2a Forma Normal (2FN ou 2NF)
Uma relação está na 2 FN se e somente se está
na 1FN e todos os atributos não chave são
totalmente dependentes da chave primária;
Diz respeito às chaves primárias compostas;
Se a chave primária de uma relação não é
composta e a relação está na 1FN, ela está
também na 2FN;
Uma relação que está na 1 FN pode não estar na
2FN se sua chave for composta.
Projeto Lógico - Normalização
2a Forma Normal (2FN ou 2NF)
Decomposição 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 dependência total é de
A única dependência total é de
quantidade.
quantidade.
Projeto Lógico - Normalização
2a Forma Normal (2FN ou 2NF)
Dependêcias parciais
Problemas de atualização (insert, update, delete);
FORNECEDOR_PECA
200
25
cinza
c1
jante
p5
f4
400
23
preto
c2
roda
p4
f2
650
10
azul
c3
chave
p3
f2
750
13
cinza
c1
prego
p1
f2
200
15
preto
c2
porca
P2
f1
300
13
cinza
c1
prego
p1
f1
quantidad
e
peso
cor
cod_co
r
nome_pec
a
s#
f#
Projeto Lógico - Normalização
2a Forma Normal (2FN ou 2NF)
Dependêcias parciais
Solução: decomposição de projeção 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 Lógico - Normalização
3ª Forma Normal (3FN ou 3NF)
Uma relação está na 3 FN se e somente se ela está na 2
FN e seus atributos não chave são mutuamente
independentes;
Os atributos são considerados mutuamente
independentes quando nenhum atributo é funcionalmente
dependente de nenhuma combinação dos outros, exceto
da chave primária;
A título de simplificação a terceira forma normal considera
que a relação terá somente uma chave candidata, ou seja,
a chave primária.
Projeto Lógico - Normalização
3ª Forma Normal (3FN ou 3NF)
Os atributos cod_cor e cor são dependentes
funcionalmente um do outro;
Dependência indesejada durante as atualizações
de dados;
Não está na 3FN. PECA
PECA
cod_peca
nome_peca
cod_cor
cor
peso
Projeto Lógico - Normalização
3ª Forma Normal (3FN ou 3NF)
Opções para normalização da relação:
Eliminar o atributo cod_cor; (Opção 1)
Criar uma relação distinta para as informações sobre
cor. (Opção 2)
PECA
PECA
cod_peca
nome_peca
cod_cor
peso
COR
COR
cod_cor
cor
Opção 2
PECA
PECA
cod_peca
nome_peca
cor
peso
Opção 1
Projeto Lógico - Normalização
4a Forma Normal (4FN)
“Uma tabela está na 4FN se ela estiver na 3FN e
não possuir DFs multivaloradas”
tabelas com DFs multivaloradas devem ser
desmembradas em tabelas que não possuam tais DFs
Tabelas que possuem CP composta por um ou
dois atributos, ou que possuem atributos não-
chave estão automaticamente na 4FN
4FN - Aplicação
3FN: Estantes (número, capacidade)
Livros (ISBN, título, ano)
Autores (codAutor, nome, nacionalidade)
DistribuiçãoLivrosAutor(número, ISBN, codAutor)
DF Multivalorada: ISBN →→codAutor
4FN: Estantes (número, capacidade)
Livros (ISBN, título, ano)
Autores (codAutor, nome, nacionalidade)
DistribuiçãoLivros(número, ISBN)
Autoria(ISBN, codAutor)
Projeto Lógico - Normalização
Boyce and Codd Normal Form (BCNF)
Uma relação 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
relações com as seguintes características:
Múltiplas chaves candidatas;
Chaves candidatas são compostas;
Chaves candidatas possuem ao menos um atributo em
comum.
Projeto Lógico - Normalização
Boyce and Codd Normal Form (BCNF)
Exemplo: Relação de Monitores de Disciplinas:
Cada disciplina pode ter vários monitores;
Um monitor só monitora uma disciplina.
MONITOR
MONITOR
aluno
disciplina
monitor
Mário
Física II
João
Paula
Física II
Carlos
Ana
Pesquisa
Aline
Marcos
Lógica
Aline
Mário
Física II
Aline
monitor
disciplina
aluno
Projeto Lógico - Normalização
Boyce and Codd Normal Form (BCNF)
Dependências funcionais
monitor disciplina
{aluno, disciplina} monitor
{aluno, monitor} disciplina
monitor
aluno
disciplina
Está na 3FN, mas não está
na BCNF.
Projeto Lógico - Normalização
Boyce and Codd Normal Form (BCNF)
Solução (decomposição sem perdas):
ALUNO_MONITOR
Mário
João
Paula
Carlos
Ana
Aline
Marcos
Aline
Mário
Aline
monitor
aluno
MONITOR_DISCIPLIN
A
Física II
Paula
Pesquisa
Ana
Lógica
Marcos
Física II
Mário
displina
monitor
Atende à BCNF.
Benefícios
Estabilidade do Modelo Lógico
Ex.: Itens de repetição
Integridade
Economia
Custo de manipulação dos dados. Backup, restauração,
atualização (estr. adicionais)
Fidelidade ao Ambiente Observado
Projeto Lógico - Normalização
Tarefa Extra-Classe
Exercício 1 - A tabela abaixo está na 1FN.
Obtenha a 2FN, 3FN e 4FN:
ArtigosAceitos (ID-artigo, título, ano, ID-autor,
codEvento, nomeEvento, ID-revisor)
Tarefa Extra-Classe
Exercício 2 – Relatório de Reservas em uma Locadora
de DVDs
Banco de Dados I
Banco de Dados I
Aula 4
Aula 4 –
– Normalização
Normalização
Grinaldo
Grinaldo Lopes de Oliveira (
Lopes de Oliveira (grinaldo
grinaldo@
@gmail
gmail.com)
.com)
Curso Superior de Tecnologia em
Curso Superior de Tecnologia em
Análise e Desenvolvimento de Sistemas
Análise e Desenvolvimento de Sistemas

Mais conteúdo relacionado

Destaque

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellSaba Software
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming LanguageSimplilearn
 

Destaque (20)

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
 

(4 - Normalização) (1).pdf

  • 1. Banco de Dados I Banco de Dados I 4 4 – – Normalização Normalização Grinaldo Grinaldo Lopes de Oliveira ( Lopes de Oliveira (grinaldo grinaldo@ @gmail gmail.com) .com) Curso Superior de Tecnologia em Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Análise e Desenvolvimento de Sistemas * Material com créditos de colaboração dos professores Márcio Soussa, Leandro Coelho e Pablo Florentino
  • 4. Processo muito importante para um projeto de banco de dados. Consiste em analisar o modelo e através de regras formais, reestruturar possíveis tabelas e atributos, reduzindo assim redundâncias e permitindo o crescimento do BD com o mínimo de efeito colateral. Consiste em diminuir redundância e anomalias de inserção, atualização e deleção. Projeto Lógico - Normalização
  • 5. Consiste em analisar relações para satisfazer requisitos cada vez mais rigorosos acarretando agrupamentos cada vez melhores, mais estáveis e seguros. Realiza-se uma série de testes para certificar se a relação está ou não em uma determinada forma normal. O processo consiste em certificar e decompor. Fundamentado no conceito de Dependência Funcional. Projeto Lógico - Normalização
  • 6. 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 Lógico – Formas Normais
  • 7. Dependência Funcional Corresponde a um restrição entre conjuntos de atributos em uma relação Se X identifica Y, então X Y e diz-se que há uma dependência funcional entre eles. X determina Y, Y é funcionalmente dependente de X Projeto Lógico – Fundamento das FNs
  • 8. Projeto Lógico - Normalização Dependências 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
  • 9. Projeto Lógico - Normalização Dependências 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 são chaves candidatas. Todos os atributos de uma relação devem ser funcionalmente dependentes das chaves candidatas e, consequentemente, da chave primária.
  • 10. Debate em Sala de Aula Identifique as dependências funcionais na relação abaixo: Matricula, nome, sexo e data de nascimento do aluno, código, nome e carga horária de disciplina e a data da inscrição do aluno na disciplina
  • 11. Cod Fornecedor (PK) Nome Forneced or Tel 1 Tel 2 Endereço Cód. Peça (PK) Nome Peça Preço Unitário Qtde Pedi da F1 Fornecedor 1 2431011 4350445 Av. Teste s/n 40256-000 Salvador, BA P1 Peça 1 R$ 5,00 50 F1 Fornecedor 1 2431011 4350445 Av. Teste s/n 40256-000 Salvador, BA P2 Peça 2 R$ 7,50 30 F1 Fornecedor 1 2431011 4350445 Av. Teste s/n 40256-000 Salvador, BA P3 Peça 3 R$ 10,00 40 F2 Fornecedor 2 4560989 3361234 Rua. XX 40470- 090 Itabuna, BA P1 Peça 1 R$ 5,00 30 F2 Fornecedor 2 4560989 3361234 Rua. XX 40470- 090 Itabuna, BA P2 Peça 2 R$ 7,50 15 Projeto Lógico – Modelo não normalizado
  • 12. Problemas de Inserção Só é possível inserir um novo fornecedor quando o mesmo solicitar peças; Só é possível inserir uma nova peça quando a mesma for solicitada por um fornecedor; Problemas de Atualização Para atualizar o endereço do fornecedor, todos os registros desse fornecedor deverão ser atualizados. Para atualizar o preço da peça, todos os registros dessa peça deverão ser atualizados. Problemas de Exclusão Caso sejam deletadas todas as solicitações de um fornecedor, seus dados cadastrais também serão apagados. Projeto Lógico – Anomalias do Modelo
  • 13. Debate em Sala de Aula Existe alguma vantagem em manter tabelas desnormalizadas?
  • 14. Projeto Lógico - Normalização 1a Forma Normal (1FN ou 1NF) Uma relação está 1FN se e somente se todos os seus domínios só contém valores atômicos; O modelo relacional exige que as relações estejam pelo menos na 1FN; Características: Estrutura tabular; Princípio da atomicidade; Proibição de campos multivalorados.
  • 15. Projeto Lógico - Normalização 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 Não está na 1FN Não está na 1FN Está na 1FN Está na 1FN
  • 16. Projeto Lógico - Normalização 2a Forma Normal (2FN ou 2NF) Uma relação está na 2 FN se e somente se está na 1FN e todos os atributos não chave são totalmente dependentes da chave primária; Diz respeito às chaves primárias compostas; Se a chave primária de uma relação não é composta e a relação está na 1FN, ela está também na 2FN; Uma relação que está na 1 FN pode não estar na 2FN se sua chave for composta.
  • 17. Projeto Lógico - Normalização 2a Forma Normal (2FN ou 2NF) Decomposição 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 dependência total é de A única dependência total é de quantidade. quantidade.
  • 18. Projeto Lógico - Normalização 2a Forma Normal (2FN ou 2NF) Dependêcias parciais Problemas de atualização (insert, update, delete); FORNECEDOR_PECA 200 25 cinza c1 jante p5 f4 400 23 preto c2 roda p4 f2 650 10 azul c3 chave p3 f2 750 13 cinza c1 prego p1 f2 200 15 preto c2 porca P2 f1 300 13 cinza c1 prego p1 f1 quantidad e peso cor cod_co r nome_pec a s# f#
  • 19. Projeto Lógico - Normalização 2a Forma Normal (2FN ou 2NF) Dependêcias parciais Solução: decomposição de projeção 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
  • 20. Projeto Lógico - Normalização 3ª Forma Normal (3FN ou 3NF) Uma relação está na 3 FN se e somente se ela está na 2 FN e seus atributos não chave são mutuamente independentes; Os atributos são considerados mutuamente independentes quando nenhum atributo é funcionalmente dependente de nenhuma combinação dos outros, exceto da chave primária; A título de simplificação a terceira forma normal considera que a relação terá somente uma chave candidata, ou seja, a chave primária.
  • 21. Projeto Lógico - Normalização 3ª Forma Normal (3FN ou 3NF) Os atributos cod_cor e cor são dependentes funcionalmente um do outro; Dependência indesejada durante as atualizações de dados; Não está na 3FN. PECA PECA cod_peca nome_peca cod_cor cor peso
  • 22. Projeto Lógico - Normalização 3ª Forma Normal (3FN ou 3NF) Opções para normalização da relação: Eliminar o atributo cod_cor; (Opção 1) Criar uma relação distinta para as informações sobre cor. (Opção 2) PECA PECA cod_peca nome_peca cod_cor peso COR COR cod_cor cor Opção 2 PECA PECA cod_peca nome_peca cor peso Opção 1
  • 23. Projeto Lógico - Normalização 4a Forma Normal (4FN) “Uma tabela está na 4FN se ela estiver na 3FN e não possuir DFs multivaloradas” tabelas com DFs multivaloradas devem ser desmembradas em tabelas que não possuam tais DFs Tabelas que possuem CP composta por um ou dois atributos, ou que possuem atributos não- chave estão automaticamente na 4FN
  • 24. 4FN - Aplicação 3FN: Estantes (número, capacidade) Livros (ISBN, título, ano) Autores (codAutor, nome, nacionalidade) DistribuiçãoLivrosAutor(número, ISBN, codAutor) DF Multivalorada: ISBN →→codAutor 4FN: Estantes (número, capacidade) Livros (ISBN, título, ano) Autores (codAutor, nome, nacionalidade) DistribuiçãoLivros(número, ISBN) Autoria(ISBN, codAutor)
  • 25. Projeto Lógico - Normalização Boyce and Codd Normal Form (BCNF) Uma relação 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 relações com as seguintes características: Múltiplas chaves candidatas; Chaves candidatas são compostas; Chaves candidatas possuem ao menos um atributo em comum.
  • 26. Projeto Lógico - Normalização Boyce and Codd Normal Form (BCNF) Exemplo: Relação de Monitores de Disciplinas: Cada disciplina pode ter vários monitores; Um monitor só monitora uma disciplina. MONITOR MONITOR aluno disciplina monitor Mário Física II João Paula Física II Carlos Ana Pesquisa Aline Marcos Lógica Aline Mário Física II Aline monitor disciplina aluno
  • 27. Projeto Lógico - Normalização Boyce and Codd Normal Form (BCNF) Dependências funcionais monitor disciplina {aluno, disciplina} monitor {aluno, monitor} disciplina monitor aluno disciplina Está na 3FN, mas não está na BCNF.
  • 28. Projeto Lógico - Normalização Boyce and Codd Normal Form (BCNF) Solução (decomposição sem perdas): ALUNO_MONITOR Mário João Paula Carlos Ana Aline Marcos Aline Mário Aline monitor aluno MONITOR_DISCIPLIN A Física II Paula Pesquisa Ana Lógica Marcos Física II Mário displina monitor Atende à BCNF.
  • 29. Benefícios Estabilidade do Modelo Lógico Ex.: Itens de repetição Integridade Economia Custo de manipulação dos dados. Backup, restauração, atualização (estr. adicionais) Fidelidade ao Ambiente Observado Projeto Lógico - Normalização
  • 30. Tarefa Extra-Classe Exercício 1 - A tabela abaixo está na 1FN. Obtenha a 2FN, 3FN e 4FN: ArtigosAceitos (ID-artigo, título, ano, ID-autor, codEvento, nomeEvento, ID-revisor)
  • 31. Tarefa Extra-Classe Exercício 2 – Relatório de Reservas em uma Locadora de DVDs
  • 32. Banco de Dados I Banco de Dados I Aula 4 Aula 4 – – Normalização Normalização Grinaldo Grinaldo Lopes de Oliveira ( Lopes de Oliveira (grinaldo grinaldo@ @gmail gmail.com) .com) Curso Superior de Tecnologia em Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Análise e Desenvolvimento de Sistemas