Você está na página 1de 37

Mapeamento do Modelo Entidade-Relacionamento para o Modelo Relacional

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Modelo de Dados e o Projeto de BD


minimundo independe do SGBD esquema conceitual depende do SGBD esquema em linguagem de implementao projeto fsico conjunto de necessidades anlise de requisitos

projeto conceitual

mapeamento para modelo

Modelo Relacional Modelo Entidade Mapeamento Relacionamento MER para o (MER) Modelo Relacional
Profa. Dra. Cristina Dutra de Aguiar Ciferri Mapeamento para o Modelo Relacional

Mapeamentos
!

Geram trs tipos de relao:


relao entidade com a mesma informao que o tipo-entidade original relao entidade com a chave estrangeira de um outro tipo-entidade relao relacionamento com as chaves primrias de todos os tipos-entidade relacionados, alm dos atributos do tiporelacionamento

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Tipo-Entidade Forte
!

Modelo entidade-relacionamento
tipo-entidade E atributos a1, a2, ..., an

Modelo relacional
tabela de n colunas distintas, correspondendo aos n atributos de E
CPF_empregado

EMPREGADO
nome_empregado

empregado (CPF_empregado, nome_empregado)


Profa. Dra. Cristina Dutra de Aguiar Ciferri Mapeamento para o Modelo Relacional

Tipo-Entidade Fraca
!

Modelo entidade relacionamento


tipo-entidade forte E: chaves primrias b1, b2, ..., bm tipo-entidade fraca A: atributos a1, a2, ..., an

Modelo relacional
tabela de n+m colunas distintas, correspondendo s m chaves de E e aos n atributos de A

CPF_empregado nome_empregado

nome_dependente

EMPREGADO

possui

n DEPENDENTE

sexo_dependente

empregado (CPF_empregado, nome_empregado) dependente (CPF_empregado, nome_dependente, sexo_dependente)


Profa. Dra. Cristina Dutra de Aguiar Ciferri Mapeamento para o Modelo Relacional

Tipo-Relacionamento (1:1)
!

Modelo entidade relacionamento


tipo-relacionamento binrio: E1 relacionando-se com E2 cardinalidade: 1:1

Modelo relacional (3 opes)


repete-se a chave primria de E1 em E2 e vice versa repete-se a chave primria de E1 em E2 repete-se a chave primria de E2 em E1

Chave estrangeira
chave primria de uma relao que inserida em outra relao utilizada para recuperar informaes de outras relaes

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Tipo-Relacionamento (1:1)
CPF_empregado nome_empregado sigla_depto

EMPREGADO

gerencia

DEPARTAMENTO

nome_depto

empregado (CPF_empregado, nome_empregado, sigla_depto) departamento (sigla_depto, nome_depto, CPF_empregado) empregado (CPF_empregado, nome_empregado) departamento (sigla_depto, nome_depto, CPF_empregado) empregado (CPF_empregado, nome_empregado, sigla_depto) departamento (sigla_depto, nome_depto)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Mapeamento para o Modelo Relacional

Tipo-Relacionamento (1:1)
CPF_empregado nome_empregado sigla_depto

EMPREGADO

gerencia

DEPARTAMENTO

nome_depto

- no pode existir departamento sem gerente - pode existir empregado que no gerencia o departamento empregado (CPF_empregado, nome_empregado) departamento (sigla_depto, nome_depto, CPF_empregado) - entidades de departamento: participao total - entidades de empregado: participao parcial
Profa. Dra. Cristina Dutra de Aguiar Ciferri Mapeamento para o Modelo Relacional

Tipo-Relacionamento (1:n)
!

Modelo entidade relacionamento


tipo-relacionamento binrio: E1 relacionando-se com E2 cardinalidade: 1:n

Modelo relacional Repete-se a chave primria de E1 em E2


a tabela de E1 possuir apenas os atributos de E1 a tabela de E2 possuir N os atributos de E2 N a chave primria de E1 (chave estrangeira) N os atributos do tipo-relacionamento

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Tipo-Relacionamento (1:n)
EMPREGADO CPF_empregado nome_empregado

trabalha

DEPARTAMENTO sigla_depto nome_depto

empregado (CPF_empregado, nome_empregado, sigla_depto) departamento (sigla_depto, nome_depto)

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Atributo de Tipo-Relacionamento (1:1 e 1:n)


EMPREGADO CPF_empregado nome_empregado

trabalha
data_incio

DEPARTAMENTO sigla_depto nome_depto

empregado (CPF_empregado, nome_empregado, sigla_depto, data_incio) departamento (sigla_depto, nome_depto)

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Tipo-Relacionamento (m:n)
!

Modelo entidade relacionamento


tipo-relacionamento binrio: E1 relacionando-se com E2 cardinalidade: m:n

Modelo relacional
a tabela de E1 possuir apenas os atributos de E1 a tabela de E2 possuir apenas os atributos de E2 a tabela R (relativa ao tipo-relacionamento) conter: N a chave primria de E1 (chave estrangeira) N a chave primria de E2 (chave estrangeira) N os atributos do tipo-relacionamento

Chave primria de R
chave primria de E1 + chave primria de E2
Mapeamento para o Modelo Relacional

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Tipo-Relacionamento (m:n)
EMPREGADO CPF_empregado nome_empregado

desenvolve
horas_trabalhadas

PROJETO

nro_projeto nome_projeto

empregado (CPF_empregado, nome_empregado) projeto (nro_projeto, nome_projeto) desenvolve (CPF_empregado, nro_projeto, horas_trabalhadas)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Mapeamento para o Modelo Relacional

Tipo-relacionamento Unrio (1:1)

casa marido 1 1 pessoa esposa


cdigo_pessoa nome_pessoa

pessoa (cdigo_pessoa, nome_pessoa, cdigo_cnjuge)


Profa. Dra. Cristina Dutra de Aguiar Ciferri Mapeamento para o Modelo Relacional

Tipo-relacionamento Unrio (1:n)

supervisiona supervisionado n 1 empregado


cdigo_emp nome_emp

supervisor

empregado (cdigo_emp, nome_emp, cdigo_supervisor)


Profa. Dra. Cristina Dutra de Aguiar Ciferri Mapeamento para o Modelo Relacional

Tipo-relacionamento Unrio (m:n)


tem como pr-requisito m n disciplina pr-requisito
cdigo_disc nome_disc

tem

disciplina (cdigo_disc, nome_disc) pr_requisito (cdigo_disc, cdigo_pr_requisito)


Profa. Dra. Cristina Dutra de Aguiar Ciferri Mapeamento para o Modelo Relacional

Tipo-relacionamento Ternrio
!

Modelo entidade relacionamento


E1 relacionando-se com E2 e com E3 cardinalidade: m:n:p

Modelo relacional
a tabela de E1 possuir apenas os atributos de E1 a tabela de E2 possuir apenas os atributos de E2 a tabela de E3 possuir apenas os atributos de E3 a tabela R (relativa ao tipo-relacionamento) conter: N a chave primria de E1 N a chave primria de E2 N a chave primria de E3 N os atributos do tipo-relacionamento
Mapeamento para o Modelo Relacional

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Tipo-relacionamento Ternrio
chave-A

tipo-entidade_A x y
chave-B atributos_B

atributos_A

ABC

z
chave-C

tipo-entidade_B

tipo-entidade_C

atributos_C

tabelas relativas aos tipos-entidade

tipo-entidade_A (chave-A, atributos_A) tipo-entidade_B (chave-B, atributos_B) tipo-entidade_C (chave-C, atributos_C)


Mapeamento para o Modelo Relacional

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Tipo-relacionamento Ternrio
!

Tabela relativa ao tipo-relacionamento


Primeiro caso: x=y=z=1
ABC (chaves-A, chaves-B, chaves-C) N ABC (chaves-A, chaves-B, chaves-C) N ABC (chaves-A, chaves-B, chaves-C)
N

+ integridade referencial

chaves-A, chaves-B chaves-A, chaves-C chaves-B, chaves-C

chaves-C chaves-B chaves-A

Segundo caso: x = m; y = n; z = p
N

ABC (chaves-A, chaves-B, chaves-C)

+ integridade referencial

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Tipo-relacionamento Ternrio
!

Tabela relativa ao tipo-relacionamento


Terceiro caso: x = 1; y = 1; z = m
ABC (chaves-A, chaves-B, chaves-C) N ABC (chaves-A, chaves-B, chaves-C)
N

chaves-A, chaves-C chaves-B, chaves-C

chaves-B chaves-A

+ integridade referencial

Terceiro caso: x = 1; y = m; z = n
N

ABC (chaves-A, chaves-B, chaves-C)


chaves-B, chaves-C chaves-A

+ integridade referencial

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Generalizao/Especializao
CPF_empregado

EMPREGADO
tipo_empregado

nome_empregado

SECRETRIO
idioma

TCNICO
grau_tcnico

ENGENHEIRO
tipo_engenheiro

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Atributo Tipo-Empregado
!

Atributo nico
tipo-empregado assume valores diferentes, de acordo com o tipo do empregado

Diversos atributos
tipo_empS, tipo_empT, tipo_empE, ... cada um dos atributos assume valor 0 ou 1, de acordo com o tipo do empregado abordagem muito mais flexvel, principalmente para hierarquias com restrio de sobreposio

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Generalizao/Especializao
!

Modelo entidade relacionamento


E1: superclasse E2, ..., En : subclasses de E1

Modelo relacional
a tabela de E1 possuir: N os atributos de E1 N um atributo discriminador, caso necessrio as tabelas de E2 a En possuiro: N os seus atributos especficos N a chave primria de E1

Chave primria das subclasses


chave primria de E1

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Generalizao/Especializao
CPF_empregado

EMPREGADO
tipo_empregado

nome_empregado

SECRETRIO
idioma

TCNICO
grau_tcnico

ENGENHEIRO
tipo_engenheiro

empregado (CPF_empregado, nome_empregado, tipo_empregado) secretrio (CPF_empregado, idioma) tcnico (CPF_empregado, grau_tcnico) engenheiro (CPF_empregado, tipo_engenheiro)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Mapeamento para o Modelo Relacional

Outras Formas de Mapeamento


!

Modelo entidade relacionamento


E1: superclasse E2, ..., En : subclasses de E1

Modelo relacional
as tabelas de E2 a En possuiro: N os seus atributos especficos N os atributos de E1 N a chave primria de E1

Chave primria das subclasses


chave primria de E1

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Outras Formas de Mapeamento


CPF_empregado

EMPREGADO
tipo_empregado

nome_empregado

SECRETRIO
idioma

TCNICO
grau_tcnico

ENGENHEIRO
tipo_engenheiro

secretrio (CPF_empregado, nome_empregado, idioma) tcnico (CPF_empregado, nome_empregado, grau_tcnico) engenheiro (CPF_empregado, nome_empregado, tipo_engenheiro)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Mapeamento para o Modelo Relacional

Outras Formas de Mapeamento


!

Modelo entidade relacionamento


E1: superclasse E2, ..., En : subclasses de E1

Modelo relacional
a tabela de E1 possuir: N os atributos de E1 N os atributos de E2, ..., En N o atributo discriminador, caso necessrio

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Outras Formas de Mapeamento


CPF_empregado

EMPREGADO
tipo_empregado

nome_empregado

SECRETRIO
idioma

TCNICO
grau_tcnico

ENGENHEIRO
tipo_engenheiro

empregado (CPF_empregado, nome_empregado, tipo_empregado, idioma, grau_tcnico, tipo_engenheiro)

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Outras Formas de Mapeamento


!

Modelo entidade relacionamento


E1: superclasse E2, ..., En : subclasses de E1

Modelo relacional
a tabela de E1 possuir: N os atributos de E1 a tabela referente juno das subclasses possuir: N os atributos de E2, ..., En N a chave primria de E1 N um atributo discriminador, caso necessrio

Chave primria da tabela referente juno


chave primria de E1

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Outras Formas de Mapeamento


CPF_empregado

EMPREGADO
tipo_empregado

nome_empregado

SECRETRIO
idioma

TCNICO
grau_tcnico

ENGENHEIRO
tipo_engenheiro

empregado (CPF_empregado, nome_empregado) SeTeEn (CPF_empregado, idioma, grau_tcnico, tipo_engenheiro, tipo_empregado)


Profa. Dra. Cristina Dutra de Aguiar Ciferri Mapeamento para o Modelo Relacional

Agregao
CPF_pessoa nome_pessoa data_ingresso

ALUNO
CGC_univ nome_univ

n
PESSOA

m ingressa
UNIVERSIDADE

m orienta n
CPF_professor

PROFESSOR
nome_professor

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Agregao
!

Dados vistos em um nvel mais baixo


atributos dos tipos-relacionamentos chaves primrias dos tipos-entidades

Mapeamento
pessoa (CPF_pessoa, nome_pessoa) universidade (CGC_univ, nome_univ) ingressa/aluno (CPF_pessoa, CGC_univ, data_ingresso) professor (CPF_professor, nome_professor) orienta (CPF_pessoa, CGC_univ, CPF_professor)

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Agregao
CPF_pessoa nome_pessoa data_ingresso CGC_univ nome_univ

PESSOA

ingressa

UNIVERSIDADE

ALUNO
m orienta n
PROFESSOR
CPF_professor nome_professor

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Mapeamento
pessoa (CPF_pessoa, nome_pessoa) universidade (CGC_univ, nome_univ) ingressa/aluno (CPF_pessoa, CGC_univ, data_ingresso) professor (CPF_professor, nome_professor) orienta (CPF_pessoa, CGC_univ, CPF_professor)

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Agregao
CMR_mdico nome_mdico hora data+ CPF_paciente nome_paciente

MDICO

atende
ATENDIMENTO

PACIENTE

mdico (CRM_mdico, nome_mdico) paciente (CPF_paciente, nome_paciente) atendimento (CRM_mdico, CPF_paciente, data, hora)

Profa. Dra. Cristina Dutra de Aguiar Ciferri

Mapeamento para o Modelo Relacional

Agregao
CMR_mdico nome_mdico hora data+ CPF_paciente nome_paciente

MDICO

atende
obs

PACIENTE

ATENDIMENTO

mdico (CRM_mdico, nome_mdico) paciente (CPF_paciente, nome_paciente) atendimento (CRM_mdico, CPF_paciente, data, hora) atende (CRM_mdico, CPF_paciente, obs)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Mapeamento para o Modelo Relacional

Agregao
CMR_mdico nome_mdico hora data+ CPF_paciente nome_paciente

MDICO

atende
obs

PACIENTE

ATENDIMENTO

nro_atendimento

mdico (CRM_mdico, nome_mdico) paciente (CPF_paciente, nome_paciente) atendimento (CRM_mdico, CPF_paciente, data, hora, nro_atendimento) atende (CRM_mdico, CPF_paciente, obs)
Profa. Dra. Cristina Dutra de Aguiar Ciferri Mapeamento para o Modelo Relacional