SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Material...
Transcript of SCC0141 - Bancos de Dados e Suas Aplicações Prof. Jose Fernando Rodrigues Junior Material...
SCC0141 - Bancos de Dados e Suas Aplicações
Prof. Jose Fernando Rodrigues Junior
Material original: Elaine Parros Machado de Sousa
Mapeamento entre EsquemasParte 1
Mapeamento entre Esquemas –Mapeamento MER MRel
▪ MER - modelo conceitual▪ usado para especificar conceitualmente a
estrutura dos dados de uma aplicação▪ Projeto Conceitual – descrição carregada de semântica
▪ Modelo Relacional - modelo de implementação▪ usado para suportar a implementação de
aplicações▪ Projeto Lógico
▪ SGBDR SGBD que se apóia no modelo relacional
Passo 1 Como mapear Conjuntos de Entidades?
USP – ICMC – GBDI 3
Disciplina
NomeNo. Créditos
Sigla
Aluno
Nome
NUSP
CPFRG
Atributo Composto
Pessoa = {Nome, NUSP, Rua, Número, CEP, Cidade}
RuaNúmeroCEP
Cidade
Pessoa
Nome
NUSP
Endereço
Passo 2 Como mapear Conjuntos de Entidades
Fracas?
USP – ICMC – GBDI 5
HorárioSala
1Turma
N Corresponde
Tem
Corresponde
HorárioSala
Disciplina
NomeNo. Créditos
1Turma
Número
N
Sigla
Horário
Aula Prática
Laboratório
Código
Disciplina = {Sigla, Nome, NroCreditos}N
1
Turma = {Número, Sigla, Horário, Sala}
Aula_Prática = {Código, Horário, Laboratório, Número, Sigla}
Entidades fracas
USP – ICMC – GBDI 7
Nome
ComissãoorganizaConferência
Data Instalaçã
o
1 1
NroMembros
Cod
Passo 3
▪ Como mapear Conjuntos de Relacionamentos Binários com Cardinalidade 1:1?
Nome
ComissãoorganizaConferência
Data Instalaçã
o
1 1
Conferência = {Nome}
Comissão = {Cod, NroMembros, Conferência, DtaInst}
NroMembros
Cod
Relacionamentos Binários
▪ Cardinalidade 1:1
Nome
ComissãoorganizaConferência
Data Instalaçã
o
1 1
Conferência = {Nome, CodComissão, DtaInst}
Comissão = {Cod, NroMembros}
NroMembros
Cod
Relacionamentos Binários
▪ Cardinalidade 1:1
Nome
ProjetoparticipaGerente1 1
Cod
Relacionamentos Binários
▪ Cardinalidade 1:1
Gerente = {Nome, Projeto}
Projeto = {Cod}
Restrição de null: na relação Gerente o atributo Projeto deve ser definido como não nulo.
(obrigatoriamente!)
Alternativas para o Mapeamento Relacionamentos Binários 1:1
Nome
ComissãoorganizaConferência
Data Instalaçã
o
1
NroMembros
Cod
1
ConfCom = {Nome, CodComissão, NroMembros, DataInstalação}
Alternativa - uma só relação:
Mapeamento usual: Conferência = {Nome, CodComissão, DataInstalação}
Comissão = {Cod, NroMembros}
Idade
Homem MulherNamora1
1
Nome
Pouca Participação
Alternativas para o Mapeamento Relacionamentos Binários 1:1
Idade
Nometempo
Considerações: o CR Namora representa relacionamentos de namoro na USP São Carlos!
Mapeamento usual
Mulher = {Nome, Idade}Homem = {Nome, Idade, NomeM,
tempo}
Muitos valores nulos!!
Mapeamento alternativo
Mulher = {Nome, Idade}
Homem = {Nome, Idade}
Namoro = {NomeH, NomeM, tempo}
Alternativas para o Mapeamento Relacionamentos Binários 1:1
Desvantagem????
Mapeamento alternativo
Mulher = {Nome, Idade}
Homem = {Nome, Idade}
Namoro = {NomeH, NomeM, tempo}
Alternativas para o Mapeamento Relacionamentos Binários 1:1
Desvantagem????Mais relações e mais junções
Diretor = {Nome, NomeAntecessor}
SucedeDiretor
1
1
Anterior
Sucessor
Papéis dos Relacionamentos
Nome
USP – ICMC – GBDI 16
Nome
Disciplina
NomeNo. Créditos
MinistraProfessor
Horário
1 N
Passo 4
Sigla
▪ Como mapear Conjuntos de Relacionamentos Binários com Cardinalidade 1:N?
Nome
Disciplina
NomeNo. Créditos
MinistraProfessor
Horário
1 N
Professor = {Nome}
Disciplina = {Sigla, Nome, Créditos, Professor, Horário}
Relacionamentos Binários
Sigla
▪ Cardinalidade 1:N
NCreditos
Nome
Disciplina
AlunoMonitora1 N
Sigla NUSPHorário
Alternativas para o Mapeamento Relacionamentos Binários 1:N
Considerações: poucos alunos monitoram alguma disciplina
Pouca Participação
Mapeamento usual:
Disciplina = {Sigla, NCréditos}
Aluno = {NUSP, Nome, Sigla, Horário}
Muitos valores nulos!!
Mapeamento alternativo:
Disciplina = {Sigla, NCréditos}
Aluno = {NUSP, Nome}
Monitora = {NUSP, Sigla, Horário}
Alternativas para o Mapeamento Relacionamentos Binários 1:N
Obs: definir restrição de null para o atributo Sigla (em Monitora), para que ele não possa ter valor nulo
USP – ICMC – GBDI 20
Passo 5▪ Como mapear Conjuntos de Relacionamentos Binários com Cardinalidade M:N?
Nome
NUSP
Disciplina
NomeNo. Créditos
Matriculado Aluno
Nota
M NSigla
Nome
NUSP
Disciplina
NomeNo. Créditos
Matriculado Aluno
Nota
M N
Disciplina = {Sigla, Nome, Créditos}
Aluno = {NUSP, Nome}
Relacionamentos Binários –
Sigla
▪ Cardinalidade M:N
Matriculado = {NUSP, Sigla, Nota}
USP – ICMC – GBDI 22
Passo 6▪ Como mapear Conjuntos de Relacionamentos com grau > 2?
NomeInício
CodP
Fornecedor
CodF
ForneceProjeto
Qtde
P N
Nome
Peça
M
NomeInício
CodP
Fornecedor
CodF
ForneceProjeto
Qtde
P N
Nome
Peça
M
Relacionamentos Ternários
Projeto = {CodP, Início}
Fornecedor = {CodF, Nome}
Peça = {Nome}
Fornece= {CodP, Nome, CodF, Qtde}
No. Créditos
NomeNome
NUSP
Disciplina
Sigla
MonitoraAluno
Horário
1 N
Nome
Professor
M
Relacionamentos Ternários
Aluno = {NUSP, Nome}
Disciplina = {Sigla, Nome, No.Créditos}
Professor = {Nome}
Monitora= {NUSP, NomeProf, Sigla, Horário}
USP – ICMC – GBDI 25
Passo 7▪ Como mapear atributos multivalorados?
Nro.Ser.Med.
Alergias
Aluno
NUSP
Nomes dos Pais
Atributos Multivalorados
Aluno = {Nome, NSerMed}
N.Ser.Med.
Alergias
AlunoNome
Alergias = {Nome, Alergia}
1a Opção de Mapeamento
Aluno = {NUSP, Nome, Pai, Mae}
Atributos Multivalorados
2a Opção de Mapeamento
Nome
Nomes Pais
Aluno
NUSP
valores possíveis: nome do pai nome da mãe
USP – ICMC – GBDI 28
1.Mapear todos os CE2.Mapear todos os CE Fracas3.Mapear todos os CR de cardinalidade 1:14.Mapear todos os CR de cardinalidade 1:N5.Mapear todos os CR de cardinalidade N:N6.Mapear todos os CR de grau maior ou igual a 37.Mapear todos os atributos multivalorados
Mapeamento entre Esquemas –Os 7 Passos do Procedimento
Exercício – mapear para o Modelo Relacional
endereço
valordata
Representante RegiãoAtua1 1
Cliente
Pertence
1
N
Venda
Contato
Produto
É Feito
É Feita
Pertence
1N
NN N
1
qtde
data
nome
nota
preçocod
nomeCPF
RG
nomeCNPJ
telefones
estado