Você está na página 1de 90

Mapeamento

Modelo Conceitual → Lógico

Picture by http://www.flickr.com/photos/morganmorgan/ 2010


Banco de Dados: Teoria e Prática
André Santanchè e Patrícia Cavoto
Instituto de Computação – UNICAMP
Agosto 2015
Modelo/Esquema Conceitual
▪ Descreve estrutura do
Usuários
Finais

Banco de Dados Visão Externa 1 Visão Externa 2 Visão Externa n

requisitos requisitos requisitos

▫ entidades, tipos de Modelo Conceitual

dados, relações, esquema conceitual

restrições etc. Independente de SGBD


Modelo Lógico
Dependente de SGBD

▪ Independente de esquema lógico

implementação em Modelo Físico

SGBD
esquema físico

Banco de Dados

▫ oculta detalhes de
armazenamento físico
Modelo/Esquema Lógico
▪ Dependente de um
Usuários
Finais

SGBD particular Visão Externa 1 Visão Externa 2 Visão Externa n

requisitos requisitos requisitos

▪ Associado a um Modelo Conceitual

“modelo de dados de esquema conceitual

implementação” Independente de SGBD


Dependente de SGBD
Modelo Lógico

(Elmasri, 2005) esquema lógico

Modelo Físico

esquema físico

Banco de Dados
Mapeamento

Visão Externa 1 Visão Externa 2 Visão Externa n

requisitos requisitos requisitos

Modelo Conceitual

esquema conceitual

Independente de SGBD
Modelo Lógico
Dependente de SGBD
esquema lógico

Modelo Físico

esquema físico

Banco de Dados
Mapeamento E-R → Relacional
Conceitual Entidade-
Relacionamento
mapeamento

Lógico Relacional

Banco de Dados
Relacional
Mapeamento Objeto → Relacional
Orientado a
Conceitual
Objetos
mapeamento

Lógico Relacional

Banco de Dados
Relacional
Mapeamento Objeto → Objeto
Orientado a
Conceitual
Objetos
mapeamento

Orientado a
Lógico Objetos

Banco de Dados
Orientado a
Objetos
Mapeamento ER → Objeto
Conceitual Entidade-
Relacionamento
mapeamento

Orientado a
Lógico Objetos

Banco de Dados
Orientado a
Objetos
Mapeamentos

ER → Relacional
Objeto → Relacional
Etapa 1
Entidade Regular
Mapeamento
Entidade Regular
título
ISBN autor

L IVRO ?
ano categoria
Etapa 1
Entidade Regular
▪ Entidade regular traduzida em relação (tabela)
▪ Atributos da entidade traduzidos em atributos
(colunas) da relação
▫ Atributos identificadores convertidos em chave
primária
Etapa 1
Entidade Regular
título
ISBN autor

LIVRO

ano categoria

LIVRO(ISBN, Título, Autor, Ano, Categoria)

LIVRO
ISBN Título Autor Ano Categoria
9580471444 Vidas Secas Graciliano Ramos 1938 Romance
958047950X Agosto Rubem Fonseca 1990 Romance
0554253216 Micrographia Robert Hooke 1665 Ciências
Mapeamento
Classe

Livro
-isbn: String

?
-titulo: String
-autor: String
-ano: int
-categoria: String
Mapeamento
Classe como Entidade?
título
Livro ISBN autor
-isbn: String

?
-titulo: String
-autor: String
-ano: int L IVRO
-categoria: String

ano categoria
Etapa 1
Classe
▪ Classe traduzida em relação (tabela)
▪ Atributos da classe traduzidos em atributos
(colunas) da relação
▪ Chave primária – opções:
▫ definida a partir dos atributos relacionais
▫ atributo novo de identificador único que emula o
dos objetos
Etapa 1
Entidade Regular
título
Livro ISBN autor
-isbn: String
-titulo: String
-autor: String
-ano: int
LIVRO
-categoria: String

ano categoria

LIVRO(ISBN, Título, Autor, Ano, Categoria)

LIVRO
ISBN Título Autor Ano Categoria
9580471444 Vidas Secas Graciliano Ramos 1938 Romance
958047950X Agosto Rubem Fonseca 1990 Romance
0554253216 Micrographia Robert Hooke 1665 Ciências
Caso dos Marcadores
Marcadores de Sites na Web
Modelo ER

título
endereço
acessos

Marcador
Marcadores de Sites na Web
Modelo UML

Marcador
-titulo: String
-endereco: String
-acessos: int
Marcadores e Categorias
Modelo Relacional
Marcador(Titulo, Endereco, Acessos)

Titulo Endereco Acessos


Terra http://www.terra.com.br 295
POVRay http://www.povray.org 2
SBC http://www.sbc.org.br 26
Correios http://www.correios.com.br 45
GMail http://www.gmail.com 296
Google http://www.google.com 1590
Yahoo http://www.yahoo.com 134
Orkut http://www.orkut.com 45
iBahia http://www.ibahia.com 3
Submarino http://www.submarino.com.br 320
Etapa 2
Relacionamento 1:1
Mapeamento
Relacionamento 1:1

nome
código tamanho
código telefone

1 1
PE SSO A O C UPA A RMÁ RIO

?
Mapeamento
Relacionamento 1:1

Pessoa Armário
ocupa
0..1 0..1

?
Mapeamento
Relacionamento 1:1
Pessoa Armário
ocupa
0..1 0..1

nome
código tamanho
código telefone

1 1
PE SSO A O C UPA A RMÁ RIO

?
Mapeamento
Relacionamentos 1:1
Regra de Implementação
Tipo de
Relacionamento Tabela Adição Fusão
Própria Coluna Tabelas
(0,1 ) (0,1 )
  
(0,1 ) (1 ,1 )
  
(1 ,1 ) (1 ,1 )
  
(Heuser, 2004)
Etapa 2
Relacionamento 1:1
▪ Exemplo:
(0,1) (0,1)
PESSOA OCUPA ARMÁRIO

▪ Três alternativas:
a) Chave estrangeira (Adição de coluna)
b) Relacionamento incorporado (Fusão de tabelas)
c) Relação de relacionamento (Tabela própria)
Relacionamento 1:1 (Opção A)
Chave Estrangeira
▪ Opção mais usada
▫ deve ser seguida a não ser em casos excepcionais
▪ Chave primária de uma das relações torna-se
chave estrangeira da outra
nome
código tamanho
código telefone

(0,1) (0,1)
PESSOA OCUPA ARMÁRIO
Relacionamento 1:1 (Opção A)
Quem deve apontar para quem?
Pessoa Armário
ocupa
0..1 0..1

nome
código tamanho
código telefone

1 1
PE SSO A O C UPA A RMÁ RIO

?
UML → navegabilidade
Pessoa Armário
ocupa
0..1 0..1

Pessoa Armário
ocupado
0..1 0..1
nome
código tamanho
código telefone

(0,1) (0,1)
PESSOA OCUPA ARMÁRIO

PESSOA(Código, Nome, Telefone)

ARMÁRIO(Código, Tamanho)

PESSOA ARMÁRIO
Código Nome Telefone Código Tamanho
1525 Asdrúbal 5432-1098 1A simples
1637 Doriana 9876-5432 2A duplo
1701 Quincas 8765-4321 1B simples
2042 Melissa 7654-3210 2B duplo
2111 Horácio 6543-2109
nome
código tamanho
código telefone

(0,1) (0,1)
PESSOA OCUPA ARMÁRIO

PESSOA(Código, Nome, Telefone)

ARMÁRIO(Código, Tamanho, Ocupante)

PESSOA ARMÁRIO
Código Nome Telefone Código Tamanho Ocupante
1525 Asdrúbal 5432-1098 1A simples 1637
1637 Doriana 9876-5432 2A duplo (nulo)
1701 Quincas 8765-4321 1B simples (nulo)
2042 Melissa 7654-3210 2B duplo 2111
2111 Horácio 6543-2109
Pessoa Armário
ocupado
0..1 0..1

PESSOA(Código, Nome, Telefone)

ARMÁRIO(Código, Tamanho)

PESSOA ARMÁRIO
Código Nome Telefone Código Tamanho
1525 Asdrúbal 5432-1098 1A simples
1637 Doriana 9876-5432 2A duplo
1701 Quincas 8765-4321 1B simples
2042 Melissa 7654-3210 2B duplo
2111 Horácio 6543-2109
Pessoa Armário
ocupado
0..1 0..1

PESSOA(Código, Nome, Telefone)

ARMÁRIO(Código, Tamanho, Ocupante)

PESSOA ARMÁRIO
Código Nome Telefone Código Tamanho Ocupante
1525 Asdrúbal 5432-1098 1A simples 1637
1637 Doriana 9876-5432 2A duplo (nulo)
1701 Quincas 8765-4321 1B simples (nulo)
2042 Melissa 7654-3210 2B duplo 2111
2111 Horácio 6543-2109
nome
data hora código tamanho
código telefone

(0,1) (0,1)
PESSOA OCUPA ARMÁRIO

PESSOA(Código, Nome, Telefone)

ARMÁRIO(Código, Tamanho, Ocupante, Data, Hora)

PESSOA ARMÁRIO
Código Nome Telefone Código Tamanho Ocupante Data Hora
1525 Asdrúbal 5432-1098 1A simples 1637 03/08 10:20
1637 Doriana 9876-5432 2A duplo (nulo) (nulo) (nulo)
1701 Quincas 8765-4321 1B simples (nulo) (nulo) (nulo)
2042 Melissa 7654-3210 2B duplo 2111 03/08 11:45
2111 Horácio 6543-2109
Relacionamento 1:1 (Opção B)
Relacionamento Incorporado
▪ Fusão das duas relações em uma única
▪ Recomendação: ambas devem ter participação
total na relação
Relacionamento 1:1 (Opção C)
Relação de Relacionamento
▪ Relacionamento se transforma em terceira
relação
▪ Terceira relação – referência cruzada
▫ mantém chave de ambas as relações envolvidas no
relacionamento
nome
data hora código tamanho
código telefone

(0,1) (0,1)
PESSOA OCUPA ARMÁRIO

PESSOA(Código, Nome, Telefone)


ARMÁRIO(Código, Tamanho)
OCUPA(CodPessoa, CodArmário, Data, Hora)
PESSOA OCUPA ARMÁRIO
Código Nome Telefone CodPessoa CodArmário Data Hora Código Tamanho
1525 Asdrúbal 5432-1098 1637 1A 03/08 10:20 1A simples
1637 Doriana 9876-5432 2111 2B 03/08 11:45 2A duplo
1701 Quincas 8765-4321 1B simples
2042 Melissa 7654-3210 2B duplo
2111 Horácio 6543-2109
Exercício 1
▪ Mapeie o seguinte modelo ER para relacional:

nome identificador data

(0,1) (1,1)
Vírus possui Genoma
Etapa 3
Relacionamento 1:n
Mapeamento
Relacionamento 1:n
1 n
Estante Guarda Livro

(0,n) (1,1)
Estante Guarda Livro

?
Mapeamento
Relacionamentos 1:n
Regra de Implementação
Tipo de
Relacionamento Tabela Adição Fusão
Própria Coluna Tabelas
(0,1 ) (0,n)
  
(0,1 ) (1 ,n)
  
(1 ,1 ) (0,n)
  
(1 ,1 ) (1 ,n)
  
(Heuser, 2004)
Relacionamento 1:N
Chave Estrangeira
▪ Chave primária de uma das relações torna-se
chave estrangeira da outra

1 n
Estante Guarda Livro

(0,n) (1,1)
Estante Guarda Livro
Mapeamento
Chave Estrangeira
título
código estante capacidade ISBN autor

(0,n) (1,1)
ESTANTE GUARDA LIVRO

ano categoria

?
Mapeamento
Chave Estrangeira
título
código estante capacidade ISBN autor

(0,n) (1,1)
ESTANTE GUARDA LIVRO

ano categoria

ESTANTE(código_estante, capacidade)
LIVRO(isbn, título, autor, ano, categoria,
ref_estante)
- ref_estante: chave estrangeira para ESTANTE
Categorias de Marcadores
Modelo ER

título Serviços
super-categoria
Categoria

subcategoria super-categoria Superior


n 1

Superior
subcategoria

Vendas
Categorias de Marcadores
Modelo ER

título título

Categoria Categoria

subcategoria super-categoria subcategoria super-categoria


n 1 (0,1) (0,n)

Superior Superior
Categorias de Marcadores
Modelo UML

Serviços
super-categoria
Categoria
-titulo: String
+super-categoria
Superior
0..1
+subcategoria 0..*
subordinada

subcategoria

Vendas
Marcadores e Categorias
Modelo ER

título
endereço título
acessos

n 1
Marcador Pertence Categoria

subcategoria super-categoria
n 1

Superior
Marcadores e Categorias
Modelo ER

título
endereço título
acessos

(1,1) (0,n)
Marcador Pertence Categoria

subcategoria super-categoria
(0,1) (0,n)

Superior
Marcadores e Categorias
Modelo UML

Marcador
Categoria
-titulo: String pertence
-endereco: String -titulo: String
0..* 1..1 +super-categoria
-acessos: int
0..1
+subcategoria 0..*
subordinada
Marcadores e Categorias
Modelo Relacional
Marcador(Titulo, Endereco, Acessos, Categoria)

Titulo Endereco Acessos Categoria


Terra http://www.terra.com.br 295 Portal
POVRay http://www.povray.org 2 CG
SBC http://www.sbc.org.br 26 Sociedade
Correios http://www.correios.com.br 45 Serviços
GMail http://www.gmail.com 296 Mail
Google http://www.google.com 1590 Busca
Yahoo http://www.yahoo.com 134 Serviços
Orkut http://www.orkut.com 45 Serviços
iBahia http://www.ibahia.com 3 Portal
Submarino http://www.submarino.com.br 320 Serviços
Tabela Taxonomia
Modelo Relacional
Geral

Serviços Relacionamento Acadêmico

Busca Portal Mail Vendas Universidade CG Sociedade

Categoria Superior
Geral
Serviços Geral
Acadêmico Geral
Relacionamento Geral
Busca Serviços
Portal Serviços
Mail Serviços
Vendas Serviços
Universidade Acadêmico
CG Acadêmico
Sociedade Acadêmico
Tabela Taxonomia
Modelo Relacional
Geral
superior

Serviços Relacionamento Acadêmico

Busca Portal Mail Vendas Universidade CG Sociedade

Categoria Superior
Geral
Serviços Geral
Acadêmico Geral
Relacionamento Geral
Busca Serviços
Portal Serviços
Mail Serviços
Vendas Serviços
Universidade Acadêmico
CG Acadêmico
Sociedade Acadêmico
Marcadores e Categorias
Modelo Relacional
Marcador(Titulo, Acessos, Endereco, Categoria)
- Categoria: chave estrangeira para TAXONOMIA

Taxonomia(Categoria, Superior)
- Superior: chave estrangeira para TAXONOMIA
Marcadores e Categorias
Diagrama Relacional (notação pé de galinha)
Marcador(Titulo, Acessos, Endereco, Categoria)
- Categoria: chave estrangeira
para Taxonomia

Taxonomia(Categoria, Superior)
Exercício 2
▪ Mapeie o seguinte modelo ER para relacional:
nome nome

N 1
Coquetel trata Retrovírus

nome nome

(1,1) (0,N)
Coquetel trata Retrovírus
Etapa 4
Relacionamento n:m
Mapeamento
Relacionamento n:m

(0,n) (1,n)
PESSOA ESCREVE LIVRO

?
Mapeamento
Relacionamentos n:m
Regra de Implementação
Tipo de
Relacionamento Tabela Adição Fusão
Própria Coluna Tabelas
(0,n) (0,n)
  
(0,n) (1 ,n)
  
(1 ,n) (1 ,n)
  
(Heuser, 2004)
Relacionamento M:N
Relação de Relacionamento
▪ Relacionamento se transforma em terceira
relação
▪ Terceira relação – referência cruzada
▫ mantém chave de ambas as relações envolvidas no
relacionamento
nome título
código telefone ISBN autor

(0,n) (1,n)
PESSOA ESCREVE LIVRO

ano categoria
Relacionamento M:N
Relação de Relacionamento
nome título
código telefone ISBN autor

(0,n) (1,n)
PESSOA ESCREVE LIVRO

ano categoria

PESSOA(código, nome, telefone)


LIVRO(isbn, título, autor, ano, categoria)
ESCREVE(código_autor, isbn_livro)
- código_autor: chave estrangeira para PESSOA
- isbn_livro: chave estrangeira para LIVRO
Exercício 3
▪ Mapeie o seguinte modelo ER para relacional:

identificador data código

(0,N) (0,N)
Genoma contém Gene
Etapa 5
Entidade Fraca
Mapeamento
Entidade Fraca

título data aquisição


ISBN autor sequência

(0,n) (1,1)
LIVRO TEM EXEMPLAR

ano categoria

?
Etapa 5
Entidade Fraca
▪ Entidade fraca traduzida em tabela
▪ Atributos da entidade traduzidos em colunas
da relação
▪ Chave estrangeira na tabela/entidade fraca =
chave primária da entidade proprietária
▪ Chave primária da tabela/entidade fraca
▫ Atributos identificadores da entidade fraca
+
▫ Chave primária da entidade proprietária
Etapa 5
Entidade Fraca

título data aquisição


ISBN autor sequência

(0,n) (1,1)
LIVRO TEM EXEMPLAR

ano categoria

LIVRO(ISBN, Título, Autor, Ano, Categoria)


EXEMPLAR(ISBN, Sequência, DataAquisicao)
Etapa 6
Atributos Multivalorados
Etapa 6
Atributos Multivalorados
▪ Modelo Relacional não permite atributos
multivalorados

Autores
?
Etapa 6
Atributos Multivalorados
▪ Atributo vira tabela M
▪ Chave primária da entidade vira chave
estrangeira de M
▪ Chave primária de M:
▫ Chave primária da entidade
+
▫ Atributo multivalorado
Etapa 6
Atributos Multivalorados
▪ Se atributo for composto, componentes viram
colunas de M

Rua Número Cidade Estado

Endereço
Etapa 7
Relacionamento n-ário
Mapeamento
Relacionamento n-ário
Cidade
n

1
Distribuição Distribuidor

?
Livro
Exercício 4
▪ Mapeie o seguinte modelo ER para relacional:
id descrição

TipoPaciente
nome nome_científico
N

N 1
Coquetel trata Retrovírus

dosagem
Etapa 8
Herança (OO)
Generalização/Especialização (EER)
Mapeamento
Generalização / Especialização
nome
código telefone

PESSOA

ct
?
FUNCIONÁRIO ASSOCIADO

data admissão função data associação


UML: Herança
Pessoa
-código: String
-nome: String
-telefone: int

Funcionário Associado
-admissão: Date -associação: Date
-função: String
Mapeamento
Generalização / Especialização
nome

Pessoa código telefone


-código: String
-nome: String
-telefone: int PESSOA

ct
?
Funcionário Associado
-admissão: Date -associação: Date FUNCIONÁRIO ASSOCIADO
-função: String

data admissão função data associação

especialização total x classe abstrata


Mapeamento
Generalização / Especialização
título categoria
código ano

?
MÍDIA

xp

LIVRO DVD

ISBN autor diretor produtor


UML: Herança
Mídia
-código: String
-título: String
-ano: int
-categoria: String

Livro DVD
-ISBN: String -diretor: String
-autor: String -produtor: String
Mapeamento
Generalização / Especialização
Mídia título categoria
código ano
-código: String
-título: String

?
-ano: int
-categoria: String MÍDIA

xp

Livro DVD
-ISBN: String -diretor: String DVD
-autor: String -produtor: String
LIVRO

ISBN autor diretor produtor


Etapa 8
Generalização / Especialização
▪ Uma tabela por hierarquia
▪ Uma tabela por entidade especializada
▫ Subdivisão da entidade genérica
Exercício 5
▪ Mapeie o seguinte modelo ER para relacional:
nome_científico

Vírus

nome

(1,1) (0,N)
Coquetel trata Retrovírus VírusDNA

tipo_cadeia
ER Biblioteca
(0,1) (0,1)
PESSOA OCUPA ARMÁRIO

(0,n)

EMPRÉSTIMO

(0,1)
(1,n) (0,n)
LIVRO PERTENCE CATEGORIA

subcategoria super-categoria
(1,1)
(0,1) (0,n)

GUARDA SUBORDINADA

(0,n)

ESTANTE
MT
DataHoraIn* CNH
Zona Nome
KMIn*
CNHValid

Endereço 1 De N N 1 1 N 1 N
LogId Limite Zona Fila @ Motorista
Nome
Cidade N
Estado 1
1 Até
Hora Início Fila
Hora Apanhou
Hora Deixou
Km Final
Logradouro 1

1 0 End-Deixar N Corrida N 1
Efetivada
[Complemento]
[Bairro] N
[CEP] N 1 Placa
Marca
Data Pedido Modelo
Data Hora Corrida AnoFab
1 Licença
1 1
Número
Taxi
1
1 End-Apanhar N Corrida
Agendada
Numeração
1

1
por prof. Geovane
1

N
CliId
Nome
Cayres Magalhães
N [CPF]
[CGC]
1
Legenda:
Endereço 1 1
Residencial Cliente [ ] - atributo opcional
* - informação preenchida após inclusão inicial
@ - um táxi só pode aparecer uma vez na fila
Referências
▪ Codd, Edgar Frank (1970) A relational model of data for
large shared data banks. Communications ACM 13(6),
377-387.
▪ Elmasri, Ramez; Navathe, Shamkant B. (2010) Sistemas
de Banco de Dados. Pearson, 6a edição em português.
▪ Guimarães, Célio (2003) Fundamentos de Bancos de
Dados: Modelagem, Projeto e Linguagem SQL. Editora
UNICAMP, 1a edição.
Referências
▪ Heuser, Carlos Alberto (2004) Projeto de Banco de
Dados. Editora Sagra Luzzato, 5a edição.
▪ Ramakrishnan, Raghu; Gehrke, Johannes (2003) Database
Management Systems. McGraw-Hill, 3rd edition.
Agradecimentos
▪ Luiz Celso Gomes Jr (professor desta disciplina em 2014)
pela contribuição na disciplina e nos slides.
André Santanchè
http://www.ic.unicamp.br/~santanche
License
▪ These slides are shared under a Creative Commons License.
Under the following conditions: Attribution, Noncommercial
and Share Alike.
▪ See further details about this Creative Commons license at:
http://creativecommons.org/licenses/by-nc-sa/3.0/

Você também pode gostar