36
Conte´ udo do curso Mapeamento do modelo ER Relacional Universidade Estadual de Campinas - UNICAMP Instituto de Computa¸c˜ ao - IC MC536 – Bancos de Dados: Teoria e Pr´ atica Aula #5 – Mapeamento do Modelo ER para o Modelo Relacional Profs. Anderson Rocha e Andr´ e Santanch` e Campinas, 16 de Agosto de 2012 Anderson Rocha MC536 – Bancos de Dados: Teoria e Pr´ atica 1/36

MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

���������������������������������������������������������������������������������������������������������������� Universidade Estadual de Campinas - UNICAMPInstituto de Computacao - IC

MC536 – Bancos de Dados: Teoria e PraticaAula #5 – Mapeamento do Modelo ER para o Modelo Relacional

Profs. Anderson Rocha e Andre Santanche

Campinas, 16 de Agosto de 2012

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 1/36

Page 2: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Conteudo do curso

1. Introducao: arquitetura de banco de dados.

2. Modelos de dados: modelagem e abstracoes.

3. Modelos conceituais: modelo entidade-relacionamento (ER)basico e estendido.

4. Modelo relacional: definicoes e formalizacao.

5. Mapeamento do modelo ER para o modelo relacional.

6. Linguagens de definicao e de manipulacao de dados.I Algebra relacional;I Calculo relacional.

7. Dependencias funcionais e normalizacao.

8. Processamento de consultas.

9. Controle de concorrencia.

10. Mecanismos de protecao e recuperacao.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 2/36

Page 3: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Entidades regulares (Fortes) (1)

I Cada entidade e transformada em uma relacao.

I O nome costuma ser o mesmo.

I Cada atributo simples da entidade torna-se um atributo darelacao.

I O identificador da entidade torna-se uma chave primaria darelacao correspondente.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 3/36

Page 4: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Entidades regulares (Fortes) (2)

CPF Nome Idade Profissao

Tabela: T PESSOA.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 4/36

Page 5: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Atributos compostos

I Somente os atributos componentes simples sao incluıdos nanova relacao.

Matrıcula Rua Bairro Cidade CEP

Tabela: T EMPREGADO.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 5/36

Page 6: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Atributos multivalorados (1)

I Duas novas relacoes sao criadas.

I A primeira relacao contem todos os atributos da entidadeexceto o atributo multivalorado.

I A segunda relacao refere-se ao atributo multivalorado.

I Dois atributos formam a chave da segunda relacao.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 6/36

Page 7: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Atributos multivalorados (2)

Matrıcula Rua Bairro Cidade CEP

Tabela: T EMPREGADO.

Matrıcula Habilidade

Tabela: T HABILIDADE EMPREGADO.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 7/36

Page 8: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Entidades fracas (1)

I Para cada entidade fracaI Crie uma nova relacao;I Inclua todos os seus atributos simples (ou componentes

simples de atributos compostos);I Inclua a chave primaria da relacao identificadora como um

atributo chave estrangeira da nova relacao;I A chave primaria da nova relacao e a combinacao da chave

primaria da entidade proprietaria com o identificador parcial daentidade fraca.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 8/36

Page 9: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Entidades fracas (2)

Matrıcula Rua Bairro Cidade CEP

Tabela: T EMPREGADO.

PrimeiroNome SegundoNome Matrıcula DataNascimento

Tabela: T DEPENDENTE EMPREGADO.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 9/36

Page 10: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Relacionamentos binarios

Figura: Exemplo de relacionamento binario.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 10/36

Page 11: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Relacionamentos binarios 1 : N (1)

I Crie uma relacao para cada entidade participante norelacionamento.

I Inclua o atributo chave primaria (ou atributos) da entidade dolado 1 do relacionamento como uma chave estrangeira narelacao da entidade do lado N.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 11/36

Page 12: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Relacionamentos binarios 1 : N (2)

IdCliente Nome Endereco

Tabela: T CLIENTE.

IdPedido Data IdCliente

Tabela: T PEDIDO.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 12/36

Page 13: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Relacionamentos binarios 1 : 1 (1)

I Caso especial do caso 1 : N.

I Duas relacoes sao criadas – uma para cada entidadeparticipante do relacionamento.

I A chave primaria de uma das relacoes e incluıda como chaveestrangeira da outra relacao.

I Colocar chave na relacao da entidade opcional pois evitanulos.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 13/36

Page 14: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Relacionamentos binarios 1 : 1 (2)

IdEnfermeira Nome DataNascimento

Tabela: T ENFERMEIRA.

Nome Localizacao IdEnfermeira Data

Tabela: T ALA HOSPITAL.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 14/36

Page 15: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Relacionamentos binarios N : M (1)

I Crie uma relacao para cada entidade participante norelacionamento.

I Crie uma nova relacao representando o relacionamento.

I Inclua como atributos chave estrangeira, as chaves primariasde cada entidade participante do relacionamento.

I Estes atributos tornam-se chaves primarias da nova relacao.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 15/36

Page 16: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Relacionamentos binarios N : M (2)

IdMaterial Custo UnidadeMedida

Tabela: T MATERIAL.

IdMaterial IdVendedor Preco

Tabela: T FORNECE.

IdVendedor Nome Endereco

Tabela: T VENDEDOR.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 16/36

Page 17: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Entidades associativas (1)

I Similar ao caso do relacionamento N : M.I Crie tres relacoes

I Uma para cada entidade participante;I Uma para a entidade associativa.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 17/36

Page 18: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Entidades associativas (2)

I Caso um identificador nao tenha sido atribuıdo a entidadeassociativa

I A chave primaria da relacao associativa consiste dos doisatributos chaves primarias de cada uma das entidadesparticipantes.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 18/36

Page 19: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Entidades associativas (3)

IdOrdem Data

Tabela: T ORDEM.

(a) T LISTA.

IdOrdem IdProduto Quantidade

(b) T PRODUTO.

IdProduto Preco Descricao

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 19/36

Page 20: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Entidades associativas (4)

I A entidade associativa tem um identificador natural que efamiliar aos usuarios finais.

I Os identificadores-padrao podem nao identificar univocamenteinstancias da entidade associativa.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 20/36

Page 21: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Entidades associativas (5)

(c) T CLIENTE.

IdCliente Nome

(d) T VENDEDOR.

IdVendedor Endereco

Numero IdCliente IdVendedor Quantidade Data

Tabela: T ENVIA.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 21/36

Page 22: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Relacionamentos unarios (1)

I Uma chave estrangeira e acrescentada dentro da mesmarelacao que referencia os valores da chave primaria.

Figura: Exemplo de relacionamento unario.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 22/36

Page 23: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Relacionamentos unarios (2)

Matricula Nome IdGerente

Tabela: T FUNCIONARIO.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 23/36

Page 24: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Relacionamentos unarios N : M (1)

I Duas relacoes sao criadas.

I Uma representa a entidade participante do relacionamento.

I A outra representa o relacionamento N : M

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 24/36

Page 25: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Relacionamentos unarios N : M (2)

Numero Nome Custo

Tabela: T ITEM.

Numero Componente Quantidade

Tabela: T COMPONENTE.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 25/36

Page 26: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Relacionamentos ternarios (1)

I Converte o relacionamento ternario em uma entidadeassociativa de forma a representar mais precisamenterestricoes de participacao.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 26/36

Page 27: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Relacionamentos ternarios (2)

Figura: Exemplo com relacionamento ternario.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 27/36

Page 28: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Relacionamentos ternarios (3)

Figura: Relacionamento ternario → entidade associativa.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 28/36

Page 29: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Relacionamentos ternarios (4)

(a) T PACIENTE.

IdPaciente Nome

(b) T MEDICO.

IdMedico Nome

(c) T TRATAMENTO.

Codigo Descricao

(d) T TRATAMENTO PACIENTE.

IdPaciente IdMedico Codigo Data Hora Resultado

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 29/36

Page 30: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Relacionamentos supertipo/subtipo (1)

I Crie uma relacao separada para o supertipo e para cada umdos seus subtipos.

I Coloque os atributos que sao comuns para todos os membrosdo supertipo (incluindo a chave primaria) na relacao criadapara o supertipo.

I Coloque os atributos especıficos de cada subtipo em suasrespectivas relacoes.

I Crie um (ou mais) atributos da relacao do supertipo quefuncione como um discriminador.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 30/36

Page 31: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Relacionamentos supertipo/subtipo (2)

(e) T FUNCIONARIO.

Numero Nome Endereco Tipo

(f) T DIARISTA.

D Numero TaxaHoras

(g) T ASSALARIADO.

A Numero Salario

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 31/36

Page 32: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Relacionamentos supertipo/subtipo (3)

I Dependendo da aplicacao pode-seI Optar por criar apenas relacoes para subtipos e repetir os

atributos.I Optar por criar apenas a relacao de supertipo e copiar os

atributos dos subtipos. Isto ocasiona valores NULOS.I Implicacao no numero de juncoes.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 32/36

Page 33: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Agregacao (1)

I Similar ao caso da entidade associativa.

I A chave primaria da relacao de agregacao consiste dosatributos chaves primarias de cada uma das entidadesparticipantes.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 33/36

Page 34: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Agregacao (2)

(h) T ALUNO.

RA . . .

(i) T TESE.

Codigo Tese RA . . .

(j) T DEFESA.

RA Id Tese . . .

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 34/36

Page 35: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Recapitulando

Modelo ER Modelo RelacionalEntidade RelacaoRelacionamento 1 : 1 ou 1 : N Relacao + uma chave estrangeiraRelacionamento M : N Relacao + duas chaves estrangeirasAtributo composto Conjunto de atributosAtributo multivalorado Relacao + uma chave estrangeiraRelacionamento n-ario Relacao + n-chaves estrangeirasChave Chave primaria ou alternativaEntidade fraca Relacao + chaves estrangeiras

Tabela: Correspondencia entre conceitos do MER → Relacional.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 35/36

Page 36: MC536 { Bancos de Dados: Teoria e Pr aticarocha/teaching/2012s2/mc536/...I Inclua o atributochave prim aria(ou atributos) da entidade do lado 1do relacionamentocomo uma chave estrangeirana

Conteudo do cursoMapeamento do modelo ER → Relacional

Duvidas?

Figura: O pensador - Auguste Rodin.

Anderson Rocha MC536 – Bancos de Dados: Teoria e Pratica 36/36