Baixe o app para aproveitar ainda mais
Prévia do material em texto
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áassociado. Exemplo: NumAluno NroServiçoMédico GrauLentes Supondo que Graulentes é um atributo multivalorado do CE Aluno e que sabe-se previamente que existem sempre apenas dois valores de graus de lentes a serem cadastrados, então o mapeamento fica: Aluno={NumAluno, NroServiçoMédico, GrauLenteEsq, GrauLenteDir} (0,N) Aluno (2,2) Aluno
Compartilhar