11 aula (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

Upload: marcos-nori

Post on 15-Aug-2015

23 views

Category:

Education


0 download

TRANSCRIPT

Ementa 4: NormalizaçãoMarç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çãoMarço de 2015

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

Prof. GIOVANI Volnei Meinerz