SlideShare uma empresa Scribd logo
1 de 50
Baixar para ler offline
Normalização
Formas Normais
Dado um esquema de relação, precisamos decidir se ele é um bom projeto
ou se precisamos decompô-lo em relações menores. Tal decisão deve ser
conduzida por um entendimento de quais problemas (se houver) surgem a
partir do esquema corrente.
Para fornecer tal condução, diversas formas normais foram propostas. Se
um esquema de relação está em uma dessas formas normais, sabemos
que certos tipos de problemas não podem surgir.
2
Formas Normais
As Formas Normais são uma série de procedimentos aplicados em um
banco de dados para garantir que as suas tabelas estejam bem
estruturadas e não contenham nenhum tipo de anomalia, seja de inclusão,
modificação ou exclusão.
3
Normalização
Foi criado por Codd em 1972
Aplica uma série de testes sobre um esquema de relação para certificar se ele
satisfaz uma certa forma normal
Inicialmente, Codd propôs 3 formas normais: 1FN, 2FN e 3FN
4
Normalização
Posteriormente, Boyce e Codd definiram uma 3FN mais forte – a FNBC (Forma
Normal de Boyce-Codd)
Essas formas se baseiam na análise das dependências funcionais
Duas outras formas – a 4FN e 5FN – foram propostas, baseadas na análise de
dependências multivaloradas e dependências de junção
5
Normalização
Objetivo
Gerar um conjunto de esquemas de relações que permita:
Armazenar informações sem redundância desnecessária, e
Recuperar informações eficientemente.
6
Normalização
Em resumo…
Evita anomalias de atualização e redundâncias no projeto do BD
Permite representar eficientemente os dados do mundo real, tornando o
modelo mais estável e de fácil manutenção
7
Aplicar normalização até qual forma
normal?
Na prática o processo de normalização encerra-se na 3FN ou FNBC
8
1ª Forma Normal (1FN)
Uma tabela está na 1FN quando:
Os domínios de todas as suas colunas são atômicos, ou seja, a tabela não
pode ter atributo composto ou multivalorado.
9
1ª Forma Normal (1FN) - Exemplo 10
Atributo Composto:
Decompor o atributo composto em atributos simples e o colocá-lo:
Na mesma tabela (indicando quando o atributo composto é monovalorado).
Ex:
Paciente (CPF, Nome, Endereco(Logradouro, CEP)) (não está na 1FN)
Paciente (CPF, Nome, Logradouro, CEP) (está na 1FN)
11
Como transformar uma tabela para a 1FN
Atributo Composto:
Em uma tabela relacionada (indicado quando o atributo composto é
multivalorado). EX:
Paciente (CPF, Nome, {Telefone(DDD, Prefixo, Sufixo)}) (não está na 1FN)
Paciente (CPF, Nome) (está na 1FN)
PacienteTelefone (CPF, DDD, Prefixo, Sufixo) (está na 1FN)
CPF referencia Paciente
12
Como transformar uma tabela para a 1FN
Atributo Multivalorado:
Na mesma tabela (indicado quando a quantidade de valores é pequena
e conhecia a priori).
EX:
Paciente (CPF, Nome, {GrausDeLente}) (não está na 1FN)
Paciente (CPF, Nome, GrauLenteE, GrauLenteD) (está na 1FN)
13
Como transformar uma tabela para a 1FN
Atributo Multivalorado:
Em uma tabela relacionada (indicado quando a multivaloração é
desconhecida ou grande). EX:
Paciente (CPF, Nome, {ImagemRX}) (não está na 1FN)
Paciente (CPF, Nome) (está na 1FN)
PacienteRX (CPF, ImagemRX) (está na 1FN)
CPF referencia Paciente
14
Como transformar uma tabela para a 1FN
15
16
Está na 1FN? 17
Segunda Forma Normal (2FN)
Uma tabela está na 2FN quando:
1. Está na 1FN,
2. A chave primária é composta e
3. Todas as colunas que não participam da chave primária são dependentes
de todas as colunas que compõem a chave primária.
Isto é, não existe Dependência Funcional Parcial.
18
19
20
Como transformar para a 2FN?
1. Retira-se a(s) coluna(s) com DFP da tabela original
2. A partir dessa(s) coluna(s) retirada(s), cria-se uma ou mais tabelas
compostas pela parte da chave primária e suas colunas dependentes
3. A parte da chave primária que gerou a dependência será a nova chave
primária da tabela criada.
21
Como transformar para a 2FN?
EX:
Consulta(CPF, CRM, NomeP, NomeM, Especialidade, Tipo, Valor) (não 2FN)
Paciente (CPF, NomeP) (está na 2FN)
Medico (CRM, NomeM, Especialidade) (está na 2FN)
Consulta (CPF, CRM, Tipo, Valor) (está na 2FN)
CPF referencia Paciente
CRM referencia Medico
22
23
24
Exemplo
Boletim (NumAluno, CodDisciplina, NumeroProva, Nota, DataProva,
NomeAluno, EndereçoAluno, NomeDisciplina)
Está na 1FN
CodDisciplina → NomeDisciplina
NumAluno → NomeAluno
25
Exemplo
Aluno (NumAluno, NomeAluno, EnderecoAluno)
Disciplina(CodDisciplina, NomeDisciplina)
Boletim(NumAluno, CodDisciplina, NumeroProva, Nota, DataProva)
Agora está na 2FN!
26
3ª Forma Normal (3FN)
Uma tabela está na 3FN quando:
1. Está na 2FN
2. Não contém Dependência Funcional Transitiva, sendo que todas as
colunas que não participam da chave primária devem ser exclusivamente
dependentes desta
27
28
Como transformar para a 3FN?
1. Retira-se a(s) coluna(s) com DF Transitiva da tabela original
2. A partir dessa(s) coluna(s) retirada(s), cria-se uma ou mais tabelas
compostas pela coluna determinante (como chave primária) + suas
colunas dependentes
29
Como transformar para a 3FN?
Verifica-se a 2FN para cada nova tabela.
Ex:
Consulta (CPF, CRM, Tipo, Valor) (não está na 3FN)
Consulta (CPF, CRM, Tipo) (está na 3FN)
Tipo referencia ConsultaTipo
ConsultaTipo (Tipo, Valor) (está na 3FN)
OBS: Além de não conter DFT, as tabelas na 3FN não devem possuir colunas
com valores calculados (derivados). Ex: coluna subtotal.
30
31
32
Forma Normal Boyce-Codd (FNBC)
É um refinamento da 3FN (usada em casos particulares)
Uma relação em FNBC é uma forma mais rigorosa do que a 3FN
Uma relação em FNBC está de acordo com a 3FN, mas o contrário não é
verdade
33
Forma Normal Boyce-Codd (FNBC)
Uma tabela está na FNBC quando:
1. Está na 3FN e
2. Todos os determinantes da tabela são chaves candidatas
34
35
Como transformar para a FNBC
Como transformar uma tabela para a FNBC
1. Decompor a tabela (em duas ou mais), separando da tabela original as
colunas que são determinantes e não são chaves candidatas, e as colunas
dependentes destes determinantes
2. O determinante que não é chave candidata na tabela original deve fazer
parte das chaves primárias das novas tabelas
3. Verifica-se a 3FN para cada nova tabela.
36
Como transformar para a FNBC
Exemplo: Avaliação (Aluno, Disciplina, Professor, Media) (está 3FN, não FNBC)
Supondo que cada aluno tem um único professor por disciplina,
Cada professor só ensina uma única disciplina e
Uma disciplina pode ser ministrada por vários professores
37
Como transformar para a FNBC
Dependências Funcionais:
Aluno, Disciplina → Professor, Media
Aluno, Professor → Disciplina, Media
Professor → Disciplina (Professor é determinante e não é chave candidata)
Então:
ProfDisciplina (Professor, Disciplina) (está na FNBC)
ProfAluno (Professor, Aluno, Media) (está na FNBC)
38
39
40
Exemplo 1
vendedor (nro_vend, nome_vend, sexo_vend,{ cliente (nro_cli, nome_cli, end_cli ) } )
As seguintes dependências funcionais devem ser garantidas na normalização:
• nro_vend → nome_vend, sexo_vend
• nro_cli → nome_cli, end_cli
Observação adicional:
• um vendedor pode atender diversos clientes, e um cliente pode ser atendido
por diversos vendedores
41
Exemplo 1 - Resposta
Vendedor (nro_vend, nome_vend, sexo_vend,{ cliente (nro_cli, nome_cli, end_cli ) } )
1FN
Cliente(nro_cli, nome_cli, end_cli)
Vendedor(nro_vend, nome_vend, sexo_vend)
2FN OK (não há dependência parcial)
3FN OK (não há dependencia transitiva)
Relação N:N => Clliente_Vendedor(nro_cli, nro_vend)
42
Exemplo 2
43
Exemplo 2 - Resposta
Pedidos(nr_pedido, data_pedido, id_cliente, nome_cliente, {produto(cod_prod,
nome_prod, quant, vl_unit)})
1FN
Produto(cod_prod, nome_prod, quant, vl_unit)
Pedidos(nr_pedido, data_pedido, id_cliente, nome_cliente)
2FN - OK (não há dependência parcial pois a chave primária não é composta)
44
Exemplo 2 - Resposta
1FN
Produto(cod_prod, nome_prod, quant, vl_unit)
Pedidos(nr_pedido, data_pedido, id_cliente, nome_cliente)
2FN - OK (não há dependência parcial pois a chave primária não é composta)
3FN - há dependência transitiva de nome_cliente para id_cliente
Produto(cod_prod, nome_prod, quant, vl_unit)
Pedidos(nr_pedido, data_pedido, id_cliente)
id_cliente referencia Cliente
Cliente(id_cliente, nome_cliente) 45
Exemplo 3
VENDA_CARRO (Num_carro, Data_venda, Num_vendedor, Comissao_porc,
Desconto_tempo)
Suponha que um carro possa ser vendido por vários vendedores e, portanto,
(Num_carro, Num_vendedor) é a chave primária. Dependências adicionais são
Data_venda → Desconto_tempo e Num_vendedor → Comissao_porc
Com base na chave primária dada, essa relação está na 1FN, 2FN ou 3FN?
Normalize-a até a 3FN.
46
Exemplo 3 - Resposta
VENDA_CARRO (Num_carro, Data_venda, Num_vendedor, Comissao_porc,
Desconto_tempo)
1FN OK (os atributos são atômicos)
2FN há dependência parcial de Comissão_porc para NumVendedor
Vendedor(NumVendedor, Comissao_porc)
VendaCarro(NumCarro, Data_Venda, Desconto_tempo)
47
Exemplo 3 - Resposta
1FN OK (os atributos são atômicos)
2FN há dependência parcial de Comissão_porc para NumVendedor
Vendedor(NumVendedor, Comissao_porc)
VendaCarro(NumCarro, Data_Venda, Desconto_tempo)
48
Exemplo 3 - Resposta
3FN há dependência transitiva de Desconto_tempo para Data_Venda
Vendedor(NumVendedor, Comissao_porc)
VendaCarro(NumCarro, Data_Venda)
Data_Venda referencia Desconto
Desconto(Data_Venda, Desconto_tempo)
49
Bibliografia
Elmasri, R. Navathe, S. B., Sistemas de Banco de Dados, 6ª Ed. Pearson
Addison-Wesley, 2011.
C. J. Date. Introdução a sistemas de banco de dados. tradução de Daniel
Vieira. 8ª Ed. Rio de Janeiro: Elsevier, 2003.
50

Mais conteúdo relacionado

Último

Libras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS MemoriaLibras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS Memorialgrecchi
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxTainTorres4
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreCIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreElianeElika
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresAnaCarinaKucharski1
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfMarianaMoraesMathias
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESEduardaReis50
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
Revista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfRevista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfMárcio Azevedo
 

Último (20)

Libras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS MemoriaLibras Jogo da memória em LIBRAS Memoria
Libras Jogo da memória em LIBRAS Memoria
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreCIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕESCOMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
COMPETÊNCIA 4 NO ENEM: O TEXTO E SUAS AMARRACÕES
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
Revista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfRevista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdf
 

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
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
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
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...
 

Normalização em Banco de Dados Relacionais

  • 2. Formas Normais Dado um esquema de relação, precisamos decidir se ele é um bom projeto ou se precisamos decompô-lo em relações menores. Tal decisão deve ser conduzida por um entendimento de quais problemas (se houver) surgem a partir do esquema corrente. Para fornecer tal condução, diversas formas normais foram propostas. Se um esquema de relação está em uma dessas formas normais, sabemos que certos tipos de problemas não podem surgir. 2
  • 3. Formas Normais As Formas Normais são uma série de procedimentos aplicados em um banco de dados para garantir que as suas tabelas estejam bem estruturadas e não contenham nenhum tipo de anomalia, seja de inclusão, modificação ou exclusão. 3
  • 4. Normalização Foi criado por Codd em 1972 Aplica uma série de testes sobre um esquema de relação para certificar se ele satisfaz uma certa forma normal Inicialmente, Codd propôs 3 formas normais: 1FN, 2FN e 3FN 4
  • 5. Normalização Posteriormente, Boyce e Codd definiram uma 3FN mais forte – a FNBC (Forma Normal de Boyce-Codd) Essas formas se baseiam na análise das dependências funcionais Duas outras formas – a 4FN e 5FN – foram propostas, baseadas na análise de dependências multivaloradas e dependências de junção 5
  • 6. Normalização Objetivo Gerar um conjunto de esquemas de relações que permita: Armazenar informações sem redundância desnecessária, e Recuperar informações eficientemente. 6
  • 7. Normalização Em resumo… Evita anomalias de atualização e redundâncias no projeto do BD Permite representar eficientemente os dados do mundo real, tornando o modelo mais estável e de fácil manutenção 7
  • 8. Aplicar normalização até qual forma normal? Na prática o processo de normalização encerra-se na 3FN ou FNBC 8
  • 9. 1ª Forma Normal (1FN) Uma tabela está na 1FN quando: Os domínios de todas as suas colunas são atômicos, ou seja, a tabela não pode ter atributo composto ou multivalorado. 9
  • 10. 1ª Forma Normal (1FN) - Exemplo 10
  • 11. Atributo Composto: Decompor o atributo composto em atributos simples e o colocá-lo: Na mesma tabela (indicando quando o atributo composto é monovalorado). Ex: Paciente (CPF, Nome, Endereco(Logradouro, CEP)) (não está na 1FN) Paciente (CPF, Nome, Logradouro, CEP) (está na 1FN) 11 Como transformar uma tabela para a 1FN
  • 12. Atributo Composto: Em uma tabela relacionada (indicado quando o atributo composto é multivalorado). EX: Paciente (CPF, Nome, {Telefone(DDD, Prefixo, Sufixo)}) (não está na 1FN) Paciente (CPF, Nome) (está na 1FN) PacienteTelefone (CPF, DDD, Prefixo, Sufixo) (está na 1FN) CPF referencia Paciente 12 Como transformar uma tabela para a 1FN
  • 13. Atributo Multivalorado: Na mesma tabela (indicado quando a quantidade de valores é pequena e conhecia a priori). EX: Paciente (CPF, Nome, {GrausDeLente}) (não está na 1FN) Paciente (CPF, Nome, GrauLenteE, GrauLenteD) (está na 1FN) 13 Como transformar uma tabela para a 1FN
  • 14. Atributo Multivalorado: Em uma tabela relacionada (indicado quando a multivaloração é desconhecida ou grande). EX: Paciente (CPF, Nome, {ImagemRX}) (não está na 1FN) Paciente (CPF, Nome) (está na 1FN) PacienteRX (CPF, ImagemRX) (está na 1FN) CPF referencia Paciente 14 Como transformar uma tabela para a 1FN
  • 15. 15
  • 16. 16
  • 18. Segunda Forma Normal (2FN) Uma tabela está na 2FN quando: 1. Está na 1FN, 2. A chave primária é composta e 3. Todas as colunas que não participam da chave primária são dependentes de todas as colunas que compõem a chave primária. Isto é, não existe Dependência Funcional Parcial. 18
  • 19. 19
  • 20. 20 Como transformar para a 2FN? 1. Retira-se a(s) coluna(s) com DFP da tabela original 2. A partir dessa(s) coluna(s) retirada(s), cria-se uma ou mais tabelas compostas pela parte da chave primária e suas colunas dependentes 3. A parte da chave primária que gerou a dependência será a nova chave primária da tabela criada.
  • 21. 21 Como transformar para a 2FN? EX: Consulta(CPF, CRM, NomeP, NomeM, Especialidade, Tipo, Valor) (não 2FN) Paciente (CPF, NomeP) (está na 2FN) Medico (CRM, NomeM, Especialidade) (está na 2FN) Consulta (CPF, CRM, Tipo, Valor) (está na 2FN) CPF referencia Paciente CRM referencia Medico
  • 22. 22
  • 23. 23
  • 24. 24 Exemplo Boletim (NumAluno, CodDisciplina, NumeroProva, Nota, DataProva, NomeAluno, EndereçoAluno, NomeDisciplina) Está na 1FN CodDisciplina → NomeDisciplina NumAluno → NomeAluno
  • 25. 25 Exemplo Aluno (NumAluno, NomeAluno, EnderecoAluno) Disciplina(CodDisciplina, NomeDisciplina) Boletim(NumAluno, CodDisciplina, NumeroProva, Nota, DataProva) Agora está na 2FN!
  • 26. 26 3ª Forma Normal (3FN) Uma tabela está na 3FN quando: 1. Está na 2FN 2. Não contém Dependência Funcional Transitiva, sendo que todas as colunas que não participam da chave primária devem ser exclusivamente dependentes desta
  • 27. 27
  • 28. 28 Como transformar para a 3FN? 1. Retira-se a(s) coluna(s) com DF Transitiva da tabela original 2. A partir dessa(s) coluna(s) retirada(s), cria-se uma ou mais tabelas compostas pela coluna determinante (como chave primária) + suas colunas dependentes
  • 29. 29 Como transformar para a 3FN? Verifica-se a 2FN para cada nova tabela. Ex: Consulta (CPF, CRM, Tipo, Valor) (não está na 3FN) Consulta (CPF, CRM, Tipo) (está na 3FN) Tipo referencia ConsultaTipo ConsultaTipo (Tipo, Valor) (está na 3FN) OBS: Além de não conter DFT, as tabelas na 3FN não devem possuir colunas com valores calculados (derivados). Ex: coluna subtotal.
  • 30. 30
  • 31. 31
  • 32. 32 Forma Normal Boyce-Codd (FNBC) É um refinamento da 3FN (usada em casos particulares) Uma relação em FNBC é uma forma mais rigorosa do que a 3FN Uma relação em FNBC está de acordo com a 3FN, mas o contrário não é verdade
  • 33. 33 Forma Normal Boyce-Codd (FNBC) Uma tabela está na FNBC quando: 1. Está na 3FN e 2. Todos os determinantes da tabela são chaves candidatas
  • 34. 34
  • 35. 35 Como transformar para a FNBC Como transformar uma tabela para a FNBC 1. Decompor a tabela (em duas ou mais), separando da tabela original as colunas que são determinantes e não são chaves candidatas, e as colunas dependentes destes determinantes 2. O determinante que não é chave candidata na tabela original deve fazer parte das chaves primárias das novas tabelas 3. Verifica-se a 3FN para cada nova tabela.
  • 36. 36 Como transformar para a FNBC Exemplo: Avaliação (Aluno, Disciplina, Professor, Media) (está 3FN, não FNBC) Supondo que cada aluno tem um único professor por disciplina, Cada professor só ensina uma única disciplina e Uma disciplina pode ser ministrada por vários professores
  • 37. 37 Como transformar para a FNBC Dependências Funcionais: Aluno, Disciplina → Professor, Media Aluno, Professor → Disciplina, Media Professor → Disciplina (Professor é determinante e não é chave candidata) Então: ProfDisciplina (Professor, Disciplina) (está na FNBC) ProfAluno (Professor, Aluno, Media) (está na FNBC)
  • 38. 38
  • 39. 39
  • 40. 40
  • 41. Exemplo 1 vendedor (nro_vend, nome_vend, sexo_vend,{ cliente (nro_cli, nome_cli, end_cli ) } ) As seguintes dependências funcionais devem ser garantidas na normalização: • nro_vend → nome_vend, sexo_vend • nro_cli → nome_cli, end_cli Observação adicional: • um vendedor pode atender diversos clientes, e um cliente pode ser atendido por diversos vendedores 41
  • 42. Exemplo 1 - Resposta Vendedor (nro_vend, nome_vend, sexo_vend,{ cliente (nro_cli, nome_cli, end_cli ) } ) 1FN Cliente(nro_cli, nome_cli, end_cli) Vendedor(nro_vend, nome_vend, sexo_vend) 2FN OK (não há dependência parcial) 3FN OK (não há dependencia transitiva) Relação N:N => Clliente_Vendedor(nro_cli, nro_vend) 42
  • 44. Exemplo 2 - Resposta Pedidos(nr_pedido, data_pedido, id_cliente, nome_cliente, {produto(cod_prod, nome_prod, quant, vl_unit)}) 1FN Produto(cod_prod, nome_prod, quant, vl_unit) Pedidos(nr_pedido, data_pedido, id_cliente, nome_cliente) 2FN - OK (não há dependência parcial pois a chave primária não é composta) 44
  • 45. Exemplo 2 - Resposta 1FN Produto(cod_prod, nome_prod, quant, vl_unit) Pedidos(nr_pedido, data_pedido, id_cliente, nome_cliente) 2FN - OK (não há dependência parcial pois a chave primária não é composta) 3FN - há dependência transitiva de nome_cliente para id_cliente Produto(cod_prod, nome_prod, quant, vl_unit) Pedidos(nr_pedido, data_pedido, id_cliente) id_cliente referencia Cliente Cliente(id_cliente, nome_cliente) 45
  • 46. Exemplo 3 VENDA_CARRO (Num_carro, Data_venda, Num_vendedor, Comissao_porc, Desconto_tempo) Suponha que um carro possa ser vendido por vários vendedores e, portanto, (Num_carro, Num_vendedor) é a chave primária. Dependências adicionais são Data_venda → Desconto_tempo e Num_vendedor → Comissao_porc Com base na chave primária dada, essa relação está na 1FN, 2FN ou 3FN? Normalize-a até a 3FN. 46
  • 47. Exemplo 3 - Resposta VENDA_CARRO (Num_carro, Data_venda, Num_vendedor, Comissao_porc, Desconto_tempo) 1FN OK (os atributos são atômicos) 2FN há dependência parcial de Comissão_porc para NumVendedor Vendedor(NumVendedor, Comissao_porc) VendaCarro(NumCarro, Data_Venda, Desconto_tempo) 47
  • 48. Exemplo 3 - Resposta 1FN OK (os atributos são atômicos) 2FN há dependência parcial de Comissão_porc para NumVendedor Vendedor(NumVendedor, Comissao_porc) VendaCarro(NumCarro, Data_Venda, Desconto_tempo) 48
  • 49. Exemplo 3 - Resposta 3FN há dependência transitiva de Desconto_tempo para Data_Venda Vendedor(NumVendedor, Comissao_porc) VendaCarro(NumCarro, Data_Venda) Data_Venda referencia Desconto Desconto(Data_Venda, Desconto_tempo) 49
  • 50. Bibliografia Elmasri, R. Navathe, S. B., Sistemas de Banco de Dados, 6ª Ed. Pearson Addison-Wesley, 2011. C. J. Date. Introdução a sistemas de banco de dados. tradução de Daniel Vieira. 8ª Ed. Rio de Janeiro: Elsevier, 2003. 50