A maior rede de estudos do Brasil

Grátis
5 pág.
Mapeamento do ME-R para o MRel parte 2

Pré-visualização | Página 1 de 2

1 
BANCO DE DADOS 
 
 
 
Mapeamento do ME-R para o MRel 
 
Uma vez que é possível representar informações relevantes de um domínio de 
aplicação por meio de modelos conceituais, como o ME-R, é importante garantir que essas 
informações sejam representadas (ou mapeadas) corretamente no MRel. 
Com o objetivo de conduzir o desenvolvedor no momento do mapeamento, definiu-se 
uma sequência de passos para o mapeamento ME-R -> MRel. Esses passos proporcionam 
uma representação de um esquema conceitual de dados em ME-R para um esquema lógico de 
dados em MRel. 
Uma vez que o ME-R tem quatro construtores semânticos (conjunto de entidades, 
atributos de conjunto de entidades, conjunto de relacionamentos e atributos de conjunto de 
relacionamentos) e o Mrel tem dois (relação e atributo), a definição dos passos para o 
mapeamento deve proporcionar uma representação sem perdas significativas da semântica 
capturada pelo ME-R. 
Os passos para o mapeamento são os seguintes: 
Passo 1: Mapear os CEs Regulares (CEs que não são fracos) 
Passo 2: Mapear os CEs Fracos 
Passo 3: Mapear os CRs Binários de cardinalidade 1:1 
Passo 4: Mapear os CRs Binários de cardinalidade 1:N 
Passo 5: Mapear os CRs Binários de cardinalidade N:M 
Passo 6: Mapear os CRs de grau maior que 2 (Ternários, Quaternários, etc) 
Passo 7: Mapear Atributos Multivalorados 
 
Passo 1: Mapear os CEs Regulares 
Cria-se uma Relação para o CE com todos os atributos do CE como atributos da 
Relação. A chave do CE é a chave primária da Relação. 
Exemplo: 
NumFunc 
NomeFunc 
Salário 
 
Funcionário = {NumFunc, NomeFunc, Salário} 
Funcionário 
2 
Dependente 
Funcionário 
Departamento Funcionário 
Passo 2: Mapear os CEs Fracos 
Cria-se uma Relação para o CE Fraco com todos os atributos do CE, mais os atributos 
que são chaves das Relações que mapeiam os CEs envolvidos pelo CR Total que torna o CE 
fraco. A chave da Relação é a chave do CE Fraco concatenada com as chaves das Relações 
que mapeiam os demais CEs envolvidos no CR Total que torna o CE fraco. 
Exemplo: 
NumFunc 
NomeFunc 
Salário 
 
 
 
 
 
 
NomeDep 
Nascimento 
Parentesco 
Mapeamento do CE regular: 
Funcionário = {NumFunc, NomeFunc, Salário} 
 
Mapeamento do CE fraco: 
Dependente = {NomeDep, NumFunc, Nascimento, Parentesco} 
NumFunc – chave estrangeira referenciando Funcionário 
 
O esquema relacional final fica: 
Funcionário = {NumFunc, NomeFunc, Salário} 
Dependente = {NomeDep, NumFunc, Nascimento, Parentesco} 
NumFunc – chave estrangeira referenciando Funcionário 
 
Deve-se observar que NumFunc deve ser chave da relação Dependente, juntamente 
com NomeDep. 
 
Passo 3: Mapear os CRs Binários de cardinalidade 1:1 
Escolhe-se um dos CEs que assume um papel no CR e inclui-se na Relação que 
mapeia o CE escolhido, a chave da Relação que mapeia o outro CE que participa do CR. Os 
atributos do CR, se existirem, devem também ser incluídos como atributos da Relação que 
mapeia o CE escolhido. 
Exemplo: 
 
 
 
NumFunc 
NomeFunc 
Salário 
 
1 gerenciar 
DataIni 
 
 
 1 
 
 
NumDep 
NomeDep 
Localização 
 
Mapeamento dos CEs regulares: 
Funcionário = {NumFunc, NomeFunc, Salário} 
Departamento = {NumDep, NomeDep, Localização} 
 
Escolhe-se um dos CEs regulares (normalmente o CE em que serão feitas mais 
buscas), nesse caso Departamento: 
1 
possuir 
N 
Funcionário 
Dependente 
Departamento Funcionário 
3 
Seção Funcionário 
Projeto Funcionário Funcionário 
Departamento = {NumDep, NomeDep, Localização, NumFunc, DataIni} 
NumFunc – chave estrangeira referenciando Funcionário 
 
O esquema relacional final fica: 
Funcionário = {NumFunc, NomeFunc, Salário} 
Departamento = {NumDep, NomeDep, Localização, NumFunc, DataIni} 
NumFunc – chave estrangeira referenciando Funcionário 
 
Passo 4: Mapear os CRs Binários de cardinalidade 1:N 
Inclui-se na Relação que mapeia o CE que assume o papel com multiplicidade N no 
CR, a chave da Relação que mapeia o outro CE (papel no CR com multiplicidade 1) e os 
atributos do CR, se existirem. 
Exemplo: 
 
NumFunc 
NomeFunc 
Salário 
 
N 
trabalhar
 1 
 
 
NumSeção 
NomeSeção 
Ramal 
Mapeamento dos CEs regulares: 
Funcionário = {NumFunc, NomeFunc, Salário} 
Seção = {NumSeção, NomeSeção, Ramal} 
Mapeamento do CE de papel com multiplicidade N: 
Funcionário = {NumFunc, NomeFunc, Salário, NumSeção} 
NumSeção – chave estrangeira referenciando Seção 
 
O esquema relacional final fica: 
Seção = {NumSeção, NomeSeção, Ramal} 
Funcionário = {NumFunc, NomeFunc, Salário, NumSeção} 
NumSeção – chave estrangeira referenciando Seção 
 
Passo 5: Mapear os CRs Binários de cardinalidade N:M 
Cria-se uma Relação que mapeia o CR, a qual terá como chave primária a 
concatenação dos atributos que formam a chave primária das Relações que mapeiam os CEs 
envolvidos no CR. Os atributos do CR, se existirem, serão os atributos da Relação. 
Exemplo: 
 
NumFunc 
NomeFunc 
M
 
Salário 
 
Mapeamento dos CEs regulares: 
 
 
participar 
DataIni 
 
 
 N 
 
NumProj 
NomeProj 
Área 
Funcionário = {NumFunc, NomeFunc, Salário} 
Projeto = {NumProj, NomeProj, Área} 
 
Mapeamento do CR: 
Participa = {NumFunc, NumProj, DataIni} 
NumFunc – chave estrangeira referenciando Funcionário 
NumProj – chave estrangeira referenciando Projeto 
 
O esquema relacional final fica: 
Seção 
Projeto 
Funcionário 
4 
Disciplina Aluno 
Professor 
M 
matricular 
 N 
P 
Professor 
Aluno 
Funcionário = {NumFunc, NomeFunc, Salário} 
Projeto = {NumProj, NomeProj, Área} 
Participa = {NumFunc, NumProj, DataIni} 
NumFunc – chave estrangeira referenciando Funcionário 
NumProj – chave estrangeira referenciando Projeto 
 
Passo 6: Mapear os CRs de grau maior que 2 (Ternários, Quaternários, etc) 
Cria-se uma Relação que mapeia o CR, a qual terá como chave primária a 
concatenação dos atributos que formam a chave primária das relações que mapeiam os CEs 
envolvidos no CR. Os atributos do CR, se existirem, serão os atributos da Relação. 
Exemplo: 
NumAluno 
NomeAluno 
AnoIngresso 
Sigla 
Descrição 
NroCréditos 
 
 
 
 
Mapeamento dos CEs regulares: 
CodProf 
NomeProf 
Especialidade 
Aluno = {NumAluno, NomeAluno, AnoIngresso} 
Disciplina = {Sigla, Descrição, NroCréditos} 
Professor = {CodProf, NomeProf, Especialidade} 
 
Mapeamento do CR: 
Matricula = {NumAluno, Sigla, CodProf} 
NumAluno – chave estrangeira referenciando Aluno 
Sigla – chave estrangeira referenciando Disciplina 
CodProf – chave estrangeira referenciano Professor 
 
O esquema relacional final fica: 
Aluno = {NumAluno, NomeAluno, AnoIngresso} 
Disciplina = {Sigla, Descrição, NroCréditos} 
Professor = {CodProf, NomeProf, Especialidade} 
Matricula = {NumAluno, Sigla, CodProf} 
NumAluno – chave estrangeira referenciando Aluno 
Sigla – chave estrangeira referenciando Disciplina 
CodProf – chave estrangeira referenciano Professor 
 
Passo 7: Mapear Atributos Multivalorados 
Quando um CE ou CR tem atributos multivalorados, duas situações podem ocorrer: 
 
1a. situação: Não é possível determinar a quantidade de ocorrências de valores do 
atributo multivalorado. Nessa situação deve-se criar uma Relação para o atributo 
multivalorado, a qual tem como chave primária a chave da Relação que mapeia o CE ou CR 
que contém o atributo, concatenada ao atributo multivalorado tomado como monovalorado. 
Disciplina 
5 
Aluno 
Aluno 
Exemplo: 
NumAluno 
NroServiçoMédico 
Alergias 
Supondo que Alergias é um atributo multivalorado do CE Aluno e que não sabe-se 
previamente quantas alergias poderão ser cadastradas no máximo, então o mapeamento fica: 
 
Aluno={NumAluno, NroServiçoMédico} 
Alergia={NumAluno, Alergia} 
NumAluno – chave estrangeira referenciando Aluno 
 
2a. situação: É possível determinar a quantidade de ocorrências de valores do atributo 
multivalorado. Nessa situação deve-se criar o atributo como monovalorado na mesma Relação 
a qual o atributo multivalorado está