Top Banner
Ementa 4: Normalização Março de 2015 Banco de Dados 1 (IF62H) Engenharia de Software (Turma ES21) Prof. GIOVANI Volnei Meinerz
20

11 aula (normalização)

Aug 15, 2015

Download

Education

Marcos Nori
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 11 aula (normalização)

Ementa 4: NormalizaçãoMarço de 2015

Banco de Dados 1 (IF62H)Engenharia de Software (Turma ES21)

Prof. GIOVANI Volnei Meinerz

Page 2: 11 aula (normalização)

2/20

Entender o conceito de normalização e sua aplicação

Objetivo da Aula

Page 3: 11 aula (normalização)

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

Page 4: 11 aula (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

Page 5: 11 aula (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?

Page 6: 11 aula (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

Page 7: 11 aula (normalização)

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

Page 8: 11 aula (normalização)

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

Page 9: 11 aula (normalização)

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

Page 10: 11 aula (normalização)

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

Page 11: 11 aula (normalização)

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

Page 12: 11 aula (normalização)

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

Page 13: 11 aula (normalização)

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

Page 14: 11 aula (normalização)

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

Page 15: 11 aula (normalização)

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

Page 16: 11 aula (normalização)

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

Page 17: 11 aula (normalização)

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

Page 18: 11 aula (normalização)

18/20

Etapas da Normalização

Page 19: 11 aula (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

Page 20: 11 aula (normalização)

Ementa 4: NormalizaçãoMarço de 2015

Banco de Dados 1 (IF62H)Engenharia de Software (Turma ES21)

Prof. GIOVANI Volnei Meinerz