scc0141 - bancos de dados e suas aplicações prof. jose fernando rodrigues junior normalização...

40
SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

Upload: internet

Post on 21-Apr-2015

116 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

SCC0141 - Bancos de Dados e Suas Aplicações

Prof. Jose Fernando Rodrigues Junior

Normalização – parte 3

Forma Normal de Boyce Codd

Page 2: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

Forma Normal de Boyce Codd

Page 3: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

•A FNBC: versão mais restritiva da 3a. Forma Normal

•Maioria dos casos, relação na 3a.FN satisfaz à FNBC

•Uma relação está na Forma Normal de Boyce Codd (FNBC) quando:

para toda dependência funcional XA, X é uma chave candidata

FNBC

Page 4: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

•A FNBC: versão mais restritiva da 3a. Forma Normal

•Maioria dos casos, relação na 3a.FN satisfaz à FNBC

•Uma relação está na Forma Normal de Boyce Codd (FNBC) quando:

para toda dependência funcional XA, X é uma chave candidata

FNBC

Lembrando:

3ª. FN: está na 2ª. FN e atributos comuns não dependem

transitivamente de qualquer chave candidata.

Page 5: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Normalização:

1. considere as DFs em que o lado esquerdo não é chave candidata

2. transforme cada uma destas DFs em uma nova relação

3. retire os correspondentes atributos (lado direito das DFs) da relação original

FNBC

Refaça os exemplos de outras aulas e dos exercícios

Page 6: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

•A FNBC foi proposta após a proposição das formas normais 2ª. e 3ª trata-se de uma versão mais

abrangente surgida naturalmente

•Aplicar a FNBC em uma relação que já está em 1ª. FN é suficiente para se alcançar a 2ª. FN e a 3ª. FN

•Pode-se prosseguir com o processo de normalização usando-se apenas duas formas normais:

1ª. FN, seguida da FNBC

FNBC

Page 7: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

•Se já esta na 3ª. FN, a violação da FNBC é rara e ocorre apenas se:

a) Existe mais do que uma chave candidata

b) Existem pelo menos duas chaves candidatas compostas

c) Existe intersecção entre chaves compostas

•Visualmente

A B C

• DFs: {A, B} C e C B

• {A, B} é uma chave candidata, qual é a outra?

• Por pseudo-transitividade:

Se AB C e CB AC B

A outra chave candidata é {A, C}

FNBC

Page 8: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

•Se já esta na 3ª. FN, a violação da FNBC é rara e ocorre apenas se:

a) Existe mais do que uma chave candidata

b) Existem pelo menos duas chaves candidatas compostas

c) Existe intersecção entre chaves compostas

•Visualmente

A B C

• DFs: {A, B} C e C B

• {A, B} é uma chave candidata, qual é a outra?

• Por pseudo-transitividade:

Se AB C e CB AC B

A outra chave candidata é {A, C}

FNBC

Na maior parte dos casos, se a relação está na 3ª. FN, então ela também está na

FNBC, mas...

Uma relação que está na 3ª. FN não estará na FNBC se existir uma DF X A tal que

X não é chave candidata (mas é primo) e A é um atributo primo.

(Se X não é atributo primo, a normalização até a 3ª. FN já eliminou o problema)

Page 9: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

•Exemplo: suponha um domínio em que assistentes especiais são designados a alunos com problemas de

desempenho:

•um aluno só pode ter um único assistente por disciplina;

•um assistente só pode auxiliar uma única disciplina, mas pode auxiliar vários alunos.

Ensino = {Aluno, Disciplina, Assistente}

•DFs:

• {Aluno, Disciplina} Assistente

• Assistente Disciplina

• Por pseudo-transitividade:

{Aluno, Assistente} Disciplina

FNBC

Aluno Disciplina Assistente

Alan SMA100 Silvio

Bernando SMA100 Rodrigo

Caio SMA100 Silvio

Diego SMA100 Rodrigo

Page 10: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Dependências funcionais:

• {Aluno, Disciplina} Assistente

• Assistente Disciplina

• Por pseudo-transitividade:

{Aluno, Assistente} Disciplina

1ª. FN Ok, sem atributos multi-valorados nem compostos

2ª. FN Ok, não primos sem dependência parcial da chave

3ª. FN Ok, não primos sem dependência transitiva da chave

FNBC

Page 11: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Dependências funcionais:

• {Aluno, Disciplina} Assistente

• Assistente Disciplina

• Por pseudo-transitividade:

{Aluno, Assistente} Disciplina

1ª. FN Ok, sem atributos multi-valorados nem compostos

2ª. FN Ok, não primos sem dependência parcial da chave

3ª. FN Ok, não primos sem dependência transitiva da chave

FNBC Não ok, pois apesar da dependência funcional

Assistente Disciplina

Assistente não é uma chave candidata

FNBC

Page 12: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Observando a relação, pode-se notar a presença de redundância nos atributos Disciplina e Assistente

• Como normalizar?

• Três opções:

{Aluno, Assistente} e {Aluno, Disciplina}

{Aluno, Disciplina} e {Disciplina, Assistente}

{Aluno, Assistente} e {Assistente, Disciplina}

FNBCAluno Disciplina Assistente

Alan SMA100 Silvio

Bernando SMA100 Rodrigo

Caio SMA100 Silvio

Diego SMA100 Rodrigo

Page 13: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Observando a relação, pode-se notar a presença de redundância nos atributos Disciplina e Assistente

• Como normalizar?

• Três opções:

{Aluno, Assistente} e {Aluno, Disciplina}

{Aluno, Disciplina} e {Disciplina, Assistente}

{Aluno, Assistente} e {Assistente, Disciplina}

Todas as três satisfazem à FNBC, mas apenas uma é correta

FNBCAluno Disciplina Assistente

Alan SMA100 Silvio

Bernando SMA100 Rodrigo

Caio SMA100 Silvio

Diego SMA100 Rodrigo

Page 14: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Observando a relação, pode-se notar a presença de redundância nos atributos Disciplina e Assistente

• Como normalizar?

• Três opções:

{Aluno, Assistente} e {Aluno, Disciplina}

{Aluno, Disciplina} e {Disciplina, Assistente}

{Aluno, Assistente} e {Assistente, Disciplina}

Todas as três satisfazem à FNBC, mas apenas uma é correta

FNBCAluno Disciplina Assistente

Alan SMA100 Silvio

Bernando SMA100 Rodrigo

Caio SMA100 Silvio

Diego SMA100 RodrigoInterpretação das DFs:

• {Aluno, Disciplina} Assistente: um aluno não pode cursar a mesma disciplina duas vezes

• Assistente Disciplina: um assistente só pode auxiliar em uma única disciplina

• {Aluno, Assistente} Disciplina: um aluno não pode cursar duas disciplinas com um mesmo assistente

Page 15: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Três opções:

{Aluno, Assistente} e {Aluno, Disciplina}

{Aluno, Disciplina} e {Disciplina, Assistente}

{Aluno, Assistente} e {Assistente, Disciplina}

FNBC

Aluno Assistente

Alan Silvio

Bernando Rodrigo

Caio Silvio

Diego Rodrigo

Aluno Disciplina

Alan SMA100

Bernando SMA100

Caio SMA100

Diego SMA100

Page 16: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Três opções:

{Aluno, Assistente} e {Aluno, Disciplina}

{Aluno, Disciplina} e {Disciplina, Assistente}

{Aluno, Assistente} e {Assistente, Disciplina}

FNBC

Aluno Assistente

Alan Silvio

Bernando Rodrigo

Caio Silvio

Diego Rodrigo

Aluno Disciplina

Alan SMA100

Bernando SMA100

Caio SMA100

Diego SMA100

Opção errada, pois a redundância dos dados foi mantida ao mesmo tempo em que a quantidade de dados armazenados aumentou

piorou o problema

Page 17: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Três opções:

{Aluno, Assistente} e {Aluno, Disciplina}

{Aluno, Disciplina} e {Disciplina, Assistente}

{Aluno, Assistente} e {Assistente, Disciplina}

FNBC

Aluno Assistente

Alan Silvio

Bernando Rodrigo

Caio Silvio

Diego Rodrigo

Aluno Disciplina

Alan SMA100

Bernando SMA100

Caio SMA100

Diego SMA100

Opção errada, pois a redundância dos dados foi mantida ao mesmo tempo em que a quantidade de dados armazenados aumentou

piorou o problema

Page 18: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Três opções:

{Aluno, Assistente} e {Aluno, Disciplina}

{Aluno, Disciplina} e {Disciplina, Assistente}

{Aluno, Assistente} e {Assistente, Disciplina}

FNBC

Aluno Disciplina

Alan SMA100

Bernando SMA100

Caio SMA100

Diego SMA100

Disciplina Assistente

SMA100 Silvio

SMA100 Rodrigo

Page 19: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Três opções:

{Aluno, Assistente} e {Aluno, Disciplina}

{Aluno, Disciplina} e {Disciplina, Assistente}

{Aluno, Assistente} e {Assistente, Disciplina}

FNBC

Aluno Disciplina

Alan SMA100

Bernando SMA100

Caio SMA100

Diego SMA100

Disciplina Assistente

SMA100 Silvio

SMA100 Rodrigo

Opção errada, pois agora não é possível saber qual aluno tem aula com qual Assistente ocorre geração de tuplas ilegítimas

Page 20: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Três opções:

{Aluno, Assistente} e {Aluno, Disciplina}

{Aluno, Disciplina} e {Disciplina, Assistente}

{Aluno, Assistente} e {Assistente, Disciplina}

FNBC

Aluno Disciplina

Alan SMA100

Bernando SMA100

Caio SMA100

Diego SMA100

Disciplina Assistente

SMA100 Silvio

SMA100 Rodrigo

Opção errada, pois agora não é possível saber qual aluno tem aula com qual Assistente ocorre geração de tuplas ilegítimas

Page 21: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Três opções:

{Aluno, Assistente} e {Aluno, Disciplina}

{Aluno, Disciplina} e {Disciplina, Assistente}

{Aluno, Assistente} e {Assistente, Disciplina}

FNBC

Aluno Assistente

Alan Silvio

Bernando Rodrigo

Caio Silvio

Diego Rodrigo

Assistente Disciplina

Silvio SMA100

Rodrigo SMA100

Page 22: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Três opções:

{Aluno, Assistente} e {Aluno, Disciplina}

{Aluno, Disciplina} e {Disciplina, Assistente}

{Aluno, Assistente} e {Assistente, Disciplina}

FNBC

Aluno Assistente

Alan Silvio

Bernando Rodrigo

Caio Silvio

Diego Rodrigo

Assistente Disciplina

Silvio SMA100

Rodrigo SMA100

Opção correta, a redundância foi minimizada e a junção recompõe os dados originais.

Page 23: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Três opções:

{Aluno, Assistente} e {Aluno, Disciplina}

{Aluno, Disciplina} e {Disciplina, Assistente}

{Aluno, Assistente} e {Assistente, Disciplina}

FNBC

Aluno Assistente

Alan Silvio

Bernando Rodrigo

Caio Silvio

Diego Rodrigo

Assistente Disciplina

Silvio SMA100

Rodrigo SMA100

Opção correta, a redundância foi minimizada e a junção recompõe os dados originais.

Page 24: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Normalização:

1. considere as DFs em que o lado esquerdo não é chave candidata

Ex.: Assistente Disciplina

2. transforme cada uma destas DFs em uma nova relação

Ex.: Assistencia = {Assistente, Disciplina}

3. retire os correspondentes atributos (lado direito das DFs) da relação original

Ex.: Ensino = {Aluno, Assistente}

sem Disciplina

FNBC

Page 25: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Conclusões sobre a FNBC

• Violação da FNBC: relações em 3ª.FN, mas não em FNBC raro

• Uso: substitui a 2ª. e a 3ª. FNs, quando se deseja normalização máxima

FNBC

Page 26: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Exercício:

Lote = {PropId, Municipio, LotNum, Area, Preco, Imposto}*

*supõe-se que cada município possui uma área específica (e exclusiva) de loteamento

1. Quais são as chaves candidatas?

2. O que viola a 3ª. FN?

3. Como fica a normalização até a 3ª. FN?

4. Após isso, o que viola a FNBC?

5. Como fica a normalização completa?

6. Após isso, quais são as chaves candidatas da relação Lote?

FNBC

Page 27: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Resposta:

• Antes de se analisar a normalização, deve-se identicar todas as chaves

• Inicialmente, as chaves candidatas são PropId e {Municipio, LotNum}

• No entanto, como AreaMunicipio, por pseudo-transitividade, então {LotNum, Area} também é chave candidata.

Lote = {PropId, Municipio, LotNum, Area, Preco, Imposto}

• Assim, Area Preco viola a 2ª. FN, pois tem dependência parcial da chave candidata {LotNum, Area}

• Pode-se ter uma relação Preco={Area, Preco} e a relação fica Lote = {PropId, Municipio, LotNum, Area, Imposto}

• A relação Lote viola a FNBC pois AreaMunicipio sendo que Area, apesar de primo, sozinha não é chave candidata

• Pode-se ter uma relação Municipio = {Area, Municipio} OU uma extensão da relação Preco={Area, Preco}, que ficaria

Preco={Area, Preco, Municipio} e a relação fica Lote = {PropId, LotNum, Area, Imposto}

• Após a normalização até a FNBC, as chaves candidatas são PropId e {LotNum, Area}

FNBC

Page 28: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

Síntese e considerações finais

Page 29: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

•Dependência funcional

•Se A1, A2 …, An B1, B2, …, Bn

•Formais normais

* desconsideram-se dfs triviais, isto é, X Y tal que Y X

•Normalização: decomposição de relações

•Eliminam redundância previnem anomalias de inserção, atualização, remoção e junção

Síntese

Forma Normal Característica*

1a. FN Atomicidade, monovaloração e junções sem perda

2a. FN 1a. FN e ausência de dependências parciais

3a. FN 2a.FN e ausência de dependências transitivas

Boyce Codd A esquerda de toda df é chave candidata

Page 30: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

Formais Normais – visão geral

1FN

2FN

3FN

FNBC

Page 31: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

•Quando usar normalização?

•Resposta: sempre

•Quando aplicá-la ao meu projeto?

•modo geral: quantidade de operações de leitura não é elevada

•Ex.: bases operacionais podem ter alto grau de normalização

•Diferentes graus de normalização em função do sistema

•Ex.: bancos transacionais (OLTP) e data warehouses têm baixo grau de

normalização (até nenhuma normalização)

Quando usar normalização

Page 32: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

•Mas se eu não vou aplicar a normalização, então porque vou usá-la?

•Identificação de possibilidades de melhoria de desempenho

•Verificar se o projeto está correto de acordo com a semântica

Quando usar normalização

Page 33: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Conclusões gerais: o conhecimento sobre normalização possui dois propósitos

1) Consertar projetos mal feitos – redundantes, potencialmente inconsistentes ou que

gerem tuplas ilegítimas em junção;

2) Desnormalização consciente: dado um conjunto de consultas de interesse, podem-se

detectar junções que são gargalos do sistema; prossegue-se desnormalizando o modelo e

gerenciando-se a redundância e a consistência – uso de triggers e de interfaces.

Quando usar normalização

Page 34: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

Um pouco de históriaCultura da ciência da computação

• Edgar F. Codd (1923 - 2003)– Britânico– IBM, Nova York– Definiu o modelo relacinal– Curiosidade: concorrentes da IBM começaram a

usar as idéias de Codd, antes que a própria IBM

–Com Raymond F. Boyce, propôs a Forma normal de Boyce-

Codd

Page 35: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Exercício:

Transporte = {NavioNome, NavioTipo, ViagemID, Carga, Porto, DataChegada}

NavioNome NavioTipo

ViagemID NavioNome, Carga

NavioNome, DataChegada ViagemId, Porto

1. Desenhe este esquema representando as DFs como flechas

2. Usando transitividade e aditividade, identifique uma chave candidata

Lembre-se: uma chave determina funcionalmente todos os outros atributos

3. Identifique uma segunda chave candidata por pseudo-transitividade

4. Normalize segundo a 2ª. FN

5. Normalize segundo a 3ª. FN

6. Normalize segundo a FNBC

Exercícios

Page 36: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

• Resposta:

Transporte = {NavioNome, NavioTipo, ViagemID, Carga, Porto, DataChegada}

NavioNome NavioTipo

ViagemID NavioNome, Carga

NavioNome, DataChegada ViagemId, Porto

Uma chave candidata é {NavioNome, DataChegada}

Por razão da DF ViagemID NavioNome, outra chave candidata é {ViagemID, DataChegada}

Reordenando com as chaves identificadas:

{NavioNome, DataChegada, ViagemID, NavioTipo, Carga, Porto}

A DF NavioNome NavioTipo viola a 2ª. FN

A DF ViagemID Carga viola a 2ª. FN

A DF ViagemID NavioNome viola a FNBC

Normalização final: Transporte = {DataChegada, ViagemID, Porto}

Viagem = {ViagemID, NavioNome, Carga}

Navio = {NavioNome, NavioTipo}

Exercícios

Page 37: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

Exercícios•

Exercício: normalize a seguinte relação

R (A, B, C, D, E, F, G)

• A, B C, D, E, F, G

• E, F A

• A C

Page 38: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

Exercícios•

Resposta:

R (A, B, C, D, E, F, G)

• A, B C, D, E, F, G

• E, F A

• A C

Chaves candidatas: {A, B}, {E, F, B}

Violação da 2ª. FN por A C

Sem violação da 3ª. FN

Violação da FNBC por E,F A, pois {E,F} não é chave candidata

Page 39: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

Exercícios•

Exercício: considere a seguinte instancia de relação

• Liste as dependências funcionais observáveis (não considere conjuntos de dados compostos do lado direito) e normalize-a

para a FNBC.

PecaNum Descr Fabric Vendedor FabricEnd Preco Desconto

10010 20 GB Disk Seagate Airton Palo Alto, CA $100 5%

10010 20 GB Disk IBM Jose Armonk, NY $90 5%

10220 256 MB RAM Kensington Silva San Mateo, CA $220 6%

10220 256 MB RAM IBM Mateus Armonk, NY $220 6%

10230 256 MB RAM Sun Microsystems Mauro Palo Alto, CA $310 7%

10440 17" LCD Monitor IBM Jose Armonk, NY $2.100 10%

10500 512 MB RAM IBM Mateus Armonk, NY $350 7%

10500 512 MB RAM Kensington Silva San Mateo, CA $220 6%

Page 40: SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Normalização – parte 3 Forma Normal de Boyce Codd

Exercícios

Resposta:

• Liste as dependências funcionais observáveis

• PecaNum Descr

• Fabric FabricEnd

• PecaNum, Fabric Preco, Desconto chave candidata

• Vendedor Fabric, FabricEnd

• Preco Desconto

• O atributo FabricEnd viola a 1ª. FN pois é composto, o que poderia ser resolvido com a quebra do atributo em dois: Cidade e Estado

FabricanteEnd = {Cidade, Estado}

• Chaves candidatas: {PecaNum, Fabric} e por pseudo-transitividade {PecaNum,Vendedor}, pois VendedorFabric

• FabricanteEnd = {Fabric, FabricEnd} viola a 2ª.FN

• PecaDescr = {PecaNum, Descr} viola a 2ª. FN

• PrecoDesconto = {Preco, Desconto} viola a 3ª. FN

• Vendedor Fabric viola a FNBC

VendedorFabric = {Vendedor, Fabric}

• Relação original fica como {PecaNum, Vendedor, Preco}