Ementa 4: Normalização
Março de 2015
Banco de Dados 1 (IF62H)
Engenharia de Software (Turma ES21)
Prof. GIOVANI Volnei Mei...
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 sist...
4/20
 Ter um bom SGBD não é o suficiente para evitar a
redundância de dados (Ementa 2)
 Se tabelas forem tratadas como a...
5/20
É um processo para avaliar e corrigir estruturas e tabelas de
modo a minimizar as redundâncias de dados, reduzindo,
a...
6/20
 Cenário
 Empresa de construção que gerencie vários projetos
 Cada projeto possui número, nome, funcionários desig...
7/20
 Aparentemente um funcionário pode ser designado para
mais de um projeto
Necessidade de Normalização
PROJ_NUM PROJ_N...
8/20
 Cada projeto inclui uma única ocorrência de
determinado (potencialmente vários) funcionário
 Assim, saber o PROJ_N...
9/20
 Tarifa total pode ser calculada multiplicando-se as horas
trabalhadas pelo valor da tarifa cobrado por hora
Necessi...
10/20
 Infelizmente, a estrutura do conjunto de dados não
atende o conceito de a regras de integridade, quando:
 PROJ_NU...
11/20
 As entradas da tabela induzem a inconsistência de dados
 O valor “Projetista de BD”, de CARGO, pode ser inserido ...
12/20
 A tabela apresenta redundância de dados, que resultam
nas seguintes anomalias:
 Anomalias de Atualização – modifi...
13/20
 Anomalias de Inserção – No caso de querer inserir uma
linha, necessita-se designar um funcionário a um projeto.
Ca...
14/20
 Anomalias de Exclusão – Suponha que apenas um
funcionário esteja em um determinado projeto. Se ele
deixar a empres...
15/20
 Relatórios apresentando resultados diferentes e/ou
incompletos
 Suponha que tenha sido solicitado relatório que m...
16/20
 Suponha que Darlene seja designada para trabalhar no
projeto Evergreen
 A cada designação, algumas entradas de da...
17/20
 Garantir que todas as tabelas atendam ao conceito de
relações bem estabelecidas. Características:
 Cada tabela re...
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 d...
Ementa 4: Normalização
Março de 2015
Banco de Dados 1 (IF62H)
Engenharia de Software (Turma ES21)
Prof. GIOVANI Volnei Mei...
Próximos SlideShares
Carregando em…5
×

11 aula (normalização)

284 visualizações

Publicada em

tecnologia informatica

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
284
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
9
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

11 aula (normalização)

  1. 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. 2/20  Entender o conceito de normalização e sua aplicação Objetivo da Aula
  3. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 18. 18/20 Etapas da Normalização
  19. 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. 20. Ementa 4: Normalização Março de 2015 Banco de Dados 1 (IF62H) Engenharia de Software (Turma ES21) Prof. GIOVANI Volnei Meinerz

×