SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Ementa 4: Normalização
Março de 2015
Banco de Dados 1 (IF62H)
Engenharia de Software (Turma ES21)
Prof. GIOVANI Volnei Meinerz
2/20
 Entender o conceito de normalização e sua aplicação
Objetivo da Aula
3/20
 Antigamente existiam os sistemas legados
 Não havia uma clara separação entre as várias camadas
que formam um sistema computadorizado
 Normalmente usam tecnologia antiga, incompatível com
padrões e sistemas da geração atual
 Baseavam-se em banco de dados que usam modelos de
dados de rede ou hierárquicos, ou Cobol e sistemas de
arquivos sem um banco de dados
Origem da Normalização
4/20
 Ter um bom SGBD não é o suficiente para evitar a
redundância de dados (Ementa 2)
 Se tabelas forem tratadas como arquivos, o SGBD não
conseguirá prover tratamento aos dados
 Tabelas representam um bloco básico no processo de
projetos de bancos de dados
 Tabelas devem estar bem estruturadas
 Como reconhecer uma estrutura ruim e como produzir
uma estrutura boa?
NORMALIZAÇÃO
Tabelas de Banco de Dados e Normalização
5/20
É um processo para avaliar e corrigir estruturas e tabelas de
modo a minimizar as redundâncias de dados, reduzindo,
assim, a probabilidade de ocorrência de anomalias
O Que é Normalização?
6/20
 Cenário
 Empresa de construção que gerencie vários projetos
 Cada projeto possui número, nome, funcionários designados, etc.
 Cada funcionário possui número, nome e classificação do cargo
 A empresa cobra pelas horas trabalhadas em cada projeto
 A tarifa de cobrança horária depende do cargo do funcionário
 Os dados da relação abaixo refletem a atribuição de funcionários
a projetos?
Necessidade de Normalização
PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS
15 Evergreen 102 David Analista de Sistemas R$96,00 23,8
18 Amber Wave 112 Darlene Analista de Requisitos R$45,95 45,0
22 Tide 106 William Programador R$35,75 12,8
25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4
7/20
 Aparentemente um funcionário pode ser designado para
mais de um projeto
Necessidade de Normalização
PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS
15 Evergreen 102 David Analista de Sistemas R$96,00 23,8
18 Amber Wave 112 Darlene Analista de Requisitos R$45,95 45,0
22 Tide 106 William Programador R$35,75 12,8
25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4
8/20
 Cada projeto inclui uma única ocorrência de
determinado (potencialmente vários) funcionário
 Assim, saber o PROJ_NUM e FUNC_NUM possibilita a
localização do cargo, tarifa e horas trabalhadas
Necessidade de Normalização
PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS
15 Evergreen 102 David Analista de Sistemas R$96,00 23,8
105 Alice Projetista de BD R$105,00 35,7
18 Amber Wave 118 James Suporte Geral R$18,36 45,3
112 Darlene Analista de Requisitos R$45,95 45,0
22 Tide 106 William Programador R$35,75 12,8
113 Delbert Projetista de Aplicações R$48,10 23,6
25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4
101 John Projetista de BD R$105,00 56,3
9/20
 Tarifa total pode ser calculada multiplicando-se as horas
trabalhadas pelo valor da tarifa cobrado por hora
Necessidade de Normalização
PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS
15 Evergreen 102 David Analista de Sistemas R$96,00 23,8
105 Alice Projetista de BD R$105,00 35,7
18 Amber Wave 118 James Suporte Geral R$18,36 45,3
112 Darlene Analista de Requisitos R$45,95 45,0
22 Tide 106 William Programador R$35,75 12,8
113 Delbert Projetista de Aplicações R$48,10 23,6
25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4
101 John Projetista de BD R$105,00 56,3
10/20
 Infelizmente, a estrutura do conjunto de dados não
atende o conceito de a regras de integridade, quando:
 PROJ_NUM destina-se, aparentemente, a constituir chave
primária, ou parte de uma. No entanto, contém nulos
 PROJ_NUM + FUNC_NUM definem uma linha (inconsistência,
visto que PROJ_NUM pode ser nulo)
Necessidade de Normalização
PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS
15 Evergreen 102 David Analista de Sistemas R$96,00 23,8
105 Alice Projetista de BD R$105,00 35,7
18 Amber Wave 118 James Suporte Geral R$18,36 45,3
112 Darlene Analista de Requisitos R$45,95 45,0
22 Tide 106 William Programador R$35,75 12,8
113 Delbert Projetista de Aplicações R$48,10 23,6
25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4
101 John Projetista de BD R$105,00 56,3
11/20
 As entradas da tabela induzem a inconsistência de dados
 O valor “Projetista de BD”, de CARGO, pode ser inserido como
“Projetista de Banco de Dados” ou Projetista de Bancos de
Dados”
Necessidade de Normalização
PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS
15 Evergreen 102 David Analista de Sistemas R$96,00 23,8
105 Alice Projetista de BD R$105,00 35,7
18 Amber Wave 118 James Suporte Geral R$18,36 45,3
112 Darlene Analista de Requisitos R$45,95 45,0
22 Tide 106 William Programador R$35,75 12,8
113 Delbert Projetista de Aplicações R$48,10 23,6
25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4
101 John Projetista de BD R$105,00 56,3
12/20
 A tabela apresenta redundância de dados, que resultam
nas seguintes anomalias:
 Anomalias de Atualização – modificar o valor CARGO para o
funcionário de número 112 exige, potencialmente, muitas
alterações, uma para cada “FUNC_NUM = 112”
Necessidade de Normalização
PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS
15 Evergreen 102 David Analista de Sistemas R$96,00 23,8
105 Alice Projetista de BD R$105,00 35,7
18 Amber Wave 118 James Suporte Geral R$18,36 45,3
112 Darlene Analista de Requisitos R$45,95 45,0
22 Tide 106 William Programador R$35,75 12,8
113 Delbert Projetista de Aplicações R$48,10 23,6
25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4
101 John Projetista de BD R$105,00 56,3
13/20
 Anomalias de Inserção – No caso de querer inserir uma
linha, necessita-se designar um funcionário a um projeto.
Caso o funcionário não tiver sido designado, será
necessário criar um projeto fantasma
Necessidade de Normalização
PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS
15 Evergreen 102 David Analista de Sistemas R$96,00 23,8
105 Alice Projetista de BD R$105,00 35,7
18 Amber Wave 118 James Suporte Geral R$18,36 45,3
112 Darlene Analista de Requisitos R$45,95 45,0
22 Tide 106 William Programador R$35,75 12,8
113 Delbert Projetista de Aplicações R$48,10 23,6
25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4
101 John Projetista de BD R$105,00 56,3
100 Fantasma Ainda não foi designado funcionário
14/20
 Anomalias de Exclusão – Suponha que apenas um
funcionário esteja em um determinado projeto. Se ele
deixar a empresa e seus dados forem excluídos, as
informações do projeto também serão excluídas.
Necessidade de Normalização
PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS
15 Evergreen 102 David Analista de Sistemas R$96,00 23,8
105 Alice Projetista de BD R$105,00 35,7
18 Amber Wave 118 James Suporte Geral R$18,36 45,3
112 Darlene Analista de Requisitos R$45,95 45,0
22 Tide 106 William Programador R$35,75 12,8
113 Delbert Projetista de Aplicações R$48,10 23,6
25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4
101 John Projetista de BD R$105,00 56,3
99 Vision 500 Giovani Gerente de Configuração R$500,00 80,0
15/20
 Relatórios apresentando resultados diferentes e/ou
incompletos
 Suponha que tenha sido solicitado relatório que mostre o valor
total de horas trabalhadas pelo CARGO “Projetista de Bancos de
Dados” ou pelo CARGO “Analista de Requisito”
Necessidade de Normalização
PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS
15 Evergreen 102 David Analista de Sistemas R$96,00 23,8
105 Alice Projetista de BD R$105,00 35,7
18 Amber Wave 118 James Suporte Geral R$18,36 45,3
112 Darlene Analista de Requisitos R$45,95 45,0
22 Tide 106 William Programador R$35,75 12,8
113 Delbert Projetista de Aplicações R$48,10 23,6
25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4
101 John Projetista de BD R$105,00 56,3
16/20
 Suponha que Darlene seja designada para trabalhar no
projeto Evergreen
 A cada designação, algumas entradas de dados são repetidas
desnecessariamente (imagine isso para milhares de entradas)
15, Evergeen, 112, Darlene, Analista de Requisitos, R$45,95, 0,0
Necessidade de Normalização
PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS
15 Evergreen 102 David Analista de Sistemas R$96,00 23,8
105 Alice Projetista de BD R$105,00 35,7
18 Amber Wave 118 James Suporte Geral R$18,36 45,3
112 Darlene Analista de Requisitos R$45,95 45,0
22 Tide 106 William Programador R$35,75 12,8
113 Delbert Projetista de Aplicações R$48,10 23,6
25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4
101 John Projetista de BD R$105,00 56,3
17/20
 Garantir que todas as tabelas atendam ao conceito de
relações bem estabelecidas. Características:
 Cada tabela representa um único assunto (Aluno, Disciplina)
 Nenhum item de dados será armazenado desnecessariamente
 Todos os atributos não primários de uma tabela são dependentes
da chave primária e de nada além dela
 Todas as tabelas estão livres de anomalias de atualização,
inserção e exclusão
Processo de Normalização
18/20
Etapas da Normalização
19/20
 Quanto mais alta a forma normal...
 ...mais operações de união relacional são necessárias para
produzir a saída desejada
 ...mais recursos são exigidos do SGBD para responder a consultas
do usuário final
 Qual é o interesse/necessidade do usuário?
 Desempenho rápido?
Etapas da Normalização
Ementa 4: Normalização
Março de 2015
Banco de Dados 1 (IF62H)
Engenharia de Software (Turma ES21)
Prof. GIOVANI Volnei Meinerz

Mais conteúdo relacionado

Semelhante a Normalização de dados e formas normais

Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...
Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...
Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...Comunidade NetPonto
 
13 dicas para colocar a operação da sua área de produtos nos trilhos
13 dicas para colocar a operação da sua área de produtos nos trilhos13 dicas para colocar a operação da sua área de produtos nos trilhos
13 dicas para colocar a operação da sua área de produtos nos trilhosProduct Camp Brasil
 
Apresentação da minha defesa de dissertação de mestrado
Apresentação da minha defesa de dissertação de mestradoApresentação da minha defesa de dissertação de mestrado
Apresentação da minha defesa de dissertação de mestradorobsonf
 
Não existe feedback melhor do que o do seu código
Não existe feedback melhor do que o do seu códigoNão existe feedback melhor do que o do seu código
Não existe feedback melhor do que o do seu códigoRenan Carvalho
 
Arquitetura e qualidade de codigo
Arquitetura e qualidade de codigoArquitetura e qualidade de codigo
Arquitetura e qualidade de codigoThamara Hessel
 
Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Pablo Dall'Oglio
 
Elevando sua análise de métricas para o próximo nível
Elevando sua análise de métricas para o próximo nívelElevando sua análise de métricas para o próximo nível
Elevando sua análise de métricas para o próximo nívelJoão Grabosque
 
Expremendo performance do sql server
Expremendo performance do sql serverExpremendo performance do sql server
Expremendo performance do sql serverFelipe Ferreira
 
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptxintroduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptxSaraR49
 

Semelhante a Normalização de dados e formas normais (11)

Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...
Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...
Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...
 
SLIDE-BOX.pptx
SLIDE-BOX.pptxSLIDE-BOX.pptx
SLIDE-BOX.pptx
 
13 dicas para colocar a operação da sua área de produtos nos trilhos
13 dicas para colocar a operação da sua área de produtos nos trilhos13 dicas para colocar a operação da sua área de produtos nos trilhos
13 dicas para colocar a operação da sua área de produtos nos trilhos
 
Apresentação da minha defesa de dissertação de mestrado
Apresentação da minha defesa de dissertação de mestradoApresentação da minha defesa de dissertação de mestrado
Apresentação da minha defesa de dissertação de mestrado
 
Não existe feedback melhor do que o do seu código
Não existe feedback melhor do que o do seu códigoNão existe feedback melhor do que o do seu código
Não existe feedback melhor do que o do seu código
 
Arquitetura e qualidade de codigo
Arquitetura e qualidade de codigoArquitetura e qualidade de codigo
Arquitetura e qualidade de codigo
 
Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013
 
Elevando sua análise de métricas para o próximo nível
Elevando sua análise de métricas para o próximo nívelElevando sua análise de métricas para o próximo nível
Elevando sua análise de métricas para o próximo nível
 
Expremendo performance do sql server
Expremendo performance do sql serverExpremendo performance do sql server
Expremendo performance do sql server
 
Basesdedados
BasesdedadosBasesdedados
Basesdedados
 
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptxintroduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
introduao-a-sql-prof-anderson-cavalcanti-ufrn-ct-dca.pptx
 

Mais de Marcos Nori (20)

Lucas 003
Lucas   003Lucas   003
Lucas 003
 
Lucas 001
Lucas   001Lucas   001
Lucas 001
 
Marcos 016
Marcos   016Marcos   016
Marcos 016
 
Marcos 015
Marcos   015Marcos   015
Marcos 015
 
Marcos 011
Marcos   011Marcos   011
Marcos 011
 
Marcos 012
Marcos   012Marcos   012
Marcos 012
 
Lucas 011
Lucas   011Lucas   011
Lucas 011
 
Marcos 010
Marcos   010Marcos   010
Marcos 010
 
Marcos 009
Marcos   009Marcos   009
Marcos 009
 
Marcos 007
Marcos   007Marcos   007
Marcos 007
 
Marcos 006
Marcos   006Marcos   006
Marcos 006
 
Marcos 005
Marcos   005Marcos   005
Marcos 005
 
Marcos 004
Marcos   004Marcos   004
Marcos 004
 
Marcos 003
Marcos   003Marcos   003
Marcos 003
 
Marcos 002
Marcos   002Marcos   002
Marcos 002
 
Marcos 001
Marcos   001Marcos   001
Marcos 001
 
Marcos 014
Marcos   014Marcos   014
Marcos 014
 
Marcos 008
Marcos   008Marcos   008
Marcos 008
 
Marcos 013
Marcos   013Marcos   013
Marcos 013
 
Mateus 025
Mateus   025Mateus   025
Mateus 025
 

Último

trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumAugusto Costa
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 
CD_B3_C_ Criar e editar conteúdos digitais em diferentes formatos_índice.pdf
CD_B3_C_ Criar e editar conteúdos digitais em diferentes formatos_índice.pdfCD_B3_C_ Criar e editar conteúdos digitais em diferentes formatos_índice.pdf
CD_B3_C_ Criar e editar conteúdos digitais em diferentes formatos_índice.pdfManuais Formação
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxRonys4
 
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxAULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxLaurindo6
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
[Bloco 7] Recomposição das Aprendizagens.pptx
[Bloco 7] Recomposição das Aprendizagens.pptx[Bloco 7] Recomposição das Aprendizagens.pptx
[Bloco 7] Recomposição das Aprendizagens.pptxLinoReisLino
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 

Último (20)

Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 
CD_B3_C_ Criar e editar conteúdos digitais em diferentes formatos_índice.pdf
CD_B3_C_ Criar e editar conteúdos digitais em diferentes formatos_índice.pdfCD_B3_C_ Criar e editar conteúdos digitais em diferentes formatos_índice.pdf
CD_B3_C_ Criar e editar conteúdos digitais em diferentes formatos_índice.pdf
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
 
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxAULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
[Bloco 7] Recomposição das Aprendizagens.pptx
[Bloco 7] Recomposição das Aprendizagens.pptx[Bloco 7] Recomposição das Aprendizagens.pptx
[Bloco 7] Recomposição das Aprendizagens.pptx
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 

Normalização de dados e formas normais

  • 1. Ementa 4: Normalização Março de 2015 Banco de Dados 1 (IF62H) Engenharia de Software (Turma ES21) Prof. GIOVANI Volnei Meinerz
  • 2. 2/20  Entender o conceito de normalização e sua aplicação Objetivo da Aula
  • 3. 3/20  Antigamente existiam os sistemas legados  Não havia uma clara separação entre as várias camadas que formam um sistema computadorizado  Normalmente usam tecnologia antiga, incompatível com padrões e sistemas da geração atual  Baseavam-se em banco de dados que usam modelos de dados de rede ou hierárquicos, ou Cobol e sistemas de arquivos sem um banco de dados Origem da Normalização
  • 4. 4/20  Ter um bom SGBD não é o suficiente para evitar a redundância de dados (Ementa 2)  Se tabelas forem tratadas como arquivos, o SGBD não conseguirá prover tratamento aos dados  Tabelas representam um bloco básico no processo de projetos de bancos de dados  Tabelas devem estar bem estruturadas  Como reconhecer uma estrutura ruim e como produzir uma estrutura boa? NORMALIZAÇÃO Tabelas de Banco de Dados e Normalização
  • 5. 5/20 É um processo para avaliar e corrigir estruturas e tabelas de modo a minimizar as redundâncias de dados, reduzindo, assim, a probabilidade de ocorrência de anomalias O Que é Normalização?
  • 6. 6/20  Cenário  Empresa de construção que gerencie vários projetos  Cada projeto possui número, nome, funcionários designados, etc.  Cada funcionário possui número, nome e classificação do cargo  A empresa cobra pelas horas trabalhadas em cada projeto  A tarifa de cobrança horária depende do cargo do funcionário  Os dados da relação abaixo refletem a atribuição de funcionários a projetos? Necessidade de Normalização PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS 15 Evergreen 102 David Analista de Sistemas R$96,00 23,8 18 Amber Wave 112 Darlene Analista de Requisitos R$45,95 45,0 22 Tide 106 William Programador R$35,75 12,8 25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4
  • 7. 7/20  Aparentemente um funcionário pode ser designado para mais de um projeto Necessidade de Normalização PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS 15 Evergreen 102 David Analista de Sistemas R$96,00 23,8 18 Amber Wave 112 Darlene Analista de Requisitos R$45,95 45,0 22 Tide 106 William Programador R$35,75 12,8 25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4
  • 8. 8/20  Cada projeto inclui uma única ocorrência de determinado (potencialmente vários) funcionário  Assim, saber o PROJ_NUM e FUNC_NUM possibilita a localização do cargo, tarifa e horas trabalhadas Necessidade de Normalização PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS 15 Evergreen 102 David Analista de Sistemas R$96,00 23,8 105 Alice Projetista de BD R$105,00 35,7 18 Amber Wave 118 James Suporte Geral R$18,36 45,3 112 Darlene Analista de Requisitos R$45,95 45,0 22 Tide 106 William Programador R$35,75 12,8 113 Delbert Projetista de Aplicações R$48,10 23,6 25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4 101 John Projetista de BD R$105,00 56,3
  • 9. 9/20  Tarifa total pode ser calculada multiplicando-se as horas trabalhadas pelo valor da tarifa cobrado por hora Necessidade de Normalização PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS 15 Evergreen 102 David Analista de Sistemas R$96,00 23,8 105 Alice Projetista de BD R$105,00 35,7 18 Amber Wave 118 James Suporte Geral R$18,36 45,3 112 Darlene Analista de Requisitos R$45,95 45,0 22 Tide 106 William Programador R$35,75 12,8 113 Delbert Projetista de Aplicações R$48,10 23,6 25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4 101 John Projetista de BD R$105,00 56,3
  • 10. 10/20  Infelizmente, a estrutura do conjunto de dados não atende o conceito de a regras de integridade, quando:  PROJ_NUM destina-se, aparentemente, a constituir chave primária, ou parte de uma. No entanto, contém nulos  PROJ_NUM + FUNC_NUM definem uma linha (inconsistência, visto que PROJ_NUM pode ser nulo) Necessidade de Normalização PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS 15 Evergreen 102 David Analista de Sistemas R$96,00 23,8 105 Alice Projetista de BD R$105,00 35,7 18 Amber Wave 118 James Suporte Geral R$18,36 45,3 112 Darlene Analista de Requisitos R$45,95 45,0 22 Tide 106 William Programador R$35,75 12,8 113 Delbert Projetista de Aplicações R$48,10 23,6 25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4 101 John Projetista de BD R$105,00 56,3
  • 11. 11/20  As entradas da tabela induzem a inconsistência de dados  O valor “Projetista de BD”, de CARGO, pode ser inserido como “Projetista de Banco de Dados” ou Projetista de Bancos de Dados” Necessidade de Normalização PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS 15 Evergreen 102 David Analista de Sistemas R$96,00 23,8 105 Alice Projetista de BD R$105,00 35,7 18 Amber Wave 118 James Suporte Geral R$18,36 45,3 112 Darlene Analista de Requisitos R$45,95 45,0 22 Tide 106 William Programador R$35,75 12,8 113 Delbert Projetista de Aplicações R$48,10 23,6 25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4 101 John Projetista de BD R$105,00 56,3
  • 12. 12/20  A tabela apresenta redundância de dados, que resultam nas seguintes anomalias:  Anomalias de Atualização – modificar o valor CARGO para o funcionário de número 112 exige, potencialmente, muitas alterações, uma para cada “FUNC_NUM = 112” Necessidade de Normalização PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS 15 Evergreen 102 David Analista de Sistemas R$96,00 23,8 105 Alice Projetista de BD R$105,00 35,7 18 Amber Wave 118 James Suporte Geral R$18,36 45,3 112 Darlene Analista de Requisitos R$45,95 45,0 22 Tide 106 William Programador R$35,75 12,8 113 Delbert Projetista de Aplicações R$48,10 23,6 25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4 101 John Projetista de BD R$105,00 56,3
  • 13. 13/20  Anomalias de Inserção – No caso de querer inserir uma linha, necessita-se designar um funcionário a um projeto. Caso o funcionário não tiver sido designado, será necessário criar um projeto fantasma Necessidade de Normalização PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS 15 Evergreen 102 David Analista de Sistemas R$96,00 23,8 105 Alice Projetista de BD R$105,00 35,7 18 Amber Wave 118 James Suporte Geral R$18,36 45,3 112 Darlene Analista de Requisitos R$45,95 45,0 22 Tide 106 William Programador R$35,75 12,8 113 Delbert Projetista de Aplicações R$48,10 23,6 25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4 101 John Projetista de BD R$105,00 56,3 100 Fantasma Ainda não foi designado funcionário
  • 14. 14/20  Anomalias de Exclusão – Suponha que apenas um funcionário esteja em um determinado projeto. Se ele deixar a empresa e seus dados forem excluídos, as informações do projeto também serão excluídas. Necessidade de Normalização PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS 15 Evergreen 102 David Analista de Sistemas R$96,00 23,8 105 Alice Projetista de BD R$105,00 35,7 18 Amber Wave 118 James Suporte Geral R$18,36 45,3 112 Darlene Analista de Requisitos R$45,95 45,0 22 Tide 106 William Programador R$35,75 12,8 113 Delbert Projetista de Aplicações R$48,10 23,6 25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4 101 John Projetista de BD R$105,00 56,3 99 Vision 500 Giovani Gerente de Configuração R$500,00 80,0
  • 15. 15/20  Relatórios apresentando resultados diferentes e/ou incompletos  Suponha que tenha sido solicitado relatório que mostre o valor total de horas trabalhadas pelo CARGO “Projetista de Bancos de Dados” ou pelo CARGO “Analista de Requisito” Necessidade de Normalização PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS 15 Evergreen 102 David Analista de Sistemas R$96,00 23,8 105 Alice Projetista de BD R$105,00 35,7 18 Amber Wave 118 James Suporte Geral R$18,36 45,3 112 Darlene Analista de Requisitos R$45,95 45,0 22 Tide 106 William Programador R$35,75 12,8 113 Delbert Projetista de Aplicações R$48,10 23,6 25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4 101 John Projetista de BD R$105,00 56,3
  • 16. 16/20  Suponha que Darlene seja designada para trabalhar no projeto Evergreen  A cada designação, algumas entradas de dados são repetidas desnecessariamente (imagine isso para milhares de entradas) 15, Evergeen, 112, Darlene, Analista de Requisitos, R$45,95, 0,0 Necessidade de Normalização PROJ_NUM PROJ_NOME FUNC_NUM FUNC_NOME CARGO TARIFA HORAS 15 Evergreen 102 David Analista de Sistemas R$96,00 23,8 105 Alice Projetista de BD R$105,00 35,7 18 Amber Wave 118 James Suporte Geral R$18,36 45,3 112 Darlene Analista de Requisitos R$45,95 45,0 22 Tide 106 William Programador R$35,75 12,8 113 Delbert Projetista de Aplicações R$48,10 23,6 25 Starflight 112 Darlene Analista de Requisitos R$45,95 41,4 101 John Projetista de BD R$105,00 56,3
  • 17. 17/20  Garantir que todas as tabelas atendam ao conceito de relações bem estabelecidas. Características:  Cada tabela representa um único assunto (Aluno, Disciplina)  Nenhum item de dados será armazenado desnecessariamente  Todos os atributos não primários de uma tabela são dependentes da chave primária e de nada além dela  Todas as tabelas estão livres de anomalias de atualização, inserção e exclusão Processo de Normalização
  • 19. 19/20  Quanto mais alta a forma normal...  ...mais operações de união relacional são necessárias para produzir a saída desejada  ...mais recursos são exigidos do SGBD para responder a consultas do usuário final  Qual é o interesse/necessidade do usuário?  Desempenho rápido? Etapas da Normalização
  • 20. Ementa 4: Normalização Março de 2015 Banco de Dados 1 (IF62H) Engenharia de Software (Turma ES21) Prof. GIOVANI Volnei Meinerz