Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Banco de dados - Mapeamento MER - Relacional

4,071 views

Published on

Primeiros passos para conversão de um diagrama entidade-relacionamento para tabelas do modelo relacional.

Published in: Education

Banco de dados - Mapeamento MER - Relacional

  1. 1. • 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
  2. 2. • 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
  3. 3. • Regra 1: Mapeamento de Entidades Fortes – Exemplo: Seja a entidade Empregado abaixo: Mapeamento MER - Relacional
  4. 4. • 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
  5. 5. • 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
  6. 6. • Regra 2: Mapeamento de Entidades Fracas – Exemplo: Sejam as duas entidades abaixo relacionadas; Mapeamento MER - Relacional
  7. 7. • 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
  8. 8. • 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
  9. 9. • 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
  10. 10. • Regra 3: Mapeamento de Relacionamentos Um para Um: – Escolha da chave estrangeira: • Exemplo: Sejam as entidades mostradas abaixo: Mapeamento MER - Relacional
  11. 11. • 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
  12. 12. • 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
  13. 13. • 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
  14. 14. • Regra 4: Mapeamento de Relacionamentos Um para Muitos: – Exemplo: Sejam as duas entidades abaixo relacionadas; Mapeamento MER - Relacional
  15. 15. • 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
  16. 16. • 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
  17. 17. • Regra 5: Mapeamento de Relacionamentos Muitos para Muitos – Exemplo: Sejam as entidades abaixo: • Mapeamento MER - Relacional
  18. 18. • 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
  19. 19. • 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
  20. 20. • Regra 6: Mapeamento de atributos multivalorados – Exemplo: Vamos considerar a entidade abaixo: Mapeamento MER - Relacional
  21. 21. • Regra 6: Mapeamento de atributos multivalorados – Exemplo: • Teremos as seguintes relações: • Cliente (CodCliente, Nome, CPF, Salário); • TelefoneCliente (CodCliente, Telefone); Mapeamento MER - Relacional
  22. 22. • 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
  23. 23. • 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
  24. 24. • Regra 7: Mapeamento de relacionamentos n- ários – Exemplo: Seja o relacionamento abaixo: Mapeamento MER - Relacional
  25. 25. • 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
  26. 26. • 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
  27. 27. • 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
  28. 28. • 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
  29. 29. • O mapeamento da classe Dependente é feito pela Regra 2: – Encontramos a seguinte relação: • Dependente(MatriculaProfessor, Nome, Parentesco); Estudo de Caso
  30. 30. • 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
  31. 31. • 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
  32. 32. • 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
  33. 33. • 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
  34. 34. • 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
  35. 35. • 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
  36. 36. • Pela Regra 7, mapeamos os seguintes relacionamentos: – O relacionamento “cursada”, entre Disciplina, Aluno e Semestre; • MatrículaDisciplina (CodDisciplina, MatrículaAluno, CodSemestre); Estudo de Caso
  37. 37. • 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
  38. 38. • 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
  39. 39. • 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
  40. 40. • 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

×