You are on page 1of 65

Curso de Ciência da Computação

Disciplina:
Banco de Dados

Mapeamento do MER
para o Modelo Relacional de Dados

Prof. Dr. Robson Ferreira


Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

Transformações entre Modelos

Modelo ER
(conceitual)

Projeto lógico
de Bando de Dados
Relacional

Modelo relacional
(lógico)

Transformação
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

Transformações entre Modelos


Modelo ER
(conceitual)

c
Engenharia Ciclo de Projeto lógico
Reversa de reengenharia de Banco de Dados
BD relacional de BD relacional

Modelo relacional
(lógico)

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

Projeto Lógico
Modelo ER
(conceitual)

Conhecimento Transformação
sobre a aplicação MER para
Relacional

Refinamento
Modelo relacional
do Modelo Normalização
(lógico)
Relacional

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

Transformação do MER para Relacional


Um modelo conceitual construído utilizando o Modelo
Entidade-Relacionamento pode ser mapeado (convertido
para um Modelo Lógico Relacional
Equivalência mais direta
entre os dois modelos

Modelo Conceitual Modelo Relacional


Cada Entidade Uma Tabela
Cada Atributo Uma Coluna
Cada Ocorrência Uma Linha
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

Características dos Modelos


Característica Conceitual Lógico Físico
Nome de Entidade ✓ ✓
Relacionamento de Entidade ✓ ✓
Atributos ✓ ✓
Chave Primária ✓ ✓
Chave Estrangeira ✓ ✓
Nome das Tabelas ✓
Nome das Colunas ✓
Tipos das Colunas ✓
Domínio dos Atributos ✓
Regras de Integridade* ✓
* Opções de Integridade Referencial

https://pt.stackoverflow.com/questions/294699/qual-a-diferen%C3%A7a-entre-modelagem-conceitual-l%C3%B3gica-e-f%C3%ADsica
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

Transformação do MER para Relacional


Minimizar junções (JOINs):
Performance do
Banco de Dados

do Projeto de Banco de Dados


▪ Operação para buscar dados de diversas
linhas associadas pela igualdade de
Dois objetivos básicos campos.
▪ Ideal é ter os dados necessários a uma
consulta em uma única linha.

Diminuir o número de chaves:


desenvolvimento e
manutenção das

▪ Implementadas através de Índices.


Aplicações
Simplificar

Evitar campos opcionais:


▪ NULL do SQL.
▪ Tratamento pela aplicação.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

Transformação do MER para Relacional


Qual a melhor implementação para alcançar os 2 objetivos?
performance do BD e simplificação das aplicações
Cliente
1
(CodCliente,Nome,NomeContato,Endereço,Telefone)

Cliente
2
(CodCliente,Nome,NomeContato)

ClienteEnder
(CodCliente,Endereço,Telefone)
CodCliente referencia Cliente
Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

Transformação do MER para Relacional

1. Implementação inicial de entidades e


respectivos atributos.

2. Implementação de relacionamentos e
respectivos atributos.

3. Implementação de
generalizações/especializações.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

Transformação do MER para Relacional

1. Implementação inicial de entidades e


respectivos atributos.

2. Implementação de relacionamentos e
respectivos atributos.

3. Implementação de
generalizações/especializações.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

1. Implementação inicial de entidades e respectivos atributos


Mapeamento de Entidades
a) Para cada entidade deve ser criada uma tabela.
b) Para cada atributo simples da entidade define-se uma coluna desta
tabela.
c) Atributos identificadores da entidade correspondem a chave primária
da tabela.
data de
admissão código
PESSOA nome
data de endereço
nascimento

Pessoa
(CodigoPess,Nome,Endereço,DataNasc,DataAdm)

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

1. Implementação inicial de entidades e respectivos atributos


Entidade fraca ou relacionamento identificador
código nome Criar uma tabela para cada entidade fraca.
Nessa tabela incluir como chave estrangeira a chave
EMPREGADO primária da tabela que representa a entidade
possuidora/identificadora.

Mapeamento
(1,1)

Relacional
As entidades fracas têm chave primária formada por
duas partes:
▪ A chave primária da tabela (entidade) possuidora.
(0,n)
▪ A chave parcial da tabela (entidade) fraca.
DEPENDENTE
Empregado (CodigoEmp,Nome)
número de nome Dependente (CodigoEmp,NoSeq,Nome)
sequência CodigoEmp referencia Empregado

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

1. Implementação inicial de entidades e respectivos atributos


Entidade fraca ou relacionamento identificador
código GRUPO nome
(1,1)

(0,n)
número da
empresa EMPRESA nome
(1,1)

(0,n)
número do EMPREGADO DEPENDENTE
empregado (1,1) (0,n)
nome
número de nome
sequência
Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

Mapeamento Relacional

Grupo (CodGrupo,Nome)

Empresa (CodGrupo,NoEmpresa,Nome)
CodGrupo referencia Grupo

Empregado (CodGrupo,NoEmpresa,NoEmpreg,Nome)
CodGrupo referencia Grupo
NoEmpresa referencia Empresa

Dependente (CodGrupo,NoEmpresa,NoEmpreg,NoSeq,Nome)
CodGrupo referencia Grupo
NoEmpresa referencia Empresa
NoEmpreg referencia Empregado

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

1. Implementação inicial de entidades e respectivos atributos


Nome de atributos e nomes de colunas (Nomenclaturada)
Não transcrever os nomes de atributos para nomes de colunas.
Nomes de atributos compostos de diversas palavras devem ser
abreviados.
Nomes de colunas não necessitam conter o nome da tabela:
▪ Preferível usar o nome de coluna Nome a usar os nomes de coluna
NomePess ou NomePessoa.
▪ SQL já exige muitas vezes a identificação da tabela:
Pessoa.Nome
Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

1. Implementação inicial de entidades e respectivos atributos


Nome de atributos e nomes de colunas (Chave Primária)
Exceção é para coluna de chave primária.
Pode aparecer em outras tabelas na forma de chave
estrangeira.
Recomendável compor os nomes das colunas que compõem
a chave primária com:
▪ Sufixados ou prefixados com o nome ou sigla da tabela na qual
aparecem como chave primária.
▪ Ex.: CodigoPessoa ou CodPess
Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

1. Implementação inicial de entidades e respectivos atributos


Nome de atributos e nomes de colunas (Composto)
No caso de atributo composto incluir
somente os atributos simples que o
compõe (Endereço)
data de
admissão código
PESSOA nome
data de endereço
nascimento

Pessoa (CodigoPess,Nome,DataNasc,DataAdm,
TipoLogradouro,Logradouro,Numero,
Bairro,Cidade,Estado,CEP)
Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

1. Implementação inicial de entidades e respectivos atributos


Nome de atributos e nomes de colunas (Multivalorado)
Na abordagem relacional não existem colunas
multivaloradas

nome 1ª Alternativa 2ª Alternativa


código nome
código
CLIENTE CLIENTE TELEFONE
(1,1) (0,n)
número de número
telefone (0,n)
Cliente (CodCli,Nome)
Cliente (CodCli,Nome, Telefone (CodCli,NumTel)
NumTelres,NumTelcel) CodCli referencia Cliente

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

1. Implementação inicial de entidades e respectivos atributos


Nome de atributos e nomes de colunas (Multivalorado)
Critérios para avaliação da 1ª Alternativa (slide anterior):
Raros clientes possuem mais que dois telefones.
Quando isso ocorrer:
▪ É suficiente armazena apenas dois números.
Há consultas ao banco de dados usando o número de telefone como critério
de seleção?
Números de telefone são apenas exibidos ou impressos juntos às demais
informações de cliente.
Implementação “desnormalizada”.

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

Transformação do MER para Relacional

1. Implementação inicial de entidades e


respectivos atributos.

2. Implementação de relacionamentos e
respectivos atributos.

3. Implementação de
generalizações/especializações.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Há três alternativas básicas para tradução dos
relacionamentos para o modelo relacional

a. Através da criação de uma tabela própria para


representar o relacionamento.
b. Pela adição de colunas a uma das tabelas.

c. Pela fusão de tabelas.

A melhor alternativa depende da cardinalidade


(máxima e mínima) do relacionamento
Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


a. Tabela própria

(0,n) (0,n)
ENGENHEIRO ATUAÇÃO PROJETO

Código Nome Função Código Título

Engenheiro (CodEng,Nome)
Entidade

Projeto (CodProj,Título)
Atuação (CodEng,CodProj,Função)
Relaciona
mento

CodEng referencia Engenheiro


CodProj referencia Projeto

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


a. Tabela própria
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


b. Adição de colunas a uma das tabelas

(1,1) (0,n)
DEPARTAMENTO LOTAÇÃO EMPREGADO

Código Nome Data lotação Código Nome

Departamento (CodDept,Nome)
Empregado (CodEmp,Nome,CodDept,DataLota)
CodDept referencia Departamento

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


c. Fusão de tabelas

(1,1) (1,1) COMISSÃO


CONFERÊNCIA ORGANIZAÇÃO
ORGANIZADORA

Código Nome Data Instalação Endereço

Conferência
(CodConf,Nome,DataInstComOrg,EnderComOrg)
Relacionamento Tabela Comissão
Tabela Conferência Organização Organizadora

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos 1:1

Regra de implementação
Tipo de
relacionamento Tabela Adição de Fusão de
própria coluna tabelas
(0,1) (0,1)
± ✓ 
(0,1) (1,1)
± ✓
(1,1) (1,1) ± ±

✓- alternativa preferida
± - pode ser usada – 1ª opção
±
- pode ser usada – 2ª opção
 - não cabe Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos 1:1

Regra de implementação
Tipo de
relacionamento Tabela Adição de Fusão de
própria coluna tabelas
(0,1) (0,1) Ambas as entidades têm
± ✓  participação opcional

(0,1) (1,1)
± ✓
(1,1) (1,1) ± ±

✓- alternativa preferida
± - pode ser usada – 1ª opção
±
- pode ser usada – 2ª opção
 - não cabe Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (0,1) –<>– (0,1)
Adição de coluna – alternativa preferida

(0,1) (0,1)
HOMEM CASAMENTO MULHER

Identidade Nome Data Regime Identidade Nome

Mapeamento das Entidades

Mulher (IdentM,Nome)
Homem (IdentH,Nome)

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (0,1) –<>– (0,1)
Adição de coluna – alternativa preferida

(0,1) (0,1)
HOMEM CASAMENTO MULHER

Identidade Nome Data Regime Identidade Nome

Mapeamento do Relacionamento

Mulher (IdentM,Nome,IdentH,Data,Regime)
IdentH referencia Homem
Homem (IdentH,Nome)

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (0,1) –<>– (0,1)
Tabela própria – pode ser usada

(0,1) (0,1)
HOMEM CASAMENTO MULHER

Identidade Nome Data Regime Identidade Nome

Mapeamento do Relacionamento

Mulher (IdentM,Nome)
Homem (IdentH,Nome)
Casamento (IdentM,IdentH,Data,Regime)
IdentM referencia Mulher
Fonte: HEUSER, Carlos Alberto. Projeto de banco de
IdentH referencia Homem dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (0,1) –<>– (0,1)
Fusão de tabela – não cabe

(0,1) (0,1)
HOMEM CASAMENTO MULHER

Identidade Nome Data Regime Identidade Nome

Mapeamento do Relacionamento

Casamento(IdentH,NomeH,Data,Regime,IdentM,NomeM)
Ambas as entidades têm participação opcional. Assim, nenhuma destas colunas poderia ser usada
como chave primária, já que chaves primárias sempre são colunas obrigatórias

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (0,1) –<>– (0,1)
Resumo

Solução por adição de colunas melhor:


▪ Menor número de junções.
▪ Menor número de chaves.

Solução por tabela própria aceitável.

Solução por fusão de tabelas é inviável:


▪ Chave primária artificial.

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos 1:1

Regra de implementação
Tipo de
relacionamento Tabela Adição de Fusão de
própria coluna tabelas
(0,1) (0,1)
± ✓ 
Uma entidade tem
(0,1) (1,1)
± ✓ participação opcional e
a outra obrigatória
(1,1) (1,1) ± ±

✓- alternativa preferida
± - pode ser usada – 1ª opção
±
- pode ser usada – 2ª opção
 - não cabe Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (1,1) –<>– (0,1)
Fusão de tabela – alternativa preferida

(1,1) (0,1) CARTÃO


CORRENTISTA MAGNÉTICO

Código Nome Código Data Exp.

Mapeamento da Entidade

Correntista
(CodCorrent,Nome,CodCartão,DataExp)

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (1,1) –<>– (0,1)
Adição de colunas – pode ser usada – 1ª opção

(1,1) (0,1) CARTÃO


CORRENTISTA MAGNÉTICO

Código Nome Código Data Exp.

Mapeamento das Entidades

Correntista (CodCorrent,Nome)
Cartão (CodCartão,DataExp)
Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (1,1) –<>– (0,1)
Adição de colunas – pode ser usada – 1ª opção

(1,1) (0,1) CARTÃO


CORRENTISTA MAGNÉTICO

Código Nome Código Data Exp.

Mapeamento do Relacionamento

Correntista (CodCorrent,Nome)
Cartão (CodCartão,DataExp,Codcorrent)
CodCorrent referencia Correntista
Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (1,1) –<>– (0,1)
Tabela própria – pode ser usada – 2ª opção

(1,1) (0,1) CARTÃO


CORRENTISTA MAGNÉTICO

Código Nome Código Data Exp.

Mapeamento do Relacionamento

Correntista (CodCorrent,Nome)
Cartão (CodCartão,DataExp)
CartãoCorrentista (CodCartão,CodCorrent)
CodCorrent referencia Correntista
CodCartão referencia Cartão Fonte: HEUSER, Carlos Alberto. Projeto de banco de
dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (1,1) –<>– (0,1)
Resumo
Solução por fusão de tabela melhor:
▪ Menor número de junções.
▪ Menor número de chaves.

Solução por adição de colunas aceitável:


▪ Melhor em termos de campos opcionais.

Solução por tabelas própria é pior que adição de colunas:


▪ Maior número de junções.
▪ Maior número de índices.
▪ Nenhuma tem problema de campos opcionais.

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos 1:1

Regra de implementação
Tipo de
relacionamento Tabela Adição de Fusão de
própria coluna tabelas
(0,1) (0,1)
± ✓ 
(0,1) (1,1)
± ✓
Ambas as entidades
(1,1) (1,1) ± ±
✓ têm participação
obrigatória

✓- alternativa preferida
± - pode ser usada – 1ª opção
±
- pode ser usada – 2ª opção
 - não cabe Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (1,1) –<>– (1,1)
Fusão de tabelas – alternativa preferida

(1,1) (1,1)
COMISSÃO
CONFERÊNCIA ORGANIZAÇÃO
ORGANIZADORA

Data Instalação
Código Nome Endereço

Mapeamento do Relacionamento

Conferência
(CodConf,Nome,DataInstComOrg,EnderComOrg)

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (1,1) –<>– (1,1)
Resumo
Demais alternativas (adição de colunas, tabela própria),
Nenhuma das demais alternativas atende plenamente:
▪ Entidades que participam do relacionamento seriam representadas através de
duas tabelas distintas.
▪ Estas tabelas teriam a mesma chave primária e relação um-para-um entre suas
linhas.
▪ Maior número de junções.
▪ Maior número de chaves primárias.

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos 1:N
Regra de implementação
Tipo de
relacionamento Tabela Adição de Fusão de
própria coluna tabelas
(0,1) (0,n)
± ✓ 
(0,1) (1,n)
± ✓ 
(1,1) (0,n)
✓ 
(1,1) (1,n)

±

✓- alternativa preferida
± - pode ser usada – 1ª opção
±
- pode ser usada – 2ª opção
 - não cabe Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos 1:N
Regra de implementação
Tipo de
relacionamento Tabela Adição de Fusão de
própria coluna tabelas
(0,1) (0,n) A entidade que
± ✓  tem cardinalidade
(0,1) (1,n) máxima 1 é
± ✓  opcional
(1,1) (0,n)
✓ 
(1,1) (1,n)

±

✓- alternativa preferida
± - pode ser usada – 1ª opção
±
- pode ser usada – 2ª opção
 - não cabe Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (0,1) –<>– (_,n)
Adição de coluna – alternativa preferida
nº de parcelas

(0,1) (_,n)
FINANCEIRA FINACIAM VENDA

Código Nome taxa de juros Id Data

Mapeamento do Relacionamento

Financeira (CodFin,Nome)
Venda (IdVend,Data,CodFin,NoParc,TxJuros)
CodFin referencia Financeira
Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (0,1) –<>– (_,n)
Tabela própria – pode ser usada – 1ª opção
nº de parcelas

(0,1) (_,n)
FINANCEIRA FINACIAM VENDA

Código Nome taxa de juros Id Data

Mapeamento do Relacionamento

Financeira (CodFin,Nome)
Venda (IdVend,Data)
Fianciam (IdVend,CodFin,NoParc,TxJuros)
IdVend referencia Venda
Fonte: HEUSER, Carlos Alberto. Projeto de banco de
CodFin referencia Financeira dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (0,1) –<>– (_,n)
Resumo

Adição de colunas é a implementação preferida.


▪ Menor número de junções – operações que envolvem acesso a dados
de uma venda e do respectivo financiamento não exige junção .

Implementação por tabela própria também é aceitável:


▪ É melhor em relação a campos opcionais.
▪ Perde em relação a junções e número de chaves.

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos 1:N
Regra de implementação
Tipo de
relacionamento Tabela Adição de Fusão de
própria coluna tabelas
(0,1) (0,n)
± ✓ 
(0,1) (1,n)
± ✓ 
(1,1) (0,n) A entidade que
✓  tem cardinalidade
(1,1) (1,n) máxima 1 é

±
✓ obrigatória

✓- alternativa preferida
± - pode ser usada – 1ª opção
±
- pode ser usada – 2ª opção
 - não cabe Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (1,1) –<>– (_,n)
Adição de coluna – alternativa preferida

(1,1) (_,n)
DEPARTAMENTO LOTAÇÃO EMPREGADO

Data lotação
Código Nome Código Nome

Mapeamento do Relacionamento

Departamento (CodDept,Nome)
Empregado (CodEmp,Nome,CodDept,DataLota)
CodDept referencia Departamento Fonte: HEUSER, Carlos Alberto. Projeto de banco de
dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (1,1) –<>– (_,n)
Tabela própria – pode ser usada – 2ª opção

(1,1) (_,n)
DEPARTAMENTO LOTAÇÃO EMPREGADO

Data lotação
Código Nome Código Nome

Mapeamento do Relacionamento

Departamento (CodDept,Nome)
Empregado (CodEmp,Nome,
Lotacao (CodEmp,CodDept,DataLota)
CodDept referencia Departamento
Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados
CodEmp referencia Empregado – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (1,1) –<>– (_,n)
Adição de coluna – alternativa preferida

(1,1) (1,n)
EDIFÍCIO APARTAMENTO

Código Endereço Número Área

Mapeamento do Relacionamento

Edifício (CodEd,Endereço)
Apartamento (CodEd,NumAp, area)
CodEd referencia Edifício
Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (1,1) –<>– (_,n)
Resumo

Adição de colunas é melhor que tabela própria:


▪ Menor número de chaves.
▪ Menor número de junções.
▪ Não há o problema de campos opcionais.

Fusão de tabelas não se aplica:


▪ Redundância de dados de departamento.

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos N:N
Regra de implementação
Tipo de
relacionamento Tabela Adição de Fusão de
própria coluna tabelas
(0,n) (0,n)
✓  
(0,n) (1,n)
✓  
(1,n) (0,n)
✓  
(1,n) (1,n)
✓  

✓- alternativa preferida
± - pode ser usada – 1ª opção
±
- pode ser usada – 2ª opção
 - não cabe Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

2. Implementação de relacionamentos e respectivos atributos


Relacionamentos (_,n) –<>– (_,n)
Tabela própria – SEMPRE
(0,n) (0,n)
ENGENHEIRO ATUAÇÃO PROJETO

Código Nome Função Código Título

Engenheiro (CodEng,Nome)
Entidade

Projeto (CodProj,Título)
Atuação (CodEng,CodProj,Função)
Relaciona
mento

CodEng referencia Engenheiro


CodProj referencia Projeto
Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

Transformação do MER para Relacional

1. Implementação inicial de entidades e


respectivos atributos.

2. Implementação de relacionamentos e
respectivos atributos.

3. Implementação de
generalizações/especializações.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

3. Implementação de generalizações/especializações
Há três alternativas básicas para tradução dos
generalizações/especializações para o modelo relacional

a. Uso de uma única tabela para toda hierarquia.

b. Uso de uma tabela para cada entidade especializada.

c. Subdivisão da entidade genérica (exótica).

A melhor alternativa depende do caso de uso a ser


implementado – todas têm vantagens e desvantagens

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

3. Implementação de generalizações/especializações
tipo de
nome empregado

CPF
(0,n) (1,1)
EMPREGADO LOTAÇÃO DEPARTAMENTO

código
px código nome

CREA
SECRETÁRIA MOTORISTA
ENGENHEIRO
(1,n) carteira de (0,n)
habilitação (0,n)
DOMÍNIO
PARTICIPAÇÃO
(0,n) (1,1)
(0,n)
RAMO DA
IDIOMA PROJETO
ENGENHARIA

código nome código nome código nome


Fonte: HEUSER, Carlos Alberto. Projeto de banco de
dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

3. Implementação de generalizações/especializações
a. Uso de uma única tabela para toda hierarquia
Todas tabelas referentes às especializações são fundidas em uma única tabela.
Tabela contém:
▪ Chave primária correspondente ao identificador da entidade mais genérica.
▪ Caso não exista, uma coluna Tipo.
▪ Uma coluna para cada atributo da entidade genérica.
▪ Colunas referentes aos relacionamentos dos quais participa a entidade genérica e que
sejam implementados através da alternativa de adicionar colunas à tabela da entidade
genérica.
▪ Uma coluna para cada atributo de cada entidade especializada (opcional, já que só terão
valores quando a linha for referente à entidade especializada em questão).
▪ Colunas referentes aos relacionamentos dos quais participa cada entidade especializada e
que sejam implementados através da alternativa de adicionar colunas à tabela da entidade
(campo opcional). Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

3. Implementação de generalizações/especializações
a. Uso de uma única tabela para toda hierarquia
Emp (CodigoEmp,Tipo,Nome,CPF,CodigoDept,
CartHabil,CREA,CodigoRamo)
CodigoDept referencia Depto

Esquema Relacional
CodigoRamo referencia Ramo
Domínio (CodigoEmp,CodigoIdioma)
CódigoEmp referencia Emp
CódigoProc eferencia Idioma
Participação (CodigoEmp,CodigoProj)
CodigoEmp referencia Emp
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
Idioma (CodigoIdioma,Nome)
Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

3. Implementação de generalizações/especializações
b. Uso de uma tabela para cada entidade especializada

Criar uma tabela para cada entidade que compõe a


hierarquia.

Incluir a chave primária da tabela correspondente à


entidade genérica, em cada tabela correspondente a
uma entidade especializada.

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

3. Implementação de generalizações/especializações
b. Uso de uma tabela para cada entidade especializada
Empregado (CodigoEmp,Tipo,Nome,CPF,CodigoDept)
CodigoDept referencia Depto
Motorista (CodigoEmp,CartHabil)
CodigoEmp referencia Emp

Esquema Relacional
Engenheiro (CodigoEmp,CREA,CodigoRamo)
CódigoEmp referencia Emp
CódigoRamo referencia Ramo
Domínio (CodigoEmp,CodigoIdioma)
CódigoEmp referencia Emp
CódigoProc referencia Idioma
Participação (CodigoEmp,CodigoProj)
CodigoEmp referencia Engenheiro
CodigoProj referencia Projeto
Depto (CodigoDept, Nome)
Projeto (CodigoProj,Nome)
Ramo (CodigoRamo,Nome)
Idioma (CodigoIdioma,Nome)
Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Uso de uma tabela
para cada entidade
especializada

Modelo Lógico
Relacional
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

3. Implementação de generalizações/especializações
c. Subdivisão da entidade genérica

Criar uma tabela para cada entidade especializada que não


possua outra especialização (entidade folha da árvore).

Tabela contém:
▪ Dados da entidade especializada
▪ Dados da entidade genérica.

Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

3. Implementação de generalizações/especializações
c. Subdivisão da entidade genérica
EmpOutros (CodigoEmp,Tipo,Nome,CPF,CodigoDept)
CodigoDept referencia Depto
Motorista
(CodigoEmp,Nome,CPF,CodigoDept,CartHabil)

Esquema Relacional
CodigoDept referencia Depto
Engenheiro
(CodigoEmp,Nome,CPF,CodigoDept,CREA,CodigoRamo)
CodigoDept referencia Depto
CodigoRamo referencia Ramo
Depto (CodigoDept, Nome)
Ramo (CodigoRamo,Nome)
Idioma (CodigoIdioma,Nome)
Domínio (CodigoEmp,CodigoIdioma)
Codigo Proc referencia ProcessTexto
Projeto (CodigoProj,Nome)
Participação (CodigoEmp,CodigoProj)
CodigoEmp referencia Engenheiro
CodigoProj referencia Projeto
Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Mapeamento do MER para o Modelo Relacional de Dados
Modelo Lógico de Dados

3. Implementação de generalizações/especializações
Dados referentes à entidade genérica + dados referentes às
Uso de uma única tabela para especializações (em uma única linha):
toda hierarquia ▪ Minimiza junções.
▪ Menor número de chaves.

Colunas opcionais:
Uso de uma tabela para cada ▪ As colunas opcionais que aparecem são apenas aquelas
entidade especializada referentes a atributos que podem ser vazios do ponto de
vista da aplicação.
Desvantagens:
Unicidade do identificador de empregado:
▪ Não é garantida pelo SGBD;
Subdivisão da entidade ▪ Deve ser garantida pela aplicação.
genérica Não há como especificar ao SGBD restrições de integridade
referenciais, que façam referência ao conjunto de empregados
como um todo.
Fonte: HEUSER, Carlos Alberto. Projeto de banco de dados – 6. ed. – Porto Alegre: Bookman, 2009 – Cap. 5.
Disciplina
Banco de Dados

Mapeamento do MER
para o Modelo Relacional de Dados

Obrigado

Prof. Dr. Robson Ferreira

You might also like