25
1 NORMALIZAÇÃO Adão de Melo Neto

NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

1

NORMALIZAÇÃO

Adão de Melo Neto

Page 2: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

CONVERSÃO

MER PARA O RELACIONAL

2

SEGUINDO ESTE PROCEDIMENTO AS TABELAS ESTARÃO NORMALIZADAS

Page 3: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

3

MOTIVAÇÃO – TABELAS BEM ESTRUTURADAS

Tabelas com o mínimo de mínimo de redundância, o que permitem o usuário atualizar uma tabela (inserir, modificar e apagar linhas em tabelas), sem erros e inconsistências.

Redundâncias e uma tabela pode resultar em erros e inconsistências quando se tenta atualizar os dados na tabela.

Page 4: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

4

QUAL DAS TABELAS ESTA BEM ESTRUTURADA

Qual das duas tabelas apresenta uma relação bem estruturada?

Page 5: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

5

NORMALIZAÇÃO A tabela Empregado_2 não está bem estruturada (contém redundâncias) e

portanto pode ser dividida em duas tabelas: Empregado e Curso.

O conceito de Normalização tem por base esta explicação e a capacidade de gerar relações bem estruturadas.

Page 6: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

6

NORMALIZAÇÃO e SUAS ETAPAS

A Normalização é uma técnica ligada ao modelo relacional, que pretende definir um conjunto de tabelas prontas para serem implementadas numa base de dados relacional.

Quando sigo o passo a passo da conversão do DER em tabelas as mesmas ficarão NORMALIZADAS

Page 7: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

PASSAGEM PARA

1ª FORMA NORMAL(remover grupos repetidos)

Page 8: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

8

1ª FORMA NORMAL(remover grupos repetidos)

Uma tabela está na 1ª Forma Normal quando se todas as suas colunas são elementares (atômicas)

Na TABELA, os clientes possuem RUA, CEP, BAIRRO e estas informações estão na mesma coluna tabela não esta na 1ª FN.

Para normalizar, colocar cada informação em coluna diferente

CLIENTE

CLIENTE (ALTERAÇÃO 1)

Page 9: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

9

A tabela ainda não está na primeira forma normal, pois há clientes com mais de um telefone e os valores estão em uma mesma célula.

PROBLEMA: Imagine um campo telefone que permita a entrada de mais de um valor

(dois números de telefones), por exemplo. Isto traria problema na busca de um dos valores , por exemplo.

CLIENTE – ALTERAÇÃO 1

1ª FORMA NORMAL(remover grupos repetidos)

Page 10: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

10

1ª FORMA NORMAL (REGRA PRÁTICA)

1. Identificar a chave primária

2. Identificar o grupo repetitivo e removê-lo da tabela

3. Criar uma nova tabela com a chave primária da tabela anterior e o grupo repetitivo.

Page 11: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

EXERCÍCIO - REALIZAR PASSAGEM PARA 1ª FN

1. Identificar a chave primária

2. Identificar o grupo repetitivo e removê-lo da tabela

3. Criar uma nova tabela com a chave primária da tabela anterior e o grupo repetitivo.

Page 12: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

EXERCÍCIO - REALIZAR PASSAGEM PARA 1ª FN

GRUPO REPETITIVO

Page 13: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

SOLUÇÃO – PASSAGEM PARA 1ª FN

Page 14: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

14

DEPENDÊNCIAS FUNCIONAIS

A normalização é baseada na análise das dependências funcionais, ou seja, uma relação entre dois campos da tabela.

Page 15: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

15

DEPENDÊNCIAS FUNCIONAIS

A normalização é baseada na análise das dependências funcionais, ou seja, uma relação entre dois campos da tabela.

O MESMO VALOR EM EMP_ID GERA O MESMO VALOR EM NOME

Page 16: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

16

2ª FORMA NORMAL

(remover dependências parciais)

Uma tabela está na 2ª Forma Normal quando estiver na 1ª FN e as suas colunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela).

Codigo_produto Produto (VERDADE)• O mesmo valor em código do produto gera o mesmo valor em produto.• O valor em produto depende do valor em código de produto

Codigo_produto Valor_unit (VERDADE)• O mesmo valor em código_produto gera o mesmo valor em Valor_Unit.• O valor em Valor_Unit depende do valor em código_produtoN_pedido Produto (INVERDADE) e portanto não está na 2ª FN. • O mesmo valor em N_pedido não gera o mesmo valor em produto.N_pedido Valor_unit(INVERDADE) e portanto não está na 2ª FN. • O mesmo valor em N_pedido não gera o mesmo valor em Valor_Unit.

N_pedido, Código_produto Quantidade, Subtotal (VERDADE)

Page 17: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

PASSAGEM PARA

2ª FORMA NORMAL(remover dependências parciais)

Page 18: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

18

2ª FORMA NORMAL (REGRA PRÁTICA)

Identificar as colunas que não são funcionalmente dependentes de toda a chave primária (produto e Valor_Unit);

Remover da tabela todos esses atributos identificados e criar uma nova tabela com eles.

A chave primária da nova entidade será o atributo do qual os atributos removidos são funcionalmente dependentes (código_produto).

Page 19: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

SOLUÇÃO – PASSAGEM PARA 2ª FN

PODE SER OBSERVADO QUE:CodEmp NomeCodEmp CatCodEmp SalCodProj,CodEmp DataIni, TempAl

Page 20: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

SOLUÇÃO– PASSAGEM PARA 2ª FN

NÃO ESTÁ NA SEGUNDA FORMA NORMAL

Page 21: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

SOLUÇÃO– PASSAGEM PARA 2ª FN

Page 22: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

SOLUÇÃO– PASSAGEM PARA 2ª FN

Page 23: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

PASSAGEM PARA

3ª FORMA NORMAL(remover dependências transitivas)

Page 24: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

3ª FORMA NORMAL (REGRA PRÁTICA)

Remover as dependências transitivas

Page 25: NORMALIZAÇÃOadao/AULA03BD3B2017f.pdfcolunas que não são chave primária dependem totalmente da chave primária (dependente de toda a chave e não apenas de parte dela). Codigo_produto

RESUMO: