banco de dados - mapeamento mer - relacional
TRANSCRIPT
![Page 1: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/1.jpg)
![Page 2: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/2.jpg)
![Page 3: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/3.jpg)
• Após o projeto conceitual do banco de dados, passamos para o projeto lógico;
• Nesta etapa, recebemos um esquema conceitual e o convertemos para um esquema lógico;
– Particularmente, vamos estudar como converter um diagrama entidade-relacionamento para um conjunto de tabelas do modelo relacional;
• Esta conversão é feita através de sete regras;
Mapeamento MER - Relacional
![Page 4: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/4.jpg)
• Regra 1: Mapeamento de Entidades Fortes
– Cada entidade forte deve ser transformada em uma relação;
– Todos os atributos simples da entidade devem ser incluídos na relação;
– Apenas os componentes simples dos atributos compostos devem ser incluídos na relação;
– Um dos atributos chaves da entidade deve ser escolhido como chave primária da relação;
Mapeamento MER - Relacional
![Page 5: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/5.jpg)
• Regra 1: Mapeamento de Entidades Fortes
– Exemplo: Seja a entidade Empregado abaixo:
Mapeamento MER - Relacional
![Page 6: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/6.jpg)
• Regra 1: Mapeamento de Entidades Fortes:
– Exemplo: Pela aplicação da Regra1, temos a seguinte relação:
• Empregado (Matrícula, Nome, Salário, Rua, Número, Bairro, Cidade, UF, CEP);
Mapeamento MER - Relacional
![Page 7: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/7.jpg)
• Regra 2: Mapeamento de Entidades Fracas
– Cada entidade fraca deve ser transformada em uma relação, seguindo as mesmas restrições da Regra 1 para os seus atributos simples e compostos;
– Incluir os atributos da chave primária da tabela dominante como chave estrangeira da relação;
– A chave primária da relação deve ser a combinação dos atributos da chave primária da relação dominante e da chave da entidade fraca;
Mapeamento MER - Relacional
![Page 8: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/8.jpg)
• Regra 2: Mapeamento de Entidades Fracas
– Exemplo: Sejam as duas entidades abaixo relacionadas;
Mapeamento MER - Relacional
![Page 9: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/9.jpg)
• Regra 2: Mapeamento de Entidades Fracas
– Exemplo:
• Temos as seguintes relações:
• Empregado (Matrícula, Nome, Salário, Rua, Número, Bairro, Cidade, UF, CEP);
• Dependente (MatriculaEmpregado, Nome, Parentesco), pela aplicação da Regra 2;
Mapeamento MER - Relacional
![Page 10: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/10.jpg)
• Regra 3: Mapeamento de Relacionamentos Um para Um:
– Deve-se identificar as entidades que participam do relacionamento;
– Existem três soluções possíveis:
• Escolha da chave estrangeira;
• Relacionamento incorporado;
• Relação de relacionamento;
Mapeamento MER - Relacional
![Page 11: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/11.jpg)
• Regra 3: Mapeamento de Relacionamentos Um para Um:
– Escolha da chave estrangeira:
• Deve-se escolher uma das relações e inserir nela a chave estrangeira da outra relação; – Geralmente, as entidades com participação total no
relacionamento exercem este papel, ou seja recebem a chave estrangeira;
• Incluir também todos os atributos do relacionamento como atributos da tabela;
• É a solução mais utilizada para mapear este tipo de relacionamento;
Mapeamento MER - Relacional
![Page 12: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/12.jpg)
• Regra 3: Mapeamento de Relacionamentos Um para Um:
– Escolha da chave estrangeira:
• Exemplo: Sejam as entidades mostradas abaixo:
Mapeamento MER - Relacional
![Page 13: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/13.jpg)
• Regra 3: Mapeamento de Relacionamentos Um para Um:
– Escolha da chave estrangeira:
• Exemplo: – Temos as seguintes relações:
– Empregado (Matrícula, Nome, Salário, Rua, Número, Bairro, Cidade, UF, CEP), pela aplicação da Regra 1;
– Departamento (Código, Nome, Gerente, DataInício), pela aplicação da Regra 3 com a escolha da chave estrangeira;
Mapeamento MER - Relacional
![Page 14: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/14.jpg)
• Regra 3: Mapeamento de Relacionamentos Um para Um:
– Relação incorporada:
• Incorporar as duas entidades e o relacionamento em uma única relação;
• Solução utilizada quando as duas entidades têm participação total no relacionamento;
– Relação de relacionamento:
• O relacionamento é transformado em uma relação;
• A relação incorpora a chave primária das duas entidades como chave estrangeira;
Mapeamento MER - Relacional
![Page 15: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/15.jpg)
• Regra 4: Mapeamento de Relacionamentos Um para Muitos:
– Deve-se incluir a chave primária da relação que representa a entidade que aparece do lado “1” do relacionamento como chave estrangeira na outra relação;
– Isto acontece porque cada instância da outra entidade está relacionada a apenas uma instância da outra entidade;
– Incluir também os atributos do relacionamento na relação que contém a chave estrangeira;
Mapeamento MER - Relacional
![Page 16: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/16.jpg)
• Regra 4: Mapeamento de Relacionamentos Um para Muitos:
– Exemplo: Sejam as duas entidades abaixo relacionadas;
Mapeamento MER - Relacional
![Page 17: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/17.jpg)
• Regra 4: Mapeamento de Relacionamentos Um para Muitos
– Exemplo:
• Temos as seguintes relações;
• Departamento (Codigo, Nome);
• Empregado (Matrícula, Nome, Salário, Rua, Número, Bairro, Cidade, UF, CEP, CodDepto);
Mapeamento MER - Relacional
![Page 18: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/18.jpg)
• Regra 5: Mapeamento de Relacionamentos Muitos para Muitos
– Deve-se criar uma nova relação para o relacionamento;
– Incluir as chaves primárias das duas entidades que participam do relacionamento na relação;
• A combinação destas chaves formará a chave primária da relação;
– Incluir também na relação os atributos do relacionamento;
Mapeamento MER - Relacional
![Page 19: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/19.jpg)
• Regra 5: Mapeamento de Relacionamentos Muitos para Muitos
– Exemplo: Sejam as entidades abaixo:
•
Mapeamento MER - Relacional
![Page 20: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/20.jpg)
• Regra 5: Mapeamento de Relacionamentos Muitos para Muitos
– Exemplo:
• Teremos as seguintes relações:
• Empregado (CodEmp, Nome, Salário, Endereço);
• Projeto (CodProjeto, NomeProjeto);
• Trabalha(CodEmp, CodProjeto, NumHoras)
Mapeamento MER - Relacional
![Page 21: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/21.jpg)
• Regra 6: Mapeamento de atributos multivalorados
– Deve-se criar uma nova relação para o atributo multivalorado;
– Inlcuir na relação o atributo multivalorado;
– Inlcuir a chave primária da relação que representa a entidade ao qual o atributo está associado como chave estrangeira;
– A chave primária será a combinação da chave estrangeira e do atributo multivalorado;
Mapeamento MER - Relacional
![Page 22: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/22.jpg)
• Regra 6: Mapeamento de atributos multivalorados
– Exemplo: Vamos considerar a entidade abaixo:
Mapeamento MER - Relacional
![Page 23: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/23.jpg)
• Regra 6: Mapeamento de atributos multivalorados
– Exemplo:
• Teremos as seguintes relações:
• Cliente (CodCliente, Nome, CPF, Salário);
• TelefoneCliente (CodCliente, Telefone);
Mapeamento MER - Relacional
![Page 24: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/24.jpg)
• Regra 7: Mapeamento de relacionamentos n-ários
– Para relacionamentos n-ários (n>2), deve-se criar uma nova relação para representar o relacionamento;
– As chaves primárias de cada relação que representa uma entidade participante do relacionamento devem ser inseridas na relação;
Mapeamento MER - Relacional
![Page 25: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/25.jpg)
• Regra 7: Mapeamento de relacionamentos n-ários
– Os atributos do relacionamento também devem ser inclusos na relação;
– A chave primária da relação será a combinação das chaves primárias das relações;
Mapeamento MER - Relacional
![Page 26: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/26.jpg)
• Regra 7: Mapeamento de relacionamentos n-ários
– Exemplo: Seja o relacionamento abaixo:
Mapeamento MER - Relacional
![Page 27: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/27.jpg)
• Regra 7: Mapeamento de relacionamentos n-ários
– Exemplo:
• Teremos as seguintes relações:
• Aluno (Matrícula, Nome, Telefone);
• Disciplina (Código, Nome, CargaHorária);
• Semestre (Codigo, Titulo);
• Matrícula (MatrículaAluno, CodDisciplina, CodSemestre)
Mapeamento MER - Relacional
![Page 28: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/28.jpg)
• Regra 8: Mapeamento de Generalização
– Duas alternativas:
• Criação de uma tabela para cada entidade mapeada: – As entidades mais especializadas recebem a chave primária da
tabela genérica
• Criação de uma tabela para cada entidade especializada: – As tabelas especializadas agregam todos os atributos
presentes na entidade genérica
Mapeamento MER - Relacional
![Page 29: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/29.jpg)
• Vamos agora converter um DER que descreve um domínio acadêmico para o modelo relacional;
• A conversão será feita usando as sete regras do algoritmo de mapeamento;
• O DER utilizado é mostrado no próximo slide;
Estudo de Caso
![Page 30: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/30.jpg)
![Page 31: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/31.jpg)
• Pela Regra 1, temos o mapeamento das entidades fortes;
• Obtemos as seguintes relações:
– Departamento (Codigo, Nome);
– Professor (Matrícula, Nome);
– Curso (Codigo, Nome);
– Disciplina (Codigo, Nome, CargaHoraria);
– Semestre (Codigo, Titulo);
– Aluno (Matrícula, Nome, Telefone);
Estudo de Caso
![Page 32: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/32.jpg)
• O mapeamento da classe Dependente é feito pela Regra 2:
– Encontramos a seguinte relação:
• Dependente(MatriculaProfessor, Nome, Parentesco);
Estudo de Caso
![Page 33: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/33.jpg)
• Pela Regra 3, mapeamos o relacionamento “gerenciado” entre Departamento e Professor;
– A relação Departamento fica com a seguinte forma:
• Departamento (Codigo, Nome, Gerente);
• O atributo Gerente é uma chave estrangeira que faz referência à matrícula do professor que gerencia o departamento;
• O método usado foi o da escolha da chave estrangeira;
Estudo de Caso
![Page 34: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/34.jpg)
• Pela Regra 4, mapeamos os seguintes relacionamentos:
– O relacionamento “possui” entre Departamento e Professor:
• Professor (Matrícula, Nome, CodDepto);
– O relacionamento “oferece” entre Departamento e Curso:
• Curso (Codigo, Nome, CodDepto);
Estudo de Caso
![Page 35: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/35.jpg)
• Pela Regra 4, mapeamos os seguintes relacionamentos:
– O relacionamento “responsável” entre Departamento e Disciplina;
• Disciplina (Codigo, Titulo, CodDepto);
– O relacionamento “possui” entre Curso e Aluno;
– Aluno (Matrícula, CodCurso, Nome, Telefone);
Estudo de Caso
![Page 36: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/36.jpg)
• Pela Regra 5, mapeamos os seguintes relacionamentos:
– O relacionamento “possui” entre Curso e Disciplina;
• DisciplinaCurso (CodDisciplina, CodCurso);
• Note que as chaves primárias das duas tabelas são colocadas como chaves estrangeiras na nova relação;
• A combinação das duas chaves estrangeiras forma a chave primária da relação;
Estudo de Caso
![Page 37: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/37.jpg)
• Pela Regra 6, mapeamos o atributo multivalorado “Telefone”, da classe Aluno:
– TelefoneAluno (MatrículaAluno, Telefone);
– Note que uma nova relação é criada para mapear este atributo;
– A chave primária da tabela que representa a entidade ao qual o atributo está relacionado é incluída como chave estrangeira na relação criada;
Estudo de Caso
![Page 38: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/38.jpg)
• Pela Regra 7, mapeamos os seguintes relacionamentos:
– O relacionamento “leciona”, entre Professor, Disciplina e Semestre;
• Leciona (MatrículaProfessor, CodDisciplina, CodSemestre);
• Note que a chave primária das relações que representam as três entidades que compõem o relacionamento são inclusas como chaves estrangeiras;
• A combinação destas chaves formam a chave primária da relação;
Estudo de Caso
![Page 39: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/39.jpg)
• Pela Regra 7, mapeamos os seguintes relacionamentos:
– O relacionamento “cursada”, entre Disciplina, Aluno e Semestre;
• MatrículaDisciplina (CodDisciplina, MatrículaAluno, CodSemestre);
Estudo de Caso
![Page 40: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/40.jpg)
• No fim, temos o seguinte esquema lógico relacional:
– Departamento (Codigo, Nome, Gerente);
– Professor (Matrícula, Nome, CodDepto);
– Curso (Codigo, Nome, CodDepto);
– Disciplina (Codigo, Nome, CargaHoraria, CodDepto);
– Semestre (Codigo, Titulo);
– Aluno (CodCurso, Matrícula, Nome, Telefone);
Estudo de Caso
![Page 41: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/41.jpg)
• No fim, temos o seguinte esquema lógico relacional:
– DisciplinaCurso (IDDisciplina, IDCurso);
– TelefoneAluno (MatrículaAluno, IDCurso, Telefone);
– Leciona (MatrículaProfessor, IDDisciplina, IDSemestre);
– MatrículaDisciplina (IDDisciplina, MatrículaAluno, IDCurso, IDSemestre);
– Dependente(MatriculaProfessor, Nome, Parentesco);
Estudo de Caso
![Page 42: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/42.jpg)
• Para facilitar o seu entendimento, o esquema relacional gerado deve ser descrito em um dicionário de dados;
• Este dicionário deve conter as seguintes informações:
– Descrição de todas as relações;
– Descrição de cada atributo das relações;
• Tipo de dado, restrições, etc;
Considerações Finais
![Page 43: Banco de dados - Mapeamento MER - Relacional](https://reader033.vdocuments.com.br/reader033/viewer/2022042611/5883da981a28ab62358b4fc7/html5/thumbnails/43.jpg)
• Exemplo de descrição da relação Departamento:
Departamento: Relação que armazena os dados de cada departamento da instituição
Atributo Descrição Tipo Restrições
Codigo Atributo que representa o código de identificação
do departamento
String Chave Primária
Nome Atributo que representa o nome do departamento
String Não Nulo
Gerente Atributo que armazena o código do professor que
gerencia o departamento
String Não Nulo;
Chave estrangeira que referencia o atributo
“Matrícula” da relação “Professor”
Considerações Finais