Logo Passei Direto
Buscar

bd-1-slides-4-map-ER-relacional

User badge image

Enviado por Thiago Freitas em

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Banco de Dados I
Mapeamento ER - Relacional
DCC-UFLA
Prof. Denilson Alves Pereira
Prof. Denilson A. Pereira 2
Mapeamento ER para Relacional
Prof. Denilson A. Pereira 3
Mapeamento ER para Relacional
• Tipo Entidade
– Para cada tipo de entidade E regular (não fraca) no esquema 
ER, crie uma relação R que inclua todos os atributos simples 
de E.
– Inclua também os atributos simples componentes de um 
atributo composto de E na relação R.
– Escolha uma das chaves candidatas de E para chave primária 
de R.
Exemplo: 
para o tipo de entidade Funcionario,
gere a relação:
 Funcionario (cpf, primeiroNome, sobrenome, salario)
Funcionário
cpf salárionome
1º nome sobrenome
Prof. Denilson A. Pereira 4
Mapeamento ER para Relacional
• Tipo Entidade Fraca
– Para cada tipo de entidade fraca W no esquema ER, crie uma 
relação R e inclua todos os atributos simples (ou 
componentes simples de atributos compostos) de W como 
atributos de R.
– Inclua também como atributos de R todos os atributos 
componentes das chaves primárias de cada uma das 
entidades fortes de W. Cada uma dessas inclusões é uma 
chave estrangeira de R.
– A chave primária de R é a combinação dos atributos das 
chaves primárias das entidades fortes de W mais a chave 
parcial de W.
Prof. Denilson A. Pereira 5
Mapeamento ER para Relacional
Exemplo:
para o tipo de entidade fraca Dependente,
gere a relação:
 Dependente (cpfFunc, nome, dataNascimento, parentesco)
Dependente[cpfFunc] →p Funcionario[cpf] 
Funcionário
cpf salárionome
1º nome sobrenome
N1
 possui Dependente
nome
data nascimento
parentesco
Prof. Denilson A. Pereira 6
Mapeamento ER para Relacional
• Atributo Multivalorado
– Para cada atributo multivalorado A de um tipo de entidade 
E, crie uma nova relação R que inclua o atributo A mais a 
chave primária K (como chave estrangeira em R) da relação 
que representa o tipo de entidade ou o tipo de 
relacionamento que tem A como atributo.
– Se o atributo multivalorado é composto, inclua seus 
componentes simples.
– A chave primária de R é a combinação de K e A.
Exemplo:
para o atributo Localização, gere a relação:
 LocalizaçãoDepto (número, localização)
 LocalizaçãoDepto[número] →p Departamento[número]
Departamento
nome
número
localização
Prof. Denilson A. Pereira 7
Mapeamento ER para Relacional
• Tipo Relacionamento Binário 1:1
– Opção 1: Técnica de chave estrangeira
– Para cada tipo de relacionamento binário R 1:1 no 
esquema ER, identifique as relações S e T que 
correspondem aos tipos de entidades participantes de 
R. Escolha uma das relações, S por exemplo, e inclua 
como chave estrangeira em S a chave primária de T. É 
melhor escolher um tipo de entidade com participação 
total em R no papel de S.
– Inclua todos os atributos simples (ou componentes 
simples de atributos compostos) do tipo de 
relacionamento R como atributo de S.
Prof. Denilson A. Pereira 8
Mapeamento ER para Relacional
Exemplo:
para o tipo de relacionamento gerencia,
Opção 1: adicione os atributos cpfGerente e dataInício à 
relação Departamento
Departamento (número, nome, cpfGerente, dataInício)
 Departamento[cpfGerente] →b Funcionário[cpf]
 ==> melhor opção para este exemplo.
 
Departamento
nome
número
localização
Funcionário
cpf salárionome
1º nome sobrenome
11
gerencia
data início
Prof. Denilson A. Pereira 9
Mapeamento ER para Relacional
• Tipo Relacionamento Binário 1:1
– Opção 2: Técnica de relação mesclada
– Junte os dois tipos de entidades e o tipo relacionamento 
em uma única relação.
– Esta opção é particularmente apropriada quando ambas 
as participações são totais e os tipos de entidades não 
participam de nenhum outro tipo de relacionamento 
individual.
Prof. Denilson A. Pereira 10
Mapeamento ER para Relacional
Exemplo:
para o tipo de relacionamento gerencia,
Opção 2: mescle as relações Funcionário e Departamento
FuncDepto (cpf, primeiroNome, sobrenome, salario, 
 número, nome, cpfGerente, dataInício)
==> não é uma opção interessante para este exemplo.
Departamento
nome
número
localização
Funcionário
cpf salárionome
1º nome sobrenome
11
gerencia
data início
Prof. Denilson A. Pereira 11
Mapeamento ER para Relacional
• Tipo Relacionamento Binário 1:1
– Opção 3: Técnica de relação de referência cruzada ou 
relacionamento
– Cria-se uma nova relação, de forma semelhante ao 
mapeamento do tipo relacionamento binário M:N 
(veja slide a frente), exceto que a chave primária é 
diferente.
– A chave primária da nova relação será uma das duas 
chaves estrangeiras, e a outra chave estrangeira será 
uma chave alternativa.
– Apropriada se a participação for parcial em ambos os 
lados do relacionamento e o número de entidades 
participantes for pequeno.
Prof. Denilson A. Pereira 12
Mapeamento ER para Relacional
Exemplo:
para o tipo de relacionamento gerencia,
Opção 3: crie uma relação para o relacionamento
 Funcionario(cpf, primeiroNome, sobrenome, salario)
 Departamento (número, nome)
 Gerencia (cpfGerente, número, dataInício) // número é uma chave alternativa
 Gerencia[cpfGerente] →p Funcionario[cpf]
 Gerencia[número] →p Departamento[número] 
 ==> não é a melhor opção para este exemplo.
Departamento
nome
número
localização
Funcionário
cpf salárionome
1º nome sobrenome
11
gerencia
data início
Prof. Denilson A. Pereira 13
Mapeamento ER para Relacional
• Tipo Relacionamento Binário 1:N
– Opção 1: Técnica de chave estrangeira do lado N
– Para cada tipo de relacionamento binário R 1:N regular 
(não fraco) no esquema ER, identifique a relação S 
que representa o tipo de entidade participante do lado 
N do tipo de relacionamento. Inclua como chave 
estrangeira em S a chave primária da relação T que 
representa o outro tipo de entidade participante de R. 
Isso ocorre porque cada instância do lado N está 
relacionada a, no máximo, uma instância do lado 1 do 
tipo de relacionamento.
– Inclua todos os atributos simples (ou componentes 
simples de atributos compostos) do tipo de 
relacionamento R como atributos de S.
Prof. Denilson A. Pereira 14
Mapeamento ER para Relacional
Exemplo:
para o tipo de relacionamento pertence,
Opção 1: adicione o atributo númeroDepto à relação 
Funcionário
 Departamento (número, nome)
 Funcionario (cpf, primeiroNome, sobrenome, salario,
 númeroDepto)
 Funcionário[númeroDepto] →b Departamento[número]
Departamento
nome
número
localização
salário
Funcionário
cpf nome
1º nome sobrenome
1N
pertence
Prof. Denilson A. Pereira 15
Mapeamento ER para Relacional
• Tipo Relacionamento Binário 1:N
– Opção 2: Técnica de relação de referência cruzada ou 
relacionamento
– Cria-se uma nova relação, de forma semelhante ao 
mapeamento do tipo relacionamento binário M:N 
(veja slide a frente), exceto que a chave primária é 
diferente.
– A chave primária da nova relação será a chave primária 
da relação do lado N.
– Opção apropriada para participação parcial do lado N, 
para evitar valores NULL excessivos na chave 
estrangeira se usada a Opção 1.
Prof. Denilson A. Pereira 16
Mapeamento ER para Relacional
Exemplo:
para o tipo de relacionamento pertence,
Opção 2: cria-se uam relação para o relacionamento
 Departamento (número, nome)
 Funcionario (cpf, primeiroNome, sobrenome, salario)
 Pertence (cpf, número)
 Pertence[cpf] →p Funcionario[cpf]
Pertence[número] →b Departamento[número]
Departamento
nome
número
localização
salário
Funcionário
cpf nome
1º nome sobrenome
1N
pertence
Prof. Denilson A. Pereira 17
Mapeamento ER para Relacional
• Tipo Relacionamento Binário M:N
– Para cada tipo de relacionamento binário R M:N no esquema 
ER, crie uma nova relação S para representar R. Inclua como 
chaves estrangeiras em S as chaves primárias das relações 
que representam os tipos de entidades participantes.
– Também inclua todos os atributos simples (ou componentes 
simples de atributos compostos) do tipo de relacionamento 
R como atributos de S.
– A chave primária de S é a combinação de suas chaves 
estrangeiras.
Prof. Denilson A. Pereira 18
Mapeamento ER para Relacional
Exemplo:
para o tipo de relacionamento trabalha,
gere a relação:
Trabalha (cpf, númeroProjeto, horas)
 Trabalha[cpf] →p Funcionário[cpf]
 Trabalha[númeroProjeto] →p Projeto[número]
Funcionário
cpf salárionome
1º 
nome
sobrenome
Projeto
nome
número
localização
NM
trabalha
horas
Prof. Denilson A. Pereira 19
Mapeamento ER para Relacional
• Tipo Relacionamento n-ário (n > 2)
– Para cada tipo de relacionamento n-ário R, onde n > 2, no 
esquema ER, crie uma nova relação S para representar R. 
Inclua como atributos da chave estrangeira em S as chaves 
primárias das relações que representam os tipos de entidades 
participantes.
– Também inclua todos os atributos simples (ou componentes 
simples de atributos compostos) do tipo de relacionamento 
R como atributos de S.
– A chave primária de S é normalmente a combinação de suas 
chaves estrangeiras. Entretanto, se as restrições de 
cardinalidade de qualquer um dos tipos de entidades E 
participante de R é 1, então a chave primária de S não deve 
incluir a chave estrangeira que referencia a relação E’ 
correspondente a E.
Prof. Denilson A. Pereira 20
Mapeamento ER para Relacional
Exemplo:
para o tipo de relacionamento fornecimento,
gere a relação:
 Fornecimento (codForn, codProj, codPeç, qtde)
 Fornecimento[codForn] →p Fornecedor[código]
 Fornecimento[codProj] →p Projeto[código]
 Fornecimento[codPeç] →p Peça[código]
fornecimento
qtde
Peça
código descrição
Fornecedor
código nome
Projeto
código nome
M N
P
Prof. Denilson A. Pereira 21
Mapeamento ER para Relacional
Prof. Denilson A. Pereira 22
Mapeamento EER para Relacional
• Especialização / Generalização
– Opção 1: crie uma relação L para a superclasse C no 
esquema ER com os atributos de C. A chave primária de L é 
uma chave de C. Crie também uma relação Li para cada 
subclasse Si. Cada Li inclui os atributos específicos de Si 
mais a chave primária de L, a qual torna-se também a chave 
primária de Li. Essa opção funciona para qualquer restrição 
na especialização: disjunta, sobreposta, total e parcial.
Prof. Denilson A. Pereira 23
Mapeamento EER para Relacional
• Especialização / Generalização
– Opção 2: crie uma relação Li para cada subclasse Si com os 
atributos da subclasse mais os atributos da superclasse. A 
chave primária de Li é uma chave da superclasse. Essa opção 
deve ser usada para restrições total e disjunta.
Prof. Denilson A. Pereira 24
Mapeamento EER para Relacional
Especialização / Generalização
– Opção 3: crie uma única relação L com todos os atributos 
da superclasse C e das subclasses Si. A chave primária de L 
é uma chave de C. Essa opção é para uma especialização 
cujas subclasses são disjuntas. Pode haver um atributo para 
indicar a qual subclasse cada tupla pertence. Essa opção tem 
um potencial para geração de um grande número de valores 
nulos.
Prof. Denilson A. Pereira 25
Mapeamento EER para Relacional
Especialização / Generalização
– Opção 4: crie uma única relação L com todos os atributos 
da superclasse C e das subclasses Si, mais um atributo lógico 
(flag) ti para cada subclasse para indicar se a tupla pertence à 
subclasse Si. A chave primária de L é uma chave de C. Essa 
opção é mais indicada para especialização cujas subclasses 
são sobrepostas (mas também funciona para especialização 
disjunta).
Prof. Denilson A. Pereira 26
Mapeamento EER para Relacional
Exemplos:
para a especialização abaixo.
d
Funcionário
cpf
nome
Secretário
vdigitação
Técnico
grau
Engenheiro
tipoeng∪∪
∪
Prof. Denilson A. Pereira 27
Mapeamento EER para Relacional
usando a Opção 1, gere as relações:
Funcionário (cpf, nome, tipodeTrabalho)
Secretário (cpf, vdigitação)
Secretário[cpf] →p Funcionário[cpf]
Técnico (cpf, grau)
Técnico[cpf] →p Funcionário[cpf]
Engenheiro (cpf, tipoeng)
Engenheiro[cpf] →p Funcionário[cpf]
usando a Opção 3, gere a relação:
Funcionário (cpf, nome, tipodeTrabalho, vdigitação, grau,
 tipoeng)
Prof. Denilson A. Pereira 28
Mapeamento EER para Relacional
para a generalização abaixo:
usando a Opção 2, gere as relações:
 Carro (codVeiculo, preco, placa, velocidade, numPassag)
 Caminhão (codVeiculo, preco, placa, numEixos, 
 capacidade)
Prof. Denilson A. Pereira 29
Mapeamento EER para Relacional
para a especialização abaixo:
usando a opção 4, gere a relação:
Peça (numPeca, descrição, Fflag, numDesenho, dataFab,
 numLote, Cflag, nomeFornecedor, preco)
Prof. Denilson A. Pereira 30
Mapeamento EER para Relacional
• Tipo União ou Categoria
– Crie uma relação para representar a categoria e inclua todos os 
seus atributos. Para uma categoria cujas superclasses têm 
chaves diferentes, adicione um novo atributo chave, chamado 
“chave substituta”, para ser a chave primária da relação. 
Adicione este atributo como chave estrangeira de todas as 
relações correspondentes às superclasses da categoria, para 
especificar a correspondência de valores entre a chave 
substituta e as chaves de cada superclasse.
– Para uma categoria cujas superclasses têm as mesmas chaves, a 
chave substituta não é necessária. Adicione à relação 
representante da categoria o atributo chave de uma superclasse 
para ser a sua chave primária. Cada chave primária das 
relações correspondentes às superclasses são também chaves 
estrangeira referenciando a relação da categoria.
Prof. Denilson A. Pereira 31
Mapeamento EER para Relacional
Exemplo:
para a categoria abaixo:
gere as relações:
 Empresa (cnpj, razãosocial, numCorrentista)
 Empresa[numCorrentista] →n Correntista[numCorrentista]
 Pessoa (cpf, nome, numCorrentista)
 Pessoa[numCorrentista] →n Correntista[numCorrentista]
 Correntista (numCorrentista)
Correntista
U
∪
Empresa
cnpj razãoSocial
Pessoa
cpf nome
Prof. Denilson A. Pereira 32
Referência Bibliográfica Básica
ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de 
Bancos de Dados. Pearson Education, 6a edição, 2011. ISBN-
978-85-7936-085-5
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Mais conteúdos dessa disciplina

Mais conteúdos dessa disciplina