Upload
adilsoncrente
View
285
Download
15
Embed Size (px)
Citation preview
Engenharia da Computação
Banco de Dados I
Aula 11(22/09)
http://www.univasf.edu.br/~mario.godoy/
Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação – CECOMP
Normalização
1ª FN
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})
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.)
Respostas dos Exercícios
1ª FN
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)
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)
2010.2 - Profº. Mario Godoy
Formas normais
Formas normais
� 1ª Forma Normal
� 2ª Forma Normal
� 3ª Forma Normal
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
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
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
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
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?
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
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
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
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})
2010.2 - Profº. Mario Godoy
Formas normais
Formas normais
� 1ª Forma Normal
� 2ª Forma Normal
� 3ª Forma Normal
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
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)
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)
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).
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
2010.2 - Profº. Mario Godoy
Formas normais - Resultados
Resultado da adoção das Formas Normais
� Robustez
� Eficiência
� Facilidade de manutenção
� Flexibilidade
� Confiabilidade
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.
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})
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