27
Engenharia da Computação Banco de Dados I Aula 11 (22/09) [email protected] http://www.univasf.edu.br/~mario.godoy/ Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação – CECOMP

BD - Exercicio - Normalizacao

Embed Size (px)

Citation preview

Page 1: BD - Exercicio - Normalizacao

Engenharia da Computação

Banco de Dados I

Aula 11(22/09)

[email protected]

http://www.univasf.edu.br/~mario.godoy/

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação – CECOMP

Page 2: BD - Exercicio - Normalizacao

Normalização

1ª FN

Page 3: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Exercícios

Deixe os BDs abaixo na Primeira Forma Normal (atributos entre { }

indicam repetição).

1) Biblioteca

Livro (cod-livro, título, nome-editora, endereço-editora, {cod-autor, nome-

autor})

2) Controle de Projetos

ProjetoEmpr (cod-proj, tipo, descrição, {cod-empregado, nome, categoria,

salario, data-início, data-fim})

3) Sistema Acadêmico

Aluno (RA, nome-aluno, {cod-curso,ano-ingresso}, {cod-disc, nome-disc,

{semestre-cursada, cod-prof, nome-prof}, nota-disc})

Page 4: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Exercícios

Deixe os BDs abaixo na Primeira Forma Normal (atributos entre { } indicam repetição)

4. Folha de PagamentoFuncionario (func-código, func-nome, func-endereço, func-data-nascimento, func-código-cargo, nome-cargo, numero-banco, agencia-banco, cidade-banco, {func-datas-faltas-ano, motivo-falta})

Func-pagamento (func-código, func-mês, func-ano, valor-depositado)

5. Clínica MédicaMédico (CRM, med-nome, med-telefone, {med-data-atendimento, med-hora-atendimento, codigo-paciente})

Paciente (pac-código, pac-nome, pac-ddd, pac-telefone, {cod-convênio, descrição-convênio})

Consulta (CRM-Medico, Codigo-Pac, Data, hora_consulta, valor_consulta, nome-conv.)

Page 5: BD - Exercicio - Normalizacao

Respostas dos Exercícios

1ª FN

Page 6: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Exercícios - Respostas

Deixe os BDs abaixo na Primeira Forma Normal (atributos entre { }

indicam repetição)

1) Biblioteca

Livro (cod-livro, título, nome-editora, rua-edit, bairro-edit, cep-edit, cidade-

edit, num-edit)

AutorLivro (cod-livro, cod-autor, nome-autor)

2) Controle de Projetos

Projeto(cod-proj, tipo, descrição)

ProjetoEmpregado (cod-proj, cod-empregado, nome, categoria, salario,

data-início, data-fim)

3) Sistema Acadêmico

Aluno (RA, nome-aluno, cod-curso, ano-ingresso)

AlunoDisc (RA, cod-disc, nome-disc, nota-disc)

AlunoTurma (RA, cod-disc, semestre-cursada, cod-prof, nome-prof)

Page 7: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Exercícios - Respostas

Deixe os BDs abaixo na Primeira Forma Normal (atributos entre { } indicam

repetição)

4) Folha de Pagamento

Funcionario (func-código, func-nome, func-rua, func-num, func-bairro, func-cep,

func-cidade, func-uf, func-data-nascimento, func-código-cargo,nome-cargo, numero-

banco,agencia-banco,cidade-banco)

+ FuncFalta (func-código, func-datas-faltas-ano, motivo-falta)

Func-pagamento (func-código, func-mês, func-ano, valor-depositado)

5) Clínica Médica

Médico (CRM, med-nome, med-telefone)

+ MedAtend (CRM, med-data-atendimento, med-hora-atendimento, codigo-paciente)

Paciente (pac-códig, pac-nome, pac-ddd, pac-telefone)

+ PacConv (pac-codig, cod-convênio, descrição-convênio)

Consulta (CRM-Medico, Codigo-Pac, Data, hora_consulta, valor_consulta, nome-conv)

Page 8: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Formas normais

Formas normais

� 1ª Forma Normal

� 2ª Forma Normal

� 3ª Forma Normal

Page 9: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Formas normais

Formas normais

� 2ª Forma Normal

� Deve estar na 1ª FN.

� Todos os atributos da relação que não fazem parte da chave primária, devem ser totalmente dependentes da chaveprimária (dependência total), ou seja, dependentes de todos os atributos dessa chave. EXEMPLO:

CLIENTE

� *cod_cliente

� nome

� data_nasc

� placa

� marca

� modelo

� ano

� cor

Não são dependentes funcionais decod_cliente

São dependentes funcionais de cod_cliente

CARRO

� *placa

� marca

� modelo

� ano

� cor

Nova Relação

Page 10: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Formas normais

Formas normais

� 2ª Forma Normal

� Deve estar na 1ª FN.

� Todos os atributos da relação devem ser totalmentedependentes da chave primária (dependência total).

EXEMPLO:

CLIENTE

� *cod_cliente

� nome

� data_nasc

São dependentes funcionais de cod_cliente

CARRO

� *placa

� marca

� modelo

� ano

� cor

São dependentes funcionais de

placa

Page 11: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Formas normais

� 2ª Forma Normal

� Dica: se a chave primária for composta, pergunta-se:

1. “Qual é a chave primária da relação?”

2. “Há algum atributo que não é chave, mas que depende funcionalmente de somente parte da chave?”

Exemplo:

Matrícula (RA, código-disciplina, nome-aluno, nome-disciplina, quant-aula-disciplina)

Qual é a chave primária da relação?

� RA + código-disciplina

“Há algum atributo que não é chave, mas que depende funcionalmente de somente parte da chave?”

� RA ���� nome-aluno

� código-disciplina ���� nome-disciplina, quant-aula-disciplina

Formas normais

Page 12: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Formas normais

� 2ª Forma Normal

� Aplicando a 2FN (considerando que já estão na 1FN):

1) Verifica-se os atributos que dependem da mesma parte da chave.

1.1) Retira da relação todos os atributos de um desses grupos.

2) Cria-se uma nova relação, esses atributos dependentes, acrescentando exclusivamente, o atributo que determina suaexistência, como chave primária.

Formas normais

Page 13: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Formas normais

� 2ª Forma Normal

� Aplicando a 2FN

Exemplo:

Matrícula (RA, código-disciplina, nome-aluno, nome-disciplina, quant-aula-disciplina)

Primeiro grupo:

RA ���� nome-aluno

Aluno(RA, nome-aluno)

Segundo grupo:

código-disciplina ���� nome-disciplina, quant-aula-disciplina

Disciplina(código-disciplina, nome-disciplina, quant-aula-disciplina)

Formas normais

E a relação Matrícula?

Page 14: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Formas normais

� 2ª Forma Normal

� Aplicando a 2FN

Exemplo:

Matrícula (RA, código-disciplina, nome-aluno, nome-disciplina, quant-aula-disciplina)

Formas normais

BD final:

Matrícula (RA, código-disciplina)

Aluno (RA, nome-aluno)

Disciplina (código-disciplina, nome-disciplina, quant-aula-disciplina)

Aluno

� *RA

� Nome-aluno

Matricula

� *RA

� *Código-disciplina

Diciplina

� *Código-disciplina

� Nome-disicplina

Page 15: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Formas normais

Formas normais

� 2ª Forma Normal

� Deve estar na 1ª FN.

� Todos os atributos da relação devem ser totalmentedependentes da chave primária (dependência total).

EXEMPLO:

CLIENTE

� *cod_cliente

� nome

� data_nasc

CARRO

� *placa

� marca

� modelo

� ano

� cor

DUCHA

� Cod_cliente*

� Placa_Carro*

� Data*

� nome_cliente

� Tipo_lavagem

� Preço

Page 16: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Formas normais

Formas normais

� 2ª Forma Normal

� Deve estar na 1ª FN.

� Todos os atributos da relação devem ser totalmentedependentes da chave primária (dependência total).

EXEMPLO:

CLIENTE

� *cod_cliente

� nome

� data_nasc

CARRO

� *placa

� marca

� modelo

� ano

� cor

DUCHA

� Cod_cliente*

� Placa_Carro*

� Data*

� Tipo_lavagem

� Preço

Page 17: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Exercícios – 2ª FN

Deixe os BDs abaixo na Segunda Forma Normal (atributos entre { } indicam repetição)

1. Controle de ProjetosProjetoEmpr(cod-proj, tipo-proj, descrição-proj, {cod-empregado,

nome-empr, cod-categoria-empr, descricao-categoria, salario-categoria, data-início, data-fim})

2. Sistema AcadêmicoAluno(RA,nome-aluno,cod-curso,nome-curso, {cod-disc, nome-disc,

{ano-cursada, cod-prof-disc, nome-prof-disc}, nota-disc,freq-disc})

3. Folha de PagamentoFuncionario(func-código, func-nome,func-endereço,func-data-nascimento,

{código-cargo,nome-cargo,data-início,data-fim},{data-pagto,func-codigo-banco,func-codigo-agência,func-nome-banco-agência,valor-pagto})

4. Clínica MédicaMédico(CRM, med-nome, med-telefone, {cod-paciente,nome-

paciente,cod-convênio,descrição-convenio,data-atendimento,med-hora-atendimento})

Page 18: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Formas normais

Formas normais

� 1ª Forma Normal

� 2ª Forma Normal

� 3ª Forma Normal

Page 19: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Formas normais

� 3ª Forma Normal

� Aplicando a 3FN (considerando que já estão na 2FN):

1) Eliminam-se todos os atributos que são calculados a partir de outros atributos presentes no BD.

2) Para cada dependência transitiva, cria-se uma nova relação, com os atributos dependentes, e os atributos que causam a dependência como chave primária.

Formas normais

Page 20: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Formas normais

Formas normais

� 3ª Forma Normal

Caso 1: atributos calculados.

Aluno (RA, nome-aluno, data-nascimento, idade)

� Data-nascimento -> Idade

� Idade é funcionalmente dependente de data-nascimentoporque pode ser calculada a partir desta data.

BD final:

Aluno (RA, nome-aluno, data-nascimento)

Page 21: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Formas normais

Formas normais

� 3ª Forma Normal

� Caso 2: Dependência Funcional.

� Aluno (RA, nome-aluno, cod-curso, nome-curso, título-curso)

� “Há algum atributo que não é chave, mas que depende funcionalmente de outro atributo não chave?”

� Aluno (RA, nome-aluno, cod-curso, nome-curso, título-curso)

� cod-curso � nome-curso, título-curso

BD final:

Aluno (RA, nome-aluno, cod-curso)

Curso (cod-curso, nome-curso, título-curso)

Page 22: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Formas normais

Formas normais

� 3ª Forma Normal

� Deve estar na 2ª FN.

� Não deve existir dependência transitiva, ou seja, não existir dependentes funcionais de atributos não chaves.

EXEMPLO:

CLIENTE

� *Cod_cliente

� Nome

� Data_nasc

CARRO

� *Placa

� Marca

� Modelo

� Ano

� Cor

DUCHA

� Cod_cliente*

� Placa_Carro*

� Data*

� Tipo_lavagem

� Preço

Preço não é dependente da Chave Primária.

Preço é dependente do Tipo_lavagem (Dependência Tansitiva).

Page 23: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Formas normais

Formas normais

� 3ª Forma Normal

� Deve estar na 2ª FN.

� Não deve existir dependência transitiva.

EXEMPLO:

CLIENTE

� *cod_cliente

� nome

� data_nasc

CARRO

� *placa

� marca

� modelo

� ano

� cor

DUCHA

� Cod_cliente*

� Placa_Carro*

� Data*

� Tipo_lavagem

Tipo_lavagem

� *Cod_Tipo_lavagem

� Preço

Page 24: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Formas normais - Resultados

Resultado da adoção das Formas Normais

� Robustez

� Eficiência

� Facilidade de manutenção

� Flexibilidade

� Confiabilidade

Page 25: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Formas normais

Resumindo Normalização:

� A normalização de relações é feita na grande maioria das vezes decompondo-se uma relação em duas ou mais.

� No entanto, é freqüente que nas consultas à BD, seja necessário recompor-se a relação original.

� Isso não causa nenhum transtorno, uma vez que a não normalização de relações causa anomalias de atualização, não de consulta.

� a decomposição deve ser feita com cuidado, para evitar perda de informação na recomposição.

Page 26: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Exercícios – 3ª FN

Deixe os BDs abaixo na Terceira Forma Normal (atributos entre { } indicam repetição)

1. Controle de ProjetosProjetoEmpr(cod-proj, tipo, descrição, {cod-empregado, nome, cod-categoria, data-início, data-fim, descricao-categoria,quantidade-dias,valor-hora-trabalho,quantidade-horas,salário})

2. Sistema AcadêmicoAluno(RA,nome-aluno,cod-curso,nome-curso, {cod-disc, nome-disc, total-aulas,{semestre-cursada, cod-prof, nome-prof}, nota-disc,total-aulas-assistidas,freq-disc})

3. Folha de PagamentoFuncionario(func-código, func-nome,func-endereço,func-data-

nascimento, {código-cargo,nome-cargo,data-inicio,data-fim},{data-pagto,func-codigo-banco,func-nome-banco,valor-pagto-bruto,total-descontos,valor-pagto-liquido})

4. Clínica MédicaMédico(CRM, med-nome, med-telefone, {cod-paciente,nome-

paciente,cod-convenio,descrição-convenio,data-atendimento,med-hora-atendimento,valor-consulta,valor-multa,valor-total-consulta})

Page 27: BD - Exercicio - Normalizacao

2010.2 - Profº. Mario Godoy

Atividades

Próxima aula:

1. Entregar exercícios.2. Entregar resumo sobre Dependência Funcional3. Entregar resumo das 3 FN