Banco de dados - Mapeamento MER - Relacional

15,928 views 43 slides Sep 24, 2015
Slide 1
Slide 1 of 43
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43

About This Presentation

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


Slide Content

•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

•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

•Regra 1: Mapeamento de Entidades Fortes
–Exemplo: Seja a entidade Empregado abaixo:




Mapeamento MER - Relacional

•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

•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

•Regra 2: Mapeamento de Entidades Fracas
–Exemplo: Sejam as duas entidades abaixo
relacionadas;




Mapeamento MER - Relacional

•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

•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

•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

•Regra 3: Mapeamento de Relacionamentos
Um para Um:
–Escolha da chave estrangeira:
•Exemplo: Sejam as entidades mostradas abaixo:



Mapeamento MER - Relacional

•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

•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

•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

•Regra 4: Mapeamento de Relacionamentos
Um para Muitos:
–Exemplo: Sejam as duas entidades abaixo
relacionadas;


Mapeamento MER - Relacional

•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

•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

•Regra 5: Mapeamento de Relacionamentos
Muitos para Muitos
–Exemplo: Sejam as entidades abaixo:




Mapeamento MER - Relacional

•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

•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

•Regra 6: Mapeamento de atributos
multivalorados
–Exemplo: Vamos considerar a entidade abaixo:





Mapeamento MER - Relacional

•Regra 6: Mapeamento de atributos
multivalorados
–Exemplo:
•Teremos as seguintes relações:
•Cliente (CodCliente, Nome, CPF, Salário);
•TelefoneCliente (CodCliente, Telefone);



Mapeamento MER - Relacional

•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

•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

•Regra 7: Mapeamento de relacionamentos n-
ários
–Exemplo: Seja o relacionamento abaixo:


Mapeamento MER - Relacional

•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

•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

•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

•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

•O mapeamento da classe Dependente é feito
pela Regra 2:
–Encontramos a seguinte relação:
•Dependente(MatriculaProfessor, Nome, Parentesco);

Estudo de Caso

•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

•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

•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

•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

•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, 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

•Pela Regra 7, mapeamos os seguintes
relacionamentos:
–O relacionamento “cursada”, entre Disciplina,
Aluno e Semestre;
•MatrículaDisciplina (CodDisciplina, MatrículaAluno,
CodSemestre);

Estudo de Caso

•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

•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

•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:
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