Oficina:
Modelagem de Dados
Ronaldo S. Mello
INE/CTC/UFSC
Objetivo da Oficina
• Teoria e prática de projeto de Bancos de Dados
Relacionais (BDRs)
• Foco: modelagem conceitual e lógica de BDRs
– Dicas avançadas de modelagem entidaderelacionamento (ER)
– Regras detalhadas de mapeamento ER-relacional
• Exercícios práticos de modelagem
– ferramenta acadêmica brModelo
• Bibliografia principal
– Projeto de Banco de Dados - Carlos Alberto Heuser 5a Ed. Série Livros Didáticos – Instituto de Informática
da UFRGS, número 4. Editora Sagra-Luzzatto, 2004.
Sumário
1. Projeto de BD: objetivo e etapas
2. Modelagem Conceitual
2.1 Modelo ER
2.2 Dicas de Modelagem
2.3 Exercícios
3. Mapeamento ER-Relacional
3.1 Regras de Mapeamento
3.2 Exercícios
Sumário
1. Projeto de BD: objetivo e etapas
2. Modelagem Conceitual
2.1 Modelo ER
2.2 Dicas de Modelagem
2.3 Exercícios
3. Mapeamento ER-Relacional
3.1 Regras de Mapeamento
3.2 Exercícios
Projeto de Banco de Dados
• Parte integrante do desenvolvimento de
um sistema de informação
– preocupação com a representação adequada
de dados operacionais
• Atividade de projeto de BD
– modelagem de dados em diferentes níveis de
abstração
• nível conceitual, lógico e físico
Projeto de BD - Etapas
Análise de Requisitos
Modelagem Conceitual
Modelagem Lógica
Modelagem Física
Projeto de BD - Etapas
Análise de Requisitos
Modelagem Conceitual
Modelagem Lógica
Modelagem Física
• Coleta de informações sobre os
dados, suas restrições e seus
relacionamentos na organização
• Forma de realização: reuniões
com os usuários; observação do
funcionamento da organização
• Resultado: documento com a
especificação de requisitos
Projeto de BD - Etapas
Análise de Requisitos
Especificação de requisitos
Modelagem Conceitual
Modelagem Lógica
Modelagem Física
• Modelagem dos dados e seus
relacionamentos independente da
estrutura de representação do
SGBD (modelagem conceitual)
• Forma de realização: análise da
especificação de requisitos
• Resultado: esquema conceitual +
restrições de integridade
Vantagens da Modelagem Conceitual
• Abstração de dados de alto nível
– indicação de dados e seus relacionamentos da
forma como percebidos no mundo real
– independência de detalhes de representação de
SGBDs
• Fácil compreensão pelo usuário leigo
– facilita a validação da modelagem dos dados
• Facilita a manutenção dos dados
– modificação dos requisitos
– migração de SGBD
• Tradução para qualquer modelo de SGBD
Projeto de BD - Etapas
Análise de Requisitos
Especificação de requisitos
Modelagem Conceitual
Esquema conceitual
Modelagem Lógica
Modelagem Física
• Conversão do esquema conceitual
para o esquema de representação
de um SGBD (esquema lógico)
• Forma de realização: aplicação de
regras de conversão
• Resultado: esquema lógico (tabelas,
RIs, transações, consultas relevantes e
visões, autorizações de acesso, ...)
Projeto de BD - Etapas
Análise de Requisitos
Especificação de requisitos
Modelagem Conceitual
• Definição do esquema lógico
em um SGBD adequado ao modelo
Esquema conceitual
• Forma de realização: SQL
• Resultado: esquema físico
Modelagem Lógica
Esquema lógico
Modelagem Física
Projeto de BD - Etapas
Análise de Requisitos
Especificação de requisitos
Modelagem Conceitual
Esquema conceitual
Modelagem Lógica
Esquema lógico
Modelagem Física
Esquema físico ou implementação
Projeto de BD - Etapas
• Modelagem Conceitual
– preocupação: correta abstração do mundo real
(captura correta da semântica da aplicação)
• Modelagem Lógica + Física
– preocupação: escolhas corretas na conversão
para o esquema do SGBD (relacional) para
maximizar o desempenho
(distribuição adequada dos dados em tabelas)
Sumário
1. Projeto de BD: objetivo e etapas
2. Modelagem Conceitual
2.1 Modelo ER
2.2 Dicas de Modelagem
2.3 Exercícios
3. Mapeamento ER-Relacional
3.1 Regras de Mapeamento
3.2 Exercícios
Modelagem Conceitual – Modelo ER
• Modelo definido por Peter Chen em 1976
– modelo sofreu diversas extensões e notações
ao longo do tempo
• Padrão para modelagem conceitual de BD
– modelo simples
• poucos conceitos
– representação gráfica
– modelo de fácil compreensão
• Um esquema conceitual de BD é também
chamado de diagrama ER
Modelo ER - Notação
a4 (0,1)
a1
a5 a6
a2 (0,N)
(1,N)
E1
a7
papel 1 (0,N)
(0,3)
r1
r3
E2
papel 2 (1,1)
(1,N)
a3
(1,1)
r2
E3
(1,N)
a8 (1,N)
E7
E4
(1,1)
r4
p
(0,N)
a9
E5
E6
a10
E9
E11
E8
a11
(1,1)
(1,N)
r6
r5
(0,1)
(0,N)
E10
E12
a12
a13
Modelo ER - Notação
a4 (0,1)
a1
a5 a6
a2 (0,N)
(1,N)
E1
a7
papel 1 (0,N)
(0,3)
r1
r3
E2
papel 2 (1,1)
(1,N)
a3
(1,1)
r2
E3
entidade
(1,N)
a8 (1,N)
E7
E4
(1,1)
r4
p
(0,N)
a9
E5
E6
a10
E9
E11
E8
a11
(1,1)
(1,N)
r6
r5
(0,1)
(0,N)
E10
E12
a12
a13
Modelo ER - Notação
a4 (0,1)
a1
a5 a6
a2 (0,N)
(1,N)
E1
a7
papel 1 (0,N)
(0,3)
r1
r3
E2
papel 2 (1,1)
(1,N)
a3
(1,1)
r2
E3
(1,N)
a8 (1,N)
entidade
fraca
E7
E4
(1,1)
r4
p
(0,N)
a9
E5
E6
a10
E9
E11
E8
a11
(1,1)
(1,N)
r6
r5
(0,1)
(0,N)
E10
E12
a12
a13
Modelo ER - Notação
a4 (0,1)
a1
a5 a6
a2 (0,N)
(1,N)
E1
a7
entidade
associativa
papel 1 (0,N)
(0,3)
r1
r3
E2
papel 2 (1,1)
(1,N)
a3
(1,1)
r2
E3
(1,N)
a8 (1,N)
E7
E4
(1,1)
r4
p
(0,N)
a9
E5
E6
a10
E9
E11
E8
a11
(1,1)
(1,N)
r6
r5
(0,1)
(0,N)
E10
E12
a12
a13
Modelo ER - Notação
a5 a6
a2 (0,N)
(1,N)
E1
a7
relacionamento
a4 (0,1)
a1
papel 1 (0,N)
(0,3)
r1
r3
E2
papel 2 (1,1)
(1,N)
a3
(1,1)
r2
E3
(1,N)
a8 (1,N)
E7
E4
(1,1)
r4
p
(0,N)
a9
E5
E6
a10
E9
E11
E8
a11
(1,1)
(1,N)
r6
r5
(0,1)
(0,N)
E10
E12
a12
a13
Modelo ER - Notação
auto-relacionamento
a4 (0,1)
a1
a5 a6
a2 (0,N)
(1,N)
E1
a7
papel 1 (0,N)
(0,3)
r1
r3
E2
papel 2 (1,1)
(1,N)
a3
(1,1)
r2
E3
(1,N)
a8 (1,N)
E7
E4
(1,1)
r4
p
(0,N)
a9
E5
E6
a10
E9
E11
E8
a11
(1,1)
(1,N)
r6
r5
(0,1)
(0,N)
E10
E12
a12
a13
Modelo ER - Notação
relacionamento
ternário
a5 a6
a4 (0,1)
a1
a2 (0,N)
(1,N)
E1
a7
papel 1 (0,N)
(0,3)
r1
r3
E2
papel 2 (1,1)
(1,N)
a3
(1,1)
r2
E3
(1,N)
a8 (1,N)
E7
E4
(1,1)
r4
p
(0,N)
a9
E5
E6
a10
E9
E11
E8
a11
(1,1)
(1,N)
r6
r5
(0,1)
(0,N)
E10
E12
a12
a13
Modelo ER - Notação
a4 (0,1)
a1
a5 a6
a2 (0,N)
(1,N)
E1
a7
papel 1 (0,N)
(0,3)
r1
r3
E2
papel 2 (1,1)
(1,N)
a3
(1,1)
r2
E3
atributo
identificador E7
(1,N)
a8 (1,N)
E4
(1,1)
r4
p
(0,N)
a9
E5
E6
a10
E9
E11
E8
a11
(1,1)
(1,N)
r6
r5
(0,1)
(0,N)
E10
E12
a12
a13
Modelo ER - Notação
atributo
monovalorado
a5 a6
a4 (0,1)
a1
a2 (0,N)
(1,N)
E1
a7
papel 1 (0,N)
(0,3)
r1
r3
E2
papel 2 (1,1)
(1,N)
a3
(1,1)
r2
E3
(1,N)
a8 (1,N)
E7
E4
(1,1)
r4
p
(0,N)
a9
E5
E6
a10
E9
E11
E8
a11
(1,1)
(1,N)
r6
r5
(0,1)
(0,N)
E10
E12
a12
a13
Modelo ER - Notação
a4 (0,1)
a1
a5 a6
a2 (0,N)
(1,N)
E1
a7
atributo
multivalorado
papel 1 (0,N)
(0,3)
r1
r3
E2
papel 2 (1,1)
(1,N)
a3
(1,1)
r2
E3
(1,N)
a8 (1,N)
E7
E4
(1,1)
r4
p
(0,N)
a9
E5
E6
a10
E9
E11
E8
a11
(1,1)
(1,N)
r6
r5
(0,1)
(0,N)
E10
E12
a12
a13
Modelo ER - Notação
a4 (0,1)
a1
a5 a6
a2 (0,N)
(1,N)
E1
a7
atributo
composto
papel 1 (0,N)
(0,3)
r1
r3
E2
papel 2 (1,1)
(1,N)
a3
(1,1)
r2
E3
(1,N)
a8 (1,N)
E7
E4
(1,1)
r4
p
(0,N)
a9
E5
E6
a10
E9
E11
E8
a11
(1,1)
(1,N)
r6
r5
(0,1)
(0,N)
E10
E12
a12
a13
Modelo ER - Notação
atributo
obrigatório
a5 a6
a4 (0,1)
a1
a2 (0,N)
(1,N)
E1
a7
atributo
opcional
papel 1 (0,N)
(0,3)
r1
r3
E2
papel 2 (1,1)
(1,N)
a3
(1,1)
r2
E3
(1,N)
a8 (1,N)
E7
E4
(1,1)
r4
p
(0,N)
a9
E5
E6
a10
E9
E11
E8
a11
(1,1)
(1,N)
r6
r5
(0,1)
(0,N)
E10
E12
a12
a13
Modelo ER - Notação
especialização
parcial
a5 a6
a4 (0,1)
a1
a2 (0,N)
(1,N)
E1
a7
especialização
total
papel 1 (0,N)
(0,3)
r1
r3
E2
papel 2 (1,1)
(1,N)
a3
(1,1)
r2
E3
(1,N)
a8 (1,N)
E7
E4
(1,1)
r4
p
(0,N)
a9
E5
E6
a10
E9
E11
E8
a11
(1,1)
(1,N)
r6
r5
(0,1)
(0,N)
E10
E12
a12
a13
Modelo ER - Notação
especialização
exclusiva
a5 a6
a4 (0,1)
a1
a2 (0,N)
(1,N)
E1
a7
especialização
não-exclusiva
papel 1 (0,N)
(0,3)
r1
r3
E2
papel 2 (1,1)
(1,N)
a3
(1,1)
r2
E3
(1,N)
a8 (1,N)
E7
E4
(1,1)
r4
p
(0,N)
a9
E5
E6
a10
E9
E11
E8
a11
(1,1)
(1,N)
r6
r5
(0,1)
(0,N)
E10
E12
a12
a13
Sumário
1. Projeto de BD: objetivo e etapas
2. Modelagem Conceitual
2.1 Modelo ER
2.2 Dicas de Modelagem
2.3 Exercícios
3. Mapeamento ER-Relacional
3.1 Regras de Mapeamento
3.2 Exercícios
Dicas de Modelagem Conceitual
• Entidade X Atributo
– a opção por entidade é válida se existem
propriedades (atributos e relacionamentos) e
transações relevantes para o fato
Empregados
salário
deduçãoIRPF valorBruto
Empregados
(1,1)
(1,N)
remuneração
Salários
categoria
valorLíquido
gratificação
Dicas de Modelagem Conceitual
• Entidade X Atributo Composto
– a opção por atributo composto é válida se
existe noção de agregação
imóvel
localização
valor
Pessoas
aplicação comercial (setor de crediário de uma loja)
localização
Pessoas
(1,1)
(0,N)
proprietário
aplicação de negócio imobiliário
Imóveis
valor
Dicas de Modelagem Conceitual
• Entidade X Atributo Multivalorado
– a opção por atributo multivalorado é válida se
existe noção de agregação
Pessoas
telefone(0,N)
aplicação comercial (setor de crediário de uma loja)
DDD
Pessoas
(1,N)
(0,1)
proprietário
aplicação: companhia telefônica
Linhas
Telefônicas
número
Dicas de Modelagem Conceitual
• Entidade Fraca X Atributo
– a opção por atributo é válida se o fato não
possui outros relacionamentos
Pedidos
itens (1,N)
descrição
quantidade
valor
número quantidade
(1,N)
(1,1)
Pedidos
Itens
composição
(0,N)
Produtos
(1,1)
referência
Dicas de Modelagem Conceitual
• Entidade X Relacionamento
– admite-se representações equivalentes
• a opção por relacionamento é recomendada se não
existem propriedades associadas ao fato
• a opção por entidade é recomendada se existe um
identificador explícito para o fato (ex.: ID da consulta)
hora
CRM
nome
(0,N)
Médicos
nome
(0,N)
consulta
Médicos
Pacientes
data
CRM
(1,1)
nome
nome
(0,N)
(0,N)
Consultas
data
código
hora
(1,1)
Pacientes
código
Dicas de Modelagem Conceitual
• Entidade X Relacionamento
– a opção por entidade introduz uma indireção na
associação entre fatos
• não recomendável, especialmente para casos umpara-um e um-para-muitos
– não geram o mesmo banco de dados relacional!
CPF
nome
marca
(0,1)
Pessoas
nome
(0,N)
Automóveis
posse
CPF
(1,1)
Pessoas
chassi
marca
(0,N)
(0,1)
Posses
(1,1)
Automóveis
chassi
Dicas de Modelagem Conceitual
• Entidade X Entidade Associativa
– admite-se representações equivalentes
• levar em conta as recomendações do caso anterior
(entidade X relacionamento)
nome
CRM
hora
(0,N)
Médicos
nome
(0,N)
consulta
Consultas
data
(0,N)
intervaloHoras
código
Pacientes
nome
(0,N)
prescrição
Medicamentos
código
Dicas de Modelagem Conceitual
• Entidade X Entidade Associativa
nome
CRM
(1,1)
nome
(0,N)
Médicos
(0,N)
Consultas
data
Pacientes
código
hora
(0,N)
intervaloHoras
(1,1)
nome
(0,N)
prescrição
Medicamentos
código
Dicas de Modelagem Conceitual
• Entidade Associativa X Relacionamento N-Ário
– recomenda-se a opção por relacionamento n-ário
apenas se a participação for obrigatória para todas
as entidades
• evita problemas de identificação do relacionamento
nome
CPF
nome
(1,N)
Empregados
(1,N)
alocação
nome
Projetos
(1,N)
Tarefas
código
código
Dicas de Modelagem Conceitual
• Entidade Associativa X Relacionamento N-Ário
– recomenda-se a opção por entidade associativa se
a participação não for obrigatória para todas as
entidades
nome
CPF
nome
(1,N)
Empregados
(0,N)
alocação
Projetos
código
Alocações
(0,N)
nome
(0,N)
execução
Tarefas
código
Dicas de Modelagem Conceitual
• Relacionamento X Especialização
– a opção por especialização é válida se houver
uma associação um-para-um entre as
entidades participantes
nome
CPF
nome
CPF
Pessoas
Pessoas
(0,N)
titulação
Professores
aplicação universitária
formação
habilitação
(1,N)
código
Professores
tempo
experiência
aplicação de uma escola de música
Dicas de Modelagem Conceitual
• Atributo X Especialização
– a opção por especialização é valida se houver
atributos e/ou relacionamentos relevantes
para os fatos especializados
função
nome
nome
CPF
CPF
Pessoas
Pessoas
CREA
Engenheiros
nroHabilitação
Motoristas
Dicas de Modelagem Conceitual
• Atributo X Especialização
– atenção: atributos opcionais podem sugerir a
modelagem de uma entidade especializada
nroHabilitação (0,1)
veículosHabilitados (0,N)
nome
CPF
Pessoas
nome
CPF
Pessoas
nroHabilitação
veículosHabilitados (1,N)
Motoristas
Dicas de Modelagem Conceitual
• Limitações no poder de expressão!
– exige a documentação de restrições de
integridade em anexo
(0,N) supervisionado
supervisão
Empregados
(0,1)
supervisor
RIs: - um empregado não pode ser supervisor de si próprio
- ciclos em hierarquias de supervisão não são permitidos
(0,N)
Alunos
(0,N)
emCurso
G
emCurso
PG
(0,1)
Graduação
Cursos
(0,1)
Pós-Graduação
aplicação de um depto
universitário
RIs: - um aluno não pode estar cursando ambos os cursos
- um aluno deve estar cursando pelo menos um dos cursos
Dicas de Modelagem Conceitual
• Consideração de aspectos temporais
– atenção: alteram a modelagem conceitual!
Empregados
valor
salário
(1,1)
instantâneo
Empregados
data
(1,N)
remuneração
Salários
temporal
Empregados
(1,1)
(0,N)
lotação
Departamentos
instantâneo
Departamentos
temporal
data
Empregados
(1,N)
(0,N)
lotação
Dicas de Modelagem Conceitual
• Entidade isolada
– pode-se admitir a sua representação
Escolas
(0,N)
(1,1)
Home-Pages
definição
DicasDidáticas
(mostrada aleatoriamente sempre
que uma home-page é aberta)
OK !
Empresa
Empregados
(1,1)
(0,N)
lotação
Departamentos
OK ?
Dicas de Modelagem Conceitual
• Validação do esquema conceitual
– substantivos para nomes de relacionamentos
• minimizam a redundância de nomes
• nomes mais adequados para futuros conceitos
lógicos (tabelas, atributos)
– cardinalidade de relacionamentos
• na dúvida, definir cardinalidades opcionais
– menos restritivas
– reduzem os controles de integridade no BD
» dependências de inserção e controles na atualização
(1,1)
(1,1)
possui
Setores
revisão
lotação
(1,N)
(0,N)
Máquinas
Máquinas
Setores
Sumário
1. Projeto de BD: objetivo e etapas
2. Modelagem Conceitual
2.1 Modelo ER
2.2 Dicas de Modelagem
2.3 Exercícios
3. Mapeamento ER-Relacional
3.1 Regras de Mapeamento
3.2 Exercícios
Ferramenta brModelo
• Modelagem conceitual ER – notação Peter Chen
• Mapeamento semi-automático ER-relacional
• Armazenamento XML de modelagens
Exercício Modelagem 1 - Clínica
Cada médico que trabalha na clínica é identificado pelo seu
CRM, possui um nome, uma data de admissão na clínica e um
salário. Um médico tem formação em diversas especialidades
(ortopedia, traumatologia, etc), mas só exerce uma delas na
clínica. Para todo paciente internado na clínica são
cadastrados alguns dados pessoais: código (único), nome,
RG, CPF, endereço, telefone(s) para contato e data do
nascimento. Um paciente tem sempre um determinado médico
como responsável, com um horário de visita diário
predeterminado. Pacientes estão sempre internados em
quartos individuais, que são identificados por um número e
estão em um andar da clínica.
Exercício 2 - Museu
Cada obra no museu possui um código, um título e um ano. Obras ou são pinturas ou
são esculturas. No primeiro caso, são dados importantes o estilo (por exemplo,
impressionista). No caso de esculturas, são importantes o peso e os materiais de que é
feita (por exemplo, argila, madeira, etc). Uma obra pode estar exposta em um único
salão, em uma determinada posição neste salão. Um salão, que geralmente abriga
várias obras, é identificado por um número e está em um andar do museu. Certos
dados a respeito dos autores de cada obra também são relevantes: código, nome e
nacionalidade. Uma obra é produzida por apenas um autor, porém, pode existir mais de
uma obra de um mesmo autor no museu. No museu trabalham funcionários, cada um
possuindo um ID, CPF, um nome e um salário. Funcionários ou são guardas ou são
restauradores de obras. No primeiro caso, mantêm-se dados sobre a hora de entrada e
hora de saída. No caso de restauradores, qual a sua especialidade. Um guarda é
responsável pela segurança de um único salão, que pode ser vigiado por vários
guardas. Um restaurador pode estar realizando a manutenção de várias obras. Uma
obra, caso esteja em manutenção, está nas mãos de apenas um restaurador. Para cada
manutenção deve-se registrar a data de início e a data prevista de término do trabalho,
uma descrição do serviço a ser feito e um custo previsto para realizar a manutenção.
Uma manutenção pode estar utilizando uma ou mais matérias-primas. Uma matériaprima possui um código, um nome e uma quantidade em estoque. Uma matéria-prima
pode estar sendo utilizada em várias manutenções, em uma certa quantidade.
Exercício 3 (se der tempo...) - Biblioteca
Um livro tem vários exemplares na biblioteca, como por
exemplo, Liv1-Ex1, Liv1-Ex2, Liv2-Ex1. Exemplares estão
dispostos em estantes. São mantidos dados detalhados sobre
autores e editoras dos livros para fins de consulta. Na
biblioteca trabalham bibliotecárias. Cada estante é
periodicamente organizada por uma única bibliotecária.
Bibliotecárias também realizam empréstimos de exemplares
para clientes. Empréstimos cadastrados no BD devem conter a
data da devolução e o valor diário da multa, permanecendo no
BD até o cliente entregar o exemplar. A bibliotecária que
realizou o empréstimo também é relevante de ser mantido no
BD. Algumas bibliotecárias são estagiárias. Uma bibliotecária
estagiária está sempre sob a responsabilidade de uma
bibliotecária efetiva. Deve-se saber também a instituição de
ensino da qual a estagiária vem. Defina os atributos que
julgares relevantes para os fatos identificados.
Sumário
1. Projeto de BD: objetivo e etapas
2. Modelagem Conceitual
2.1 Modelo ER
2.2 Dicas de Modelagem
2.3 Exercícios
3. Mapeamento ER-Relacional
3.1 Regras de Mapeamento
3.2 Exercícios
Modelagem Lógica de BD
• Foco
– mapeamento ER->relacional
• Para 1 esquema ER – N esquemas
relacionais
– existem várias maneiras de “se implementar”
uma modelagem conceitual abstrata
Prática de Modelagem Lógica
• Compromisso entre
– evitar um grande número de tabelas
• evitar um tempo longo de resposta nas consultas e
atualizações de dados
– implica minimizar junções entre tabelas
– evitar atributos opcionais
• evitar tabelas sub-utilizadas
– implica evitar desperdício de espaço
– evitar muitos controles de integridade no BD
• evitar organizações de dados em tabelas que gerem
muitos controles de integridade
– implica evitar muitas dependências entre dados
Processo de Mapeamento
1. Mapeamento preliminar de entidades e
seus atributos
2. Mapeamento de especializações
3. Mapeamento de relacionamentos e seus
atributos
Mapeamento de Entidades
Empregados
CPF
Nome
Idade
Empregados (CPF, Nome, Idade)
Mapeamento de Entidades Fracas
• Identificador da entidade forte torna-se
– parte da chave primária na tabela
correspondente à entidade fraca (tabelaFraca)
– chave estrangeira na tabelaFraca
(1,1)
Pedidos
Número
(1,N)
Composição
Número
Itens
Quantidade
Produto
Itens (NroPedido, NroItem, Produto, Quantidade)
Mapeamento de Atributos
PlanoSaúde (0,1)
Rua
Número
Cidade
Telefone (1,N)
Empregados
CPF
Nome
Idade
Endereço
Empregados (CPF, Nome, Idade, PlanoSaúde,
Rua, Número, Cidade)
Telefone(CPF, Número)
ou
Telefone (CPF, Número)
Mapeamento de Atributos
PlanoSaúde (0,1)
Rua
Número
Cidade
Telefone (1,3)
Empregados
CPF
Nome
Idade
Endereço
Empregados (CPF, Nome, Idade, PlanoSaúde,
Rua, Número, Cidade,
FoneRes, FoneCom, Celular)
Processo de Mapeamento
1. Mapeamento preliminar de entidades e
seus atributos
2. Mapeamento de especializações
3. Mapeamento de relacionamentos e seus
atributos
Mapeamento de Especializações
•
Três alternativas são geralmente adotadas
1. tabela única para entidade genérica e suas
especializações
2. tabelas para a entidade genérica e as
entidades especializadas
3. tabelas apenas para as entidades
especializadas
Alternativa 1
Servidores
Função
Funcionários
CPF
Nome
Professores
Titulação
Categoria
Servidores (CPF, Nome, Tipo, Função, Titulação,
Categoria)
• Tipo pode assumir mais de um valor se a especialização é
não-exclusiva
Alternativa 2
Servidores
Função
Funcionários
CPF
Nome
Professores
Titulação
Categoria
Servidores (CPF, Nome)
Funcionários (CPF, Função)
Professores (CPF, Titulação, Categoria)
Alternativa 3
Servidores
Função
Funcionários
CPF
Nome
Professores
Titulação
Categoria
Funcionários (CPF, Nome, Função)
Professores (CPF, Nome, Titulação, Categoria)
• Não se aplica a especializações parciais
Processo de Mapeamento
1. Mapeamento preliminar de entidades e
seus atributos
2. Mapeamento de especializações
3. Mapeamento de relacionamentos e seus
atributos
Mapeamento de Relacionamentos
•
Recomendações de mapeamento
baseiam-se na análise da cardinalidade
dos relacionamentos
– com base nesta análise, algumas alternativas
de mapeamento podem ser adotadas
1. entidades relacionadas podem ser fundidas em uma
única tabela
2. tabelas podem ser criadas para o relacionamento
3. chaves estrangeiras podem ser criadas em tabelas
a fim de representar adequadamente o
relacionamento
Relacionamento 1-1
• Obrigatório em ambos os sentidos
(1,1)
Conferências
Sigla
Nome
(1,1)
Organização
Número
Endereço
Comissões
eMail
DataInstalação
Conferências (Sigla, Nome, DataInstCom, NroCom,
EndereçoCom, eMailCom)
Relacionamento 1-1
• Opcional em um dos sentidos
Número
(1,1)
Pessoas
Código
(0,1)
Posse
Nome
DataRetirada
CarteirasMotorista
DataExpedição Validade Categoria
alternativa 1
Pessoas (Código, Nome, NúmeroCarteiraMotorista,
DataExpedição, Validade, Categoria,
DataRetirada)
Relacionamento 1-1
• Opcional em um dos sentidos
Número
(1,1)
Pessoas
Código
(0,1)
Posse
Nome
DataRetirada
CarteirasMotorista
DataExpedição Validade Categoria
alternativa 2
Pessoas (Código, Nome)
CarteirasMotorista (Número, DataExpedição,
Validade, Categoria, Código,
DataRetirada)
Relacionamento 1-1
• Opcional em ambos os sentidos
(0,1)
Homens
CPF
Nome
(0,1)
Casamento
Mulheres
Data
CPF
Nome
alternativa 1
Homens (CPF, Nome) Mulheres (CPF, Nome)
Casamento (CPFh, CPFm, Data)
Relacionamento 1-1
• Opcional em ambos os sentidos
(0,1)
Homens
CPF
(0,1)
Casamento
Nome
Data
Mulheres
CPF
Nome
alternativa 2
Homens (CPF, Nome)
Mulheres (CPF, Nome, CPFmarido, DataCasamento)
Relacionamento 1-N
• Obrigatório/opcional no “lado N”
(1,N)
(1,1)
Lotação
Empregados
Código
Nome
Departamentos
(0,N)
CPF
Nome
Data
Departamentos (Código, Nome)
Empregados (CPF, Nome, CodDepto, DataLotação)
Relacionamento 1-N
• Opcional no “lado 1”
Ano
(1,N)
(0,1)
Posse
Automóveis
CPF
Pessoas
(0,N)
Chassi
Modelo
DataCompra
alternativa 1
Pessoas (CPF, Nome)
Automóveis (Chassi, Modelo, Ano)
Posse (CPF, Chassi, DataCompra)
Nome
Relacionamento 1-N
• Opcional no “lado 1”
Ano
(1,N)
(0,1)
Posse
Automóveis
CPF
Nome
Pessoas
(0,N)
Chassi
Modelo
DataCompra
alternativa 2
Pessoas (CPF, Nome)
Automóveis (Chassi, Modelo, Ano, CPF, DataCompra)
Relacionamento N-M
• Obrigatório/opcional em ambos os sentidos
(1,N)
Empregados
Participação
(0,N)
CPF
(1,N)
Código
Nome
Projetos
(0,N)
Nome
DataInício
Empregados (CPF, Nome)
Projetos (Código, Nome)
Participação (CPF, Código, DataInício)
Auto-Relacionamento
• Valem as mesmas recomendações
anteriores
(0,1)
Empregados
(0,N)
CPF Nome
gerente
gerência
subordinado
Idade
Alternativas:
1)
Empregados(CPF, Nome, Idade)
Gerência(CPFe, CPFg)
2)
Empregados(CPF, Nome, Idade, CPFg)
Relacionamentos com Entidades Associativas
• Valem as mesmas recomendações anteriores
– questão: “localizar” a entidade associativa
Empréstimos
(0,N)
Livros
(0,1)
Clientes
empréstimo
DataDevolução
(0,N)
(1,1)
cadastro
Bibliotecárias
alternativa 2
Livros (Código, ..., CPFcli, DataDevolução, CPFbibl)
Clientes (CPFcli, ...)
Bibliotecárias(CPFbibl, ...)
Relacionamentos com Entidades Associativas
• Outro exemplo
CPF
Clientes
(1,N)
(1,N)
vínculo
Contas Número
Correntistas
Número
DataExp
(1,1)
CartõesMagnéticos
Concessão
(0,1)
alternativa 1
Correntista(CPF, NroCta, NroCartão, DataExp)
Relacionamentos Ternários
• Gera uma tabela para o relacionamento
Sigla
Instituições
(0,N)
Projetos
(1,N)
Pesquisa
Caso N:N:N
DataInício
(1,N)
Pesquisadores
CPF
Instituições (Sigla, ...) Projetos (Número, ...)
Pesquisadores (CPF, ...)
Pesquisa (Sigla, Número, CPF, DataInício)
Número
Relacionamentos Ternários
Código
Produtos
(0,N)
Cidades
(0,N)
Distribuição
(0,1)
Caso 1:N:N
CPF
Distribuidores
Produtos (Código, ...)
Cidades (Código, ...)
Distribuidores (CPF, ...)
Distribuição (CodProduto, CodCidade, CPF)
Código
Relacionamentos Ternários
CPF
Nome
Empregados
Atividades
(0,N)
Código
Descrição
(1,1)
Remuneração
(1,1)
Caso 1:1:N
ID
Salários
Valor
Empregados (CPF, Nome)
Atividades (Código, Descrição)
Salários (ID, valor)
Remuneração (CodAtiv, CPF, ID-Salario)
• Uma das RIs pode
ser chave primária
Relacionamentos Ternários
Código
Peso
Painéis
(0,1)
Motores
(0,1)
Veículo
Caso 1:1:1
(0,1)
Latarias
Painéis (Código, Peso)
Motores (Código, Fabricante)
Latarias (Código, Modelo)
Veículo (CodP, CodM, CodL)
Código
Modelo
• Uma das RIs pode
ser chave primária
Código
Fabricante
Sumário
1. Projeto de BD: objetivo e etapas
2. Modelagem Conceitual
2.1 Modelo ER
2.2 Dicas de Modelagem
2.3 Exercícios
3. Mapeamento ER-Relacional
3.1 Regras de Mapeamento
3.2 Exercícios
Exercícios
• Mapeamento das modelagens conceituais
definidas nos exercícios anteriores
Download

OficinaModelagemDados-ERBD2007