Buscar

Aula 7 - Transformacao entre modelos ER Relacional

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 60 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 60 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 60 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Transformação entre modelos
(ER  Relacional)
Banco de dados 1
Fabrício Nogueira
fabricio.silva@uva.br
Objetivo
• Transformar um modelo conceitual em um projeto lógico relacional
Projeto lógico de 
BD relacional
Engenharia reversa 
de BD relacional
Modelo ER
(nível conceitual)
Modelo 
relacional
(nível lógico)
Projeto lógico
• Um modelo ER pode gerar diversos modelos relacionais
• Cada versão do modelo relacional pode ser considerado uma 
implementação correta do modelo ER
• O que diferencia uma implementação das outras?
• Diferentes desempenhos 
• Maior facilidade ou dificuldade de desenvolvimento e manutenção do sistema
Projeto lógico
• Como transformar de ER para relacional?
Modelo ER
(nível conceitual)
Transformação ER 
para relacional
Modelo 
relacional 
(nível lógico)
Refinamento
Conhecimento 
sobre a aplicação
Transformação ER para relacional
• Objetivos básicos
• Bom desempenho de instruções de consultas e alteração dos dados
• Número de acessos a disco
• Simplificar o desenvolvimento e manutenção das aplicações
• Ocupar menos espaço em disco
Transformação ER para relacional
• Princípios básicos para definição das regras de transformação
• Evitar junções
• Diminuir o número de chaves
• Evitar campos opcionais que dependem de outros
• Ex.: Se for casado, preencher os campos A, B e C
Transformação ER para relacional
• Exemplo
• Cliente(CodCliente, Nome, NomeContato, Endereço, Telefone)
OU
• Cliente (CodCliente, Nome, NomeContato)
• EnderecoCliente (CodCliente, Endereco, Telefone) CodCliente referencia 
Cliente
Criação de índice
Criação de índice
Criação de índice
Processos da transformação
• Implementação inicial das entidades e seus atributos
• Implementação dos relacionamentos e seus atributos
• Implementação de generalizações/especializações
Implementação inicial das entidades
• Entidade  Tabela
• Atributo  Coluna
• Atributos identificadores  Colunas que compõem a chave primária
• Pessoa (CodigoPess, Nome, Endereco, DataNasc, DataAdm)
PESSOA
CÓDIGO
NOME
ENDEREÇO
DATA DE ADMISSÃO
DATA DE NASCIMENTO
Nomes de atributos e colunas
• Não é aconselhável transcrever o nome dos atributos para nomes de 
colunas
• Atributos do DER são em linguagem natural
• Colunas do projeto relacional são para uso do SGBD e das aplicações
• Não usar espaços em branco e caracteres especiais
• Nomes de colunas não necessitam conter o nome da tabela
• Usar Nome ao invés de NomeAluno, NomeCliente, NomeEmpregado
• Dependendo do nome da chave primária, usa-se também o nome da 
tabela
• idCliente, idEmpregado, idAluno, codigoCidade, codigoProfessor, codUF, 
codProduto
Relacionamento identificador
• Para cada relacionamento identificador, cria-se uma chave estrangeira na tabela que 
implementa a entidade fraca referenciando a tabela que implementa a entidade forte.
• A chave primária que implementa a entidade fraca, possui colunas que representam os 
atributos identificados e chaves estrangeiras para a entidade forte
Dependente (CodigoEmp, NoSeq, Nome)
Empregado
Nome
Código
Dependente
Nome
Número de 
sequencia
(0,n)(1,1)
Relacionamento identificador
• Grupo (CodGrupo, Nome)
• Empresa (CodGrupo, NoEmpresa, Nome)
• Empregado (CodGrupo, NoEmpresa, NoEmpregado, Nome)
• Dependente (CodGrupo, NoEmpresa, NoEmpregado, NoSeq, Nome)
Grupo
Nome
Código
Empresa
Nome
Número de 
empresa
(0,n)(1,1)
Empregado
Nome
Número de 
empregado
Dependente
Nome
Número de 
sequencia
Implementação de relacionamentos
• Alternativas básicas
• Tabela própria
• Adição de colunas em uma das tabelas
• Fusão de tabelas
• A cardinalidade (máxima e mínima) irá determinar qual alternativa 
usar
Implementação de relacionamentos
• Tabela própria
• Colunas contendo os identificadores das entidades relacionadas
• Colunas contendo os atributos do relacionamento
Engenheiro
Nome
Código
Projeto
Título
Código
(0,n)(0,n)
Função
Engenheiro (CodEng, Nome)
Projeto (CodProj, Titulo)
Atuacao (CodEng, CodProj, Funcao)
CodEng referencia Engenheiro
CodProj referencia Projeto
Implementação de relacionamentos
• Tabela própria
Engenheiro
CodEng Nome
1 Souza
2 Silva
3 Santos
Projeto
CodProj Título
A Consultoria
B Construção
C Minério
D Automação
Atuação
CodEng CodProj Funcao
1 A Consultor
1 B Calculista
1 D Analista
2 C Consultor
3 C Gerente
1
n
Implementação de relacionamentos
• Tabela própria
Engenheiro
CodEng Nome
1 Souza
2 Silva
3 Santos
Projeto
CodProj Título
A Consultoria
B Construção
C Minério
D Automação
Atuação
CodEng CodProj Funcao
1 A Consultor
1 B Calculista
1 D Analista
2 C Consultor
3 C Gerente
n
1
Implementação de relacionamentos
• Adição de colunas
• Em uma das tabelas correspondentes às entidades que participam do 
relacionamento
• Somente quando uma das entidade possui cardinalidade máxima 1
• Inserir na tabela que representa a entidade oposta àquela com cardinalidade 
máxima 1 as colunas:
• Que representam o identificador da entidade relacionada
• Que representam aos atributos do relacionamento
Implementação de relacionamentos
• Adição de colunas
Departamento
Nome
Código
Empregado
Nome
Código
Lotação
(0,n)(1,1)
Data lotação
Departamento (CodDept, Nome)
Empregado (CodEmp, Nome, CodDept, DataLota)
CodDept referencia Departamento
Implementação de relacionamentos
• Fusão de tabelas
• Entidades envolvidas no relacionamento compõem uma única tabela
• Somente pode ser aplicada quando o relacionamento é do tipo 1:1
Conferência
Nome
Código
Comissão
Endereço
Organização
(1,1)(1,1)
Data instalação
Conferência (CodConf, Nome, DataInstComOrg, EnderecoComOrg)
Implementação de relacionamentos
• Fusão de tabelas
• Entidades envolvidas no relacionamento compõem uma única tabela
• Somente pode ser aplicada quando o relacionamento é do tipo 1:1
Empregado (CodEmp, Nome, DataAlocacao, NoMesa)
Empregado MesaAlocação
1 1
Nome
Código
NúmeroData de
alocação
Detalhes de implementação
Cardinalidade Tabela própria Adição de coluna Fusão de tabelas
Relacionamentos 1:1
(0,1) .. (0,1) +/- V X
(0,1) .. (1,1) -/+ +/- V
(1,1) .. (1,1) -/+ +/- V
Relacionamentos 1:n
(0,1) .. (0,n) +/- V X
(0,1) .. (1,n) +/- V X
(1,1) .. (0,n) -/+ V X
(1,1) .. (1,n) -/+ V X
Relacionamento n:n
(0,n) .. (0,n) ou (0,n) .. (1,n) ou (1,n) .. (1,n) V X X
Detalhes de implementação
• Relacionamentos 1:1 (0,1 .. 0,1 – ambas entidades possuem participação opcional)
• Solução com adição de coluna
• Mulher (IdentM, Nome, IdentH, Data, Regime) IdentH referencia Homem
• Homem (IdentH, Nome)
Homem MulherCasamento
(0,1) (0,1)
Nome Identidade Regime Nome IdentidadeData
Escolha arbitrária da tabela 
Mulher. Poderia ter sido a 
outra.
Detalhes de implementação
• Relacionamentos 1:1 (0,1 .. 0,1 – ambas entidades possuem participação opcional)
• Solução com tabela própria
• Mulher (IdentM, Nome)
• Homem (IdentH, Nome)
• Casamento (IdentM, IdentH, Data, regime) IdentM referencia Mulher, IdentH referencia 
Homem
Homem MulherCasamento
(0,1) (0,1)
Nome Identidade Regime Nome IdentidadeData
Detalhes de implementação
• Relacionamentos 1:1 (0,1 .. 0,1 – ambas entidades possuem participação opcional)
• Fusão de tabelas
• Tabela (IdentM, NomeM, IdentH, NomeH, Data, regime)
• Não se aplica, pois Homem e Mulher são opcionais.
• Qual seria a chave primária?
Homem MulherCasamento
(0,1) (0,1)
Nome Identidade Regime Nome IdentidadeDataDetalhes de implementação
• Relacionamentos 1:1 (0,1 .. 1,1 – uma entidade opcional e outra obrigatória)
• Fusão de tabelas
• Correntista (CodCorrentista, Nome, CodCartao, DataExp)
Correntista Cartão
(1,1) (0,1)
Nome Código Data de 
expiração
Número
Detalhes de implementação
• Relacionamentos 1:1 (0,1 .. 1,1 – uma entidade opcional e outra obrigatória)
• Adição de colunas
• Correntista (CodCorrentista, Nome)
• Cartão (CodCartao, DataExp, CodCorrentista) CodCorrentisra referencia Correntista
Correntista Cartão
(1,1) (0,1)
Nome Código Data de 
expiração
Número
Detalhes de implementação
• Relacionamentos 1:1 (1,1 .. 1,1 – Ambas as entidades com participação obrigatória)
• Fusão de tabelas
• Conferencia (CodConf, Nome, DataInstalacaoComOrg, EnderecoComOrg)
Conferência
Nome
Código
Comissão
Endereço
Organização
(1,1)(1,1)
Data instalação
Detalhes de implementação
• Relacionamentos 1:n
• Alternativa preferida: Adição de colunas
• Edificio (CodigoEd, Endereco)
• Apartamento (CodigoEd, NumeroAp, AreaAp) CodigoEd referencia Edificio
Edifício
Endereço Código
Apartamento
Número
(1,n)(1,1)
Área
Por ser um relacionamento 
identificador, a chave 
estrangeira faz parte da chave 
primária
Detalhes de implementação
• Relacionamentos 1:n
• Alternativa preferida: Adição de colunas
• Financeira (CodFin, Nome)
• Venda (Idvenda, Data, CodFin, NoParc, TxJuros) CodigoFin referencia 
Financeira
Financeira
Nome Código
Venda
Id
Finamciamen
to
(0,n)(0,1)
Taxa de juros
N parcelas
Detalhes de implementação
• Relacionamentos 1:n
• Alternativa: Tabela própria
• Financeira (CodFin, Nome)
• Venda (IdVenda, Data)
• Financiamento (Idvenda, CodFin, NoParc, TxJuros) IdVenda referencia Venda, 
CodFin referencia Financeira
Financeira
Nome Código
Venda
Id
Finamciamen
to
(0,n)(0,1)
Taxa de juros
N parcelas
Desvantagens:
Junções entre venda e
financiamento
Dois índices para a
mesma chave
Detalhes de implementação
• Relacionamentos n:n
• Sempre implementados por tabela própria
Engenheiro
Nome
Código
Projeto
Título
Código
(0,n)(0,n)
Função
Engenheiro (CodEng, Nome)
Projeto (CodProj, Titulo)
Atuacao (CodEng, CodProj, Funcao)
CodEng referencia Engenheiro
CodProj referencia Projeto
Generalização/Especialização
1. Tabela única
• Chave primária do atributo identificador da entidade genérica
• Coluna “Tipo” para identificação da entidade especializada
• Colunas para os atributos da entidade genérica
• Colunas para os relacionamentos da entidade genérica, se a solução usar adição de 
colunas
• Colunas para os atributos das entidades especializadas (devem ser opcionais)
• Colunas para os relacionamentos das entidades especializadas, se implementadas via 
adição de colunas
2. Uma tabela para cada entidade
1. Cada Entidade  Tabela
2. Compartilham o mesmo valor de chave primária
Generalização/Especialização
• Tabela única Empregado
(CodEmp, Tipo, Nome, CPF, CodDept, CartHabil, Crea, CodRamo)
CodDept referencia Depto
CodRamo referencia Ramo
Depto (CodDepto, Nome)
Ramo (CodRamo, Nome)
ProcTexto (CodProc, Nome)
Dominio (CodEmp, CodProc)
CodEmp referencia Empregado
CodProc referencia ProcTexto
Projeto (CodProj, Nome)
Participacao (CodEmp, CodProj)
CodEmp referencia Empregado
CodProj referencia Projeto
Comuns Especializados
Tabelas próprias 
que não geram 
colunas em 
Empregado
Opcionais
Generalização/Especialização
• Uma tabela por entidade Empregado (CodEmp, Tipo, Nome, CPF, CodDept)
CodDept referencia Depto
Motorista (CodEmp, CartHabil)
CodEmp referencia Empregado
Engenheiro (CodEmp, Crea, CodRamo)
CodEmp referencia Empregado
CodRamo referencia Ramo
Depto (CodDepto, Nome)
Ramo (CodRamo, Nome)
ProcTexto (CodProc, Nome)
Dominio (CodEmp, CodProc)
CodEmp referencia Empregado
CodProc referencia ProcTexto
Projeto (CodProj, Nome)
Participacao (CodEmp, CodProj)
CodEmp referencia Empregado
CodProj referencia Projeto
Comparti-
lhamento de 
chave primária
Chave primária 
e estrangeira
Generalização/Especialização
• Tabela única X Uma tabela para cada entidade
• Não realiza junções para obtenção de dados genéricos e especializações
• Armazenamento único de chave primária
• Colunas opcionais são apenas referentes aos atributos opcionais do ponto de 
vista da aplicação
Generalização/Especialização
• Subdivisão da entidade genérica Empregado (CodEmp, Tipo, Nome, CPF, CodDept)
CodDept referencia Depto
Motorista (CodEmp, Nome, CPF, CodDept, CartHabil)
CodDept referencia Depto
Engenheiro (CodEmp, Nome, CPF, CodDept, Crea, CodRamo)
CodDept referencia Depto
CodRamo referencia Ramo
Depto (CodDepto, Nome)
Ramo (CodRamo, Nome)
ProcTexto (CodProc, Nome)
Dominio (CodEmp, CodProc)
CodEmp referencia Empregado
CodProc referencia ProcTexto
Projeto (CodProj, Nome)
Participacao (CodEmp, CodProj)
CodEmp referencia Empregado
CodProj referencia Projeto
Tabelas 
independetes
Generalização/Especialização
• Subdivisão da entidade genérica
• A chave primária CodEmp não é estrangeira nas tabelas quem implementam 
as entidades especializadas
• Quando o tipo de especialização for total, não existirá uma tabela genérica 
(Empregado)
• Elimina os problemas de colunas opcionais da primeira alternativa
• Elimina as redundâncias de chave primária da segunda alternativa
• Desvantagem: 
• Dificulta-se a garantia de unicidade do empregado  Não garantido pelo SGBD
• O SGBD não garante integridade referencial ao conjunto de empregados como um todo
• Ex.: Auto-relacionamento entre empregado
Refinamentos do modelo relacional
• O processo de tradução leva a um banco de dados correto
• O banco de dados projetado não deve ser visto como final
• Algumas vezes as regras de tradução não levam à melhor alternativa 
em termos de desempenho e redundância de dados
Refinamentos do modelo relacional
• Redundância no banco de dados
Curso
Inscrito
Prova
Avali
ação
nome Data início
Data fim
código
número data
(1,1) (0,n)
(0,n)
(1,1)
(0,n)
(0,n)
número CPF nota
Refinamentos do modelo relacional
• Redundância no banco de dados
• Curso (CodCurso, Nome, DataIni, DataFim)
• Prova (CodCurso, NumeroProva, DataProva) CodCurso referencia Curso
• Inscrito (CodCurso, NumeroInscrito, cpf) CodCurso referencia Curso
• Avaliacao (CodCurso, NumeroProva, CodCurso, NumeroInscrito, Nota) 
(CodCurso, NumeroProva) referencia Prova
(CodCurso, NumeroInscrito) referencia Inscrito
Refinamentos do modelo relacional
• Redundância no banco de dados
• Curso (CodCurso, Nome, DataIni, DataFim)
• Prova (CodCurso, NumeroProva, DataProva) CodCurso referencia Curso
• Inscrito (CodCurso, NumeroInscrito, cpf) CodCurso referencia Curso
• Avaliacao (CodCurso, NumeroProva, NumeroInscrito, Nota) (CodCurso, 
NumeroProva) referencia Prova
(CodCurso, NumeroInscrito) referencia Inscrito
Refinamentos do modelo relacional
• Manutenção de informações redundantes no banco de dados
Voo Reserva
roteiro Número de reservas
código
número passageiro
(1,1) (0,n)
Refinamentos do modelo relacional
• Simulação de atributos multivalorados
Cliente Telefone
nome
código
número
(1,1) (0,n)
Cliente
nome Número de telefone (0,n)
código
Cliente (CodCli, Nome)
Telefone (CodCli, Numero) 
CodCli referencia Cliente
Refinamentos do modelo relacional
• Simulação de atributos multivalorados
• Raramente os clientes possuem mais de dois telefones
• Não há consultas usando o telefone como critério de seleção
• Melhor implementação: Cliente (CodCli, Nome, NumTel1, NumTel2)
• Obtenção mais rápida dos telefones• Não há a necessidade de criação de chave
• Menos espaço ocupado
• Consultas usando o telefone como critério de busca ficam mais complexas
Refinamentos do modelo relacional
• Relacionamentos mutuamente exclusivos
Pessoa física Venda
nome
cpf
(0,1) (0,n)
data
Pessoa 
Jurídica
número
cnpj Razao social
(0,n)
(0,1)
PessFis (CPF, Nome)
PessJur (CNPJ, RazSoc)
Venda (Num, data, CPF, CNPJ)
CPF referenca PessFis
CNPJ referencia PessJur
Refinamentos do modelo relacional
• Relacionamentos mutuamente exclusivos
• Não é possível especificar a chave estrangeira
• A integridade referencial passa a ser implementada pela aplicação
PessFis (CPF, Nome)
PessJur (CNPJ, RazSoc)
Venda (Num, data, CPF/CNPJ, TipoComprador)
CPF referenca PessFis
CNPJ referencia PessJur
Engenharia reversa de modelos relacionais
• Modelo relacional Modelo ER
• Banco de dados desenvolvido empiricamente
• Banco de dados evoluiu e o modelo ER não foi atualizado
• Etapas
• Identificação da construção ER correspondente a cada tabela
• Definição dos relacionamentos 1:n e 1:1
• Definição dos atributos
• Definição dos identificadores de entidades e relacionamentos
Engenharia reversa de modelos relacionais
• Identificação da construção ER correspondente a cada tabela
• Disciplina (CodDisc, Nome)
• Curso (CodCr, Nome)
• Curric (CodCr, CodDisc, Obr_Opc) 
CodCr referencia Curso
CodDisc referencia Disciplina
• Sala (CodPr, CodSl, Capacidade)
CodPr referencia prédio
• Predio (CodPr, Endereco)
• Turma (Anosem, CodDisc, SiglaTur, Capacidade, CodPr, CodSl)
CodDisc referencia Disciplina
(CodPr, CodSl) referencia Sala
• Laboratorio (CodPr, CodSl, Equipamento)
(CodPr, CodSl) referencia Sala
Engenharia reversa de modelos relacionais
• Identificação da construção ER correspondente a cada tabela
• Uma tabela pode corresponder a:
• Entidade
• Relacionamento n:n
• Entidade especializada
Engenharia reversa de modelos relacionais
• Identificação da construção ER correspondente a cada tabela
• Fatores determinantes
• Chave primária composta por mais de uma chave estrangeira  Relacionamento n:n
• Ex.: Curric (CodCr, CodDisc, Obr_Opc)
• Chave primária completa forma uma chave estrangeira  Entidade especializada
• Ex.: Laboratório (CodPr, CodSl, Equipamento)
• Demais casos  Entidade
• Ex.: Curso, Sala, Disciplina, Prédio e Turma
Engenharia reversa de modelos relacionais
• Identificação da construção ER correspondente a cada tabela
Turma
Sala
LaboratórioPrédio
Currículo
Disciplina
n
n
Engenharia reversa de modelos relacionais
• Definição de relacionamentos 1:n ou 1:1
• Toda chave estrangeira que não corresponde a um relacionamento n:n e nem 
a uma entidade especializada  relacionamento 1:1 ou 1:n
• Chaves estrangeiras que:
• Contêm colunas que não fazem parte de chaves primárias
• Fazem parte de uma chave primária, a chave primária não contém outras chaves 
estrangeiras e contém colunas que não são chaves estrangeiras
• Quando a chave estrangeira faz parte da chave primária  Relacionamento 
1:n
• Quando a chave estrangeira não faz parte da chave primária  Necessário 
avaliar os dados
Engenharia reversa de modelos relacionais
• Definição de relacionamentos 1:n ou 1:1
• Toda chave estrangeira que não corresponde a um relacionamento n:n e nem 
a uma entidade especializada  relacionamento 1:1 ou 1:n
• Chaves estrangeiras que:
• Contêm colunas que não fazem parte de chaves primárias
• Fazem parte de uma chave primária, a chave primária não contém outras chaves 
estrangeiras e contém colunas que não são chaves estrangeiras
• Quando a chave estrangeira faz parte da chave primária  Relacionamento 
1:n
• Ex.: Sala e Turma
• Quando a chave estrangeira não faz parte da chave primária  Necessário 
avaliar os dados
Engenharia reversa de modelos relacionais
• Identificação da construção ER correspondente a cada tabela
Turma
Sala
LaboratórioPrédio
Currículo
Disciplina
n
n
n
1
1
n
1n
Engenharia reversa de modelos relacionais
• Definição de atributos
• Cada coluna que não seja chave estrangeira  Atributo da 
entidade/relacionamento
• Chaves estrangeiras  Relacionamentos (Já mapeados)
Engenharia reversa de modelos relacionais
• Definição de atributos
Turma
Sala
LaboratórioPrédio
Currículo
Disciplina
n
n
n
1
1
n
1
n
capacidade
Ano/sem
sigla
código
capacidade
código
nome
equipamento
código
Ende-
reço
nome código
Obrigatória/Opcional
Engenharia reversa de modelos relacionais
• Definição de atributos identificadores
• Chave primária que não é chave estrangeira  Um atributo identificador da 
entidade/relacionamento
• Chave primária e que é chave estrangeira  Identificador externo 
(relacionamento identificador)
• Ex.: CodDisc em Turma e CodPr em Sala
Engenharia reversa de modelos relacionais
• Definição de atributos
Turma
Sala
LaboratórioPrédio
Currículo
Disciplina
n
n
n
1
1
n
1
n
capacidade
Ano/sem
sigla
código
capacidade
código
nome
equipamento
código
Ende-
reço
nome código
Obrigatória/Opcional

Continue navegando