SlideShare uma empresa Scribd logo
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 11 aula (normalização)

Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013
Pablo Dall'Oglio
 
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
SaraR49
 

Semelhante a 11 aula (normalização) (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

Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
rarakey779
 
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdfGRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
rarakey779
 
INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]
INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]
INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]
ESCRIBA DE CRISTO
 
AS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdf
AS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdfAS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdf
AS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdf
ssuserbb4ac2
 
OFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdf
OFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdfOFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdf
OFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdf
AndriaNascimento27
 
PERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptxPERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptx
tchingando6
 

Último (20)

Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptxSlides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
Slides Lição 9, CPAD, Resistindo à Tentação no Caminho, 2Tr24.pptx
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
 
Junho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na IgrejaJunho Violeta - Sugestão de Ações na Igreja
Junho Violeta - Sugestão de Ações na Igreja
 
Atividade português 7 ano página 38 a 40
Atividade português 7 ano página 38 a 40Atividade português 7 ano página 38 a 40
Atividade português 7 ano página 38 a 40
 
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdfGRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
GRAMÁTICA NORMATIVA DA LÍNGUA PORTUGUESA UM GUIA COMPLETO DO IDIOMA.pdf
 
INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]
INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]
INTRODUÇÃO A ARQUEOLOGIA BÍBLICA [BIBLIOLOGIA]]
 
AS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdf
AS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdfAS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdf
AS COLUNAS B E J E SUAS POSICOES CONFORME O RITO.pdf
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
 
Os Padres de Assaré - CE. Prof. Francisco Leite
Os Padres de Assaré - CE. Prof. Francisco LeiteOs Padres de Assaré - CE. Prof. Francisco Leite
Os Padres de Assaré - CE. Prof. Francisco Leite
 
DIFERENÇA DO INGLES BRITANICO E AMERICANO.pptx
DIFERENÇA DO INGLES BRITANICO E AMERICANO.pptxDIFERENÇA DO INGLES BRITANICO E AMERICANO.pptx
DIFERENÇA DO INGLES BRITANICO E AMERICANO.pptx
 
OFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdf
OFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdfOFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdf
OFICINA - CAFETERIA DAS HABILIDADES.pdf_20240516_002101_0000.pdf
 
São Filipe Neri, fundador da a Congregação do Oratório 1515-1595.pptx
São Filipe Neri, fundador da a Congregação do Oratório 1515-1595.pptxSão Filipe Neri, fundador da a Congregação do Oratório 1515-1595.pptx
São Filipe Neri, fundador da a Congregação do Oratório 1515-1595.pptx
 
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
 
curso-de-direito-constitucional-gilmar-mendes.pdf
curso-de-direito-constitucional-gilmar-mendes.pdfcurso-de-direito-constitucional-gilmar-mendes.pdf
curso-de-direito-constitucional-gilmar-mendes.pdf
 
hereditariedade é variabilidade genetic
hereditariedade é variabilidade  genetichereditariedade é variabilidade  genetic
hereditariedade é variabilidade genetic
 
Apresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimentoApresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimento
 
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básicoPowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
 
PERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptxPERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptx
 
Apresentação sobre as etapas do desenvolvimento infantil
Apresentação sobre as etapas do desenvolvimento infantilApresentação sobre as etapas do desenvolvimento infantil
Apresentação sobre as etapas do desenvolvimento infantil
 

11 aula (normalização)

  • 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