Buscar

05 Mapeamento MER-Relacional

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
Importância da boa modelagem!
Como assim?! Você não percebeu que aqui existe um erro ?!
Não lembra ?! Você disse que queria assim !!
Esses caras nunca ouviram falar de modelagem !
Cliente
Gerente
Operário Esperto !!
*
Introdução
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;
*
Modelagem para facilitar a comunicação
Uma vez definido o MER agora é possível caminhar para uma modelagem mais precisa (mais próxima da implementação), por exemplo, a Modelagem Relacional.
Surge a dúvida ... “não é mais interessante modelar logo no relacional ?!”
	Resposta: Não é aconselhável. É muito mais fácil para o cliente entender o MER, assim evitamos “ruídos” na comunicação, ou seja, problemas de entendimento.
*
Transformação: MER  MR
*
Algoritmo
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;
*
Algoritmo
Regra 1: Mapeamento de Entidades Fortes
Exemplo: Seja a entidade Empregado abaixo:
*
Algoritmo
Regra 1: Mapeamento de Entidades Fortes:
Exemplo (cont..): Pela aplicação da Regra1, temos a seguinte relação:
Empregado (Matrícula, Nome, Salário, Rua, Número, Bairro);
Ou seja:
MER
MR
Pessoa (CPF, Nome, Telefone)
*
Algoritmo
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;
*
Algoritmo
Regra 2: Mapeamento de Entidades Fracas
Exemplo: Sejam as duas entidades abaixo relacionadas;
*
Algoritmo
Regra 2: Mapeamento de Entidades Fracas
Exemplo:
Temos as seguintes relações:
Cliente (CPF, RG, Nome, Endereço), pela aplicação da Regra 1;
Dependente (CPF, Nome, Parentesco), pela aplicação da Regra 2;
Ou seja:
MER
MR
Dependente(CPF, Nome, Parentesco)
*
Regras: Relacionamento
A cardinalidade do relacionamento vai determinar como será a transformação, podendo ser:
*
Algoritmo
Regra 3: Mapeamento de Relacionamentos binários 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;
*
Algoritmo
Regra 3: Mapeamento de Relacionamentos binários 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;
Incluir também todos os atributos do relacionamento como atributos da tabela;
É a solução mais utilizada para mapear este tipo de relacionamento;
*
Algoritmo
Regra 3: Mapeamento de Relacionamentos binários Um para Um:
Escolha da chave estrangeira:
Exemplo: Sejam as entidades mostradas abaixo:
*
Algoritmo
Regra 3: Mapeamento de Relacionamentos binários Um para Um:
Escolha da chave estrangeira:
Exemplo: 
Temos as seguintes relações:
Empregado (Matrícula, Nome, Salário, Endereço)
Departamento(Código, Nome)
Pela aplicação da Regra 1;
Departamento (Código, Nome, Matrícula, DataInício)
Pela aplicação da Regra 3 com a escolha da chave estrangeira;
*
Algoritmo
Regra 3: Mapeamento de Relacionamentos binários Um para Um:
Escolha da chave estrangeira:
Outro Exemplo: 
MER
MR
Computador (Serial, Descrição)
Bolsa (Código, Descrição, SerialComp)
*
Algoritmo
Regra 3: Mapeamento de Relacionamentos binários Um para Um:
Relacionamento unificado:
Incorporar as duas entidades e o relacionamento, com seus atributos se houver, em uma única relação;
Solução utilizada quando as duas entidades têm participação total no relacionamento; 
Escolhemos como chave primária a chave da entidade que mais influência no relacionamento, na visão do mundo real.
*
Algoritmo
Regra 3: Mapeamento de Relacionamentos binários Um para Um:
Relacionamento unificado:
Exemplo: 
Temos as seguintes relações:
Empregado (Matrícula, Nome, Salário, Endereço)
Projeto (Número, Nome)
Pela aplicação da Regra 1;
Trabalha_Projeto(Matrícula, Nome, Salário, Endereço, NumeroProjeto, NomeProjeto, horas)
Pela aplicação da Regra 3 com a escolha do relacionamento unificado;
*
Algoritmo
Regra 3: Mapeamento de Relacionamentos binários Um para Um:
Relacionamento unificado:
Outro exemplo: 
MER
MR
Programa (NumPrograma, Descrição, CodApresentador, NomeApresentador)
*
Algoritmo
Regra 3: Mapeamento de Relacionamentos binários Um para Um:
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;
A tabela criada serve de referência cruzada para às chaves primárias das duas relações
Serve como uma tabela de busca
*
Algoritmo
Regra 3: Mapeamento de Relacionamentos binários Um para Um:
Relação de relacionamento:
Exemplo: 
Temos as seguintes relações:
Empregado (Matrícula, Nome, Salário, Endereço)
Projeto (Número, Nome)
Pela aplicação da Regra 1;
Trabalha_Projeto(MatrículaEmp, NumeroProjeto, horas)
Pela aplicação da Regra 3 com a escolha da relação de relacionamento;
*
Algoritmo
Regra 4: Mapeamento de Relacionamentos binários 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 de uma 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;
*
Algoritmo
Regra 4: Mapeamento de Relacionamentos binários Um para Muitos:
Exemplo: Sejam as duas entidades abaixo relacionadas; 
*
Algoritmo
Regra 4: Mapeamento de Relacionamentos binários Um para Muitos
Exemplo: 
Temos as seguintes relações;
Departamento (CodDepto, NomeDep);
Empregado (Matrícula, Nome, Salário, Endereço, CodDepto);
*
Algoritmo
Regra 4: Mapeamento de Relacionamentos binários Um para Muitos
Outro exemplo: 
MER
MR
Canal (Número, Descrição)
Programa (Código, Canal_Descrição, NumCanal)
*
Algoritmo
Regra 5: Mapeamento de Relacionamentos binários 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;
*
Algoritmo
Regra 5: Mapeamento de Relacionamentos binários Muitos para Muitos
Exemplo: Sejam as entidades abaixo:
 
NumHoras
*
Algoritmo
Regra 5: Mapeamento de Relacionamentos binários Muitos para Muitos
Exemplo:
Teremos as seguintes relações:
Empregado (CodEmp, Nome, Salário, Endereço);
Projeto (CodProjeto, NomeProjeto);
Trabalha(CodEmp,
CodProjeto, NumHoras)
*
Algoritmo
Regra 5: Mapeamento de Relacionamentos binários Muitos para Muitos
Outro Exemplo:
MER
MR
Professor (Código, Nome)
Disciplina (Número, Descrição)
Turma (CodProf, NumDisc, Qtde_Alunos)
*
Algoritmo
Regra 6: Mapeamento de atributos multivalorados
Deve-se criar uma nova relação para o atributo multivalorado;
Incluir na relação o atributo multivalorado;
Incluir 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; 
*
Algoritmo
Regra 6: Mapeamento de atributos multivalorados
Exemplo: Vamos considerar a entidade abaixo:
Telefone
Salário
*
Algoritmo
Regra 6: Mapeamento de atributos multivalorados
Exemplo:
Teremos as seguintes relações:
Cliente (CodCliente, Nome, CPF, Salário);
TelefoneCliente (CodCliente, Telefone);
*
Algoritmo
Regra 6: Mapeamento de atributos multivalorados
Outro Exemplo:
MER
MR
Pessoa (CPF, Nome)
TelefonePessoa (CPF_Pessoa,Num_Telefone)
*
Algoritmo
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;
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;
*
Algoritmo
Regra 7: Mapeamento de relacionamentos n-ários
Exemplo: Seja o relacionamento abaixo:
Aluno
Disciplina
Semestre
Matrícula
Nome
Telefone
Código
Nome
C. Horária
CodSemestre
Início
Término
Matrícula
N
N
1
*
Algoritmo
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 (CodSemestre, Início, Término);
Matrícula (MatrículaAluno, CodDisciplina, CodSemestre) 
*
Estudo de Caso
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
*
Estudo de Caso
Pela Regra 1, temos o mapeamento das entidades fortes;
Obtemos as seguintes relações:
Aluno (Matrícula, Nome
Departamento (CodDep, Nome
Professor (Matrícula, NomeProf);
Curso (IDCurso, NomeCurso
Disciplina (IDDisciplina, NomeDisc
Semestre (IDSemestre, Início, Fim
*
Estudo de Caso 
Como não existem entidades fracas pulamos a regra 2:
Continuamos com as seguintes relações:
Aluno (Matrícula, Nome
Departamento (CodDep, Nome
Professor (Matrícula, NomeProf);
Curso (IDCurso, NomeCurso
Disciplina (IDDisciplina, NomeDisc
Semestre (IDSemestre, Início, Fim
*
Estudo de Caso
Pela Regra 3, mapeamos o relacionamento “gerenciado” entre Departamento e Professor;
A relação Departamento fica com a seguinte forma:
Departamento (CodDep, 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
Pela Regra 4, mapeamos os seguintes relacionamentos:
O relacionamento “possui” entre Departamento e Professor:
Professor (Matrícula, NomeProf, CodDepto);
O relacionamento “oferece” entre Departamento e Curso:
Curso (IDCurso, NomeCurso, CodDepto);
O relacionamento “responsável” entre Departamento e Disciplina;
Disciplina (IDDisciplina, NomeDisc, CodDepto);
*
Estudo de Caso
Pela Regra 5, mapeamos os seguintes relacionamentos:
O relacionamento “possui” entre Curso e Disciplina;
DisciplinaCurso (IDDisciplina, IDCurso);
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
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
Pela Regra 7, mapeamos os seguintes relacionamentos:
O relacionamento “leciona”, entre Professor, Disciplina e Semestre;
Leciona (MatrículaProfessor, IDDisciplina, IDSemestre);
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; 
O relacionamento “cursada”, entre Disciplina, Aluno e Semestre;
MatrículaDisciplina (IDDisciplina, MatrículaAluno, IDSemestre, matrícula);
*
Estudo de Caso
No fim, temos o seguinte esquema lógico relacional:
Departamento (CodDep, Nome, Gerente);
Professor (Matrícula, NomeProf, CodDepto);
Curso (IDCurso, NomeCurso, CodDepto);
Disciplina (IDDisciplina, NomeDisc, CodDepto);
Semestre (IDSemestre, Início, Fim);
Aluno (Matrícula, Nome, IDCurso);
DisciplinaCurso (IDDisciplina, IDCurso);
TelefoneAluno (MatrículaAluno, Telefone);
Leciona (MatrículaProfessor, IDDisciplina, IDSemestre);
MatrículaDisciplina (IDDisciplina, MatrículaAluno, IDSemestre, CH);
*
Regras: Generalização / Especialização
Três alternativas de implementação:
*
Regras: Generalização / Especialização (1)
Uma tabela para cada entidade.
MER
MR
Pessoa (Código , Nome)
P_Física (Cod_Pessoa, CPF, Sexo)
Cod_Pessoa referencia Pessoa (Código)
P_Jurídica (Cod_Pessoa, CNPJ, Nome_Fantasia)
Cod_Pessoa referencia Pessoa (Código)
*
Regras: Generalização / Especialização (2)
Tabela única para toda hierarquia.
MER
MR
Pessoa (Código, Nome, tipo, CPF, Sexo, CNPJ e Nome_Fantasia)
Atributo Verificador
*
Regras: Generalização / Especialização (3)
Tabela apenas para as entidades especializadas.
MER
MR
P_Física (Código, Nome, CPF, Sexo)
P_Jurídica (Código, Nome, CNPJ, Nome_Fantasia)
*
Regras: Generalização / Especialização
Comparando as três soluções:
Tabela para cada Entidade:
Vantagens
É a que melhor reflete o modelo conceitual
As colunas desta relação são correspondentes aos atributos específicos da entidade.
Desvantagens
Necessidade de realizar junções entre as tabelas.
Baixo desempenho da manipulação das relações
Inserções e remoções e junções.
*
Regras: Generalização / Especialização
Comparando as três soluções:
Tabela Única:
Vantagens
Consulta rápida;
Todos os dados estão em uma única tupla, não sendo necessário efetuar junções;
A chave primária é armazenada uma única vez.
Desvantagens
Existe a ocorrência de muitos campos nulos;
Quando uma instância é modificada na superentidade, cada uma das relações correspondentes as suas entidades filhas devem ser modificadas.
*
Regras: Generalização / Especialização
Comparando as três soluções:
Tabela apenas para as Entidades especializadas:
Vantagens
A implementação é simples;
Há uma facilidade nas situações em que instâncias mudam de entidade.
Desvantagens
Há muitas junções e não pode ser implementada se possuir relacionamento envolvendo a entidade genérica.
Alteração de esquema na adição ou remoção de atributos.
Tem o potencial de desperdiçar bastante espaço de armazenamento:
hierarquia com várias entidades “irmãs”
instâncias pertencem a uma, e somente uma, entidade da hierarquia.
*
Regras: Generalização / Especialização
Atenção !!
Se existir um relacionamento com a entidade mais genérica não pode ser aplicada a regra 3 (tabelas apenas para as entidades especializadas).
*
Regras: Agregação
Implementação:
Criar tabela para cada entidade;
A agregação deve ser vista como dois relacionamentos e deve criar tabela de acordo com as regras aplicadas aos relacionamentos.
*
Regras: Agregação
Exemplo:
MER
MR
Médico (CRM, Nome)
Paciente (Codigo, Nome)
Medicamento (Codigo, Descricao)
Medico_Pac (Codigo, CRM, Cod_Paciente, Data)
CRM referencia Médico (CRM);
Cod_Paciente referencia Paciente (Codigo)
Cons_Medicamento (Cod_Consulta, Cod_Medicamento)
Cod_Consulta referencia Medico_Pac (Codigo);
Cod_Medicamento referencia Medicamento (Codigo)
*
Pergunta???
Qual das situações deverá ser adotada no 
mapeamento de especialização/generalização?
A prioridade da escolha deve ser adequada à
 necessidade do cliente e à estratégia de ter
 ou manter uma base de dados 
consistente, eficiente e rápida!
*
Quadro Resumo: Regras Gerais
*
Considerações Finais
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
Exemplo de descrição da relação Departamento:
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais