MER
- Relacionamentos
1
MER - Relacionamentos
Dado os relacionamentos:
Fig. 1
Funcionários
Fig. 2
Funcionários
Fig. 3
Funcionários
N
1
N
Lotações
Gerenciamentos
Participações
1
1
N
Departamentos
Departamentos
Projetos
E a seguinte exigência: Não pode haver nenhum funcionário que
não esteja lotado em um departamento (Fig.1); Não deve haver
nenhum departamento sem gerente (Fig.2); Não deve haver
nenhum projeto sem algum funcionário que participe dele.
2
1
MER - Relacionamentos
As restrições apresentadas deverão ser representadas no modelo
utilizando uma representação gráfica específica. Quando uma
restrição é identificada, incluímos uma bolinha cheia na saída da
aresta que une um losango ao retângulo.
Não pode haver nenhum funcionário que não esteja
lotado em um departamento
N
Projetos
N
Participações
N
Lotações
1
Funcionários
Departamentos
1
Não deve haver nenhum projeto
sem algum funcionário que
participe dele
Gerenciamentos
1
Não deve haver nenhum
departamento sem
gerente
MER - Relacionamentos
Observar no diagrama que:
1. Podem existir funcionários que não são gerentes e funcionários que
não participam de projeto nenhum;
2. Pode haver departamentos sem funcionários, por exemplo, no caso
de departamentos recém-criados.
N
Projetos
N
Participações
N
Lotações
Funcionários
1
Departamentos
1
Gerenciamentos
1
2
MER - Relacionamentos
Totalidade Mínima:
Suponhamos
agora
que
cada
departamento
deva
necessariamente ter algum funcionário nele lotado e um
departamento não possa ser criado com menos de 10
funcionários. Isso significa que cada elemento de Departamentos
deve ocorrer em no mínimo 10 pares na entidade Lotações.
Como poderíamos representar essa situação ?
A restrição anterior pode ser representada graficamente da
seguinte forma:
Funcionários
N
1
Lotações
Departamentos
10
MER - Relacionamentos
Observação sobre a totalidade mínima: É interessante
notar que ao representarmos essas várias restrições de
integridade no modelo conceitual, possibilitaremos a conversão
estrutural para os modelos operacionais, sem que seja
necessário pensar-se nas particularidades.
Assim, uma classe 1:N, neste caso, deve provocar a
chamada de uma rotina padrão de verificação dessa
restrição, sempre que houver inserção de uma entidade do
lado N (para saber se tem os 10 funcionários alocados).
Funcionários
N
1
Lotações
Departamentos
10
3
MER - Relacionamentos
Agora vamos imaginar um relacionamento que associe os
materiais de insumo de uma empresa com os fornecedores dos
mesmos:
Materiais
Código
Nome
N
Fornecimentos
Descrição
N
Nome
Fornecedores
CGC
Endereço
Durante o modelamento verificou-se a necessidade de acrescentar o
preço de cada material. Esse preço depende, evidentemente, tanto do
material como do fornecedor. Isto é, se colocássemos Preço como
atributo de Materiais, não estaríamos modelando corretamente, pois o
preço de um determinado material depende evidentemente do
fornecedor. Portanto, o preço não é um atributo próprio do Material.
Evidentemente, também não é atributo próprio do Fornecedor, pois se
ele fornecer dois materiais, eles provavelmente tem preços diferentes.
MER - Relacionamentos
No exemplo visto, temos um caso típico de “atributo do
relacionamento”. Na figura a seguir foram incluídos vários atributos do
relacionamento, para tentar resolver o problema mencionado.
Materiais
Código
Nome
Descrição
N
Fornecimentos
Tipo (fabricação,
Revenda)
N
Fornecedores
Preço
*
Condições
Quantidade
Prazo
CGC
Nome
Endereço
O caso mais comum é do preço depender da quantidade fornecida (quanto maior
a quantidade menor o preço) e a cada quantidade corresponder um prazo de
entrega. Chamamos a composição desses três atributos de Condições;
evidentemente Condições é um atributo multivalorado, como representado no
diagrama. Além disso, para cada material o fornecedor pode ser ou um fabricante
ou um revendedor.
4
MER - Relacionamentos
Auto-Relacionamentos
Imagine R como sendo um relacionamento que relaciona elementos de
um conjunto de entidades E a elementos desse mesmo conjunto E. Neste
caso, R é denominado de auto-relacionamento.
Ex: auto-relacionamento “Gerenciamento de Pessoal”. Mostra o fato de
funcionários gerenciarem funcionários.
FUNCIONÁRIOS
1
Gerencia
N
Gerenciado
Gereciamentos
De Pessoal
Observar que foram acrescentados nas arestas do relacionamento dois
rótulos, “Gerencia” e “Gerenciado”. Eles são necessários para
distinguirem o papel que cada elemento do conjunto de entidades tem no
relacionamento.
MER - Relacionamentos
Outro exemplo de auto-relacionamento: materiais (peças) usados em
uma empresa e a sua composição.
MATERIAIS
N
É componente de
N
Tem como componente
Composições
Quantidade
contida
A classe agora é N : N pois um material pode ter como componentes
vários materiais (um motor é composto de cilindros, válvulas, etc.) e um
material pode ser componente de vários materiais (parafuso está contido
no motor, no para-choque, na porta, etc.). Observar que foi acrescentada
como atributo a “quantidade contida”; por exemplo, um motor pode ter 4
cilindros.
5
MER - Relacionamentos
Relacionamentos Triplos
Suponhamos uma empresa que constrói equipamentos complexos. A
partir de desenhos de projetos dos equipamentos, são feitos documentos
de requisições de materiais necessários para a construção; toda
requisição de um material dá origem a um ou mais pedidos de compra.
Queremos modelar essa estrutura, mostrando quais materiais de que
requisições geraram quais pedidos.
Essa tripla informação pode ser representada por um relacionamento triplo:
Materiais
N
Observar que na falta
de um nome
adequado, colocamos
no relacionamento as
iniciais dos conjunto
entidades M-R-P
M–R-P
N
Requisições
N
Pedidos de Compra
MER - Relacionamentos
No exemplo anterior, como deve ser entendida a classe N : N : N do
relacionamento ?
Na verdade os relacionamentos triplos são uma extensão da classe de
relacionamentos binários. Portanto, podemos cortar a aresta que sai do
Materiais por meio de um arco.
O que está a direita desse arco associa-se com um número qualquer de
materiais (indicado pelo N).
O que está do lado direito é um par de Requisição-Pedido.
Materiais
N
M–R-P
N
Requisições
N
Pedidos de Compra
6
MER - Relacionamentos
Podemos também imaginar que um material de uma requisição pode dar origem
a vários pedidos, e um material em um pedido pode originar-se de várias
requisições. Portanto, devemos representar esta situação (usando as bolinhas)
indicando as seguintes restrições: não há nenhuma requisição que não pertença
a M-R-P, isto é, deve referir-se a algum material constante de algum pedido;
qualquer pedido é originário de algum material mencionado em alguma
requisição.
Materiais
N
M–R-P
N
Requisições
N
Pedidos de Compra
MER - Relacionamentos
Outro exemplo, agora com um relacionamento 1 : N : N.
Dado um aluno em uma disciplina, há um só professor associado a eles,
isto é, um aluno não pode ter em uma certa disciplina mais do que um
professor; por outro lado, um professor pode ministrar uma disciplina para
um número qualquer de alunos, e um professor pode dar a um certo
aluno mais do que uma disciplina. Como representaríamos esta situação?
Professores
1
P–A–D
N
Alunos
N
Disciplinas
7
MER - Relacionamentos
Agora um caso 1 : 1 : 1
Imaginemos que um banco queira armazenar informações sobre
correntistas, contas correntes e cartão magnético. Os cartões magnéticos
existem no mundo real, e têm vários atributos próprios, como data da
emissão, número do cartão, data da validade, restrição de quantia a
sacar, etc.
Assim, o projetista resolveu representá-los por meio de um conjunto de
entidades, o mesmo acontecendo com contas correntes e correntistas.
Acontece que esse era um banco que confiava em seus correntistas, de
modo que sempre emitia um cartão magnético para cada correntista de
cada conta corrente (lembremos que uma conta corrente pode ter mais
de um correntista. Ex: conta conjunta, e/ou). Se um correntista abre duas
contas diferentes, ele ganha automaticamente um cartão para cada uma.
Como representamos essa situação?
MER - Relacionamentos
Resposta do enunciado anterior:
Correntistas
1
C–C–C
1
Contas Correntes
1
Cartões Magnéticos
8
MER - Exercícios
Departamento
Empregado
Projeto
Escritório
Telefone
Função
Histórico
Salarial
17
MER - Exercícios
A figura anterior mostra informações existentes no cadastro de
pessoal de uma empresa, representadas na forma de um
diagrama hierárquico. A figura deve ser lida da seguinte forma:
- A empresa possui um conjunto de departamentos.
- Cada departamento possui um conjunto de empregados, um
conjunto de projetos e um conjunto de escritórios.
- Cada empregado tem um histórico de funções exercidas (os
cargos que ele já ocupou). Para cada função, o empregado tem
também um histórico de salário (valores que recebeu durante o
tempo que exerceu a função).
- Cada escritório possui um conjunto de telefones.
18
9
MER - Exercícios
As informações armazenadas no cadastro incluem as seguintes (podem surgir
outras com a interpretação da figura apresentada):
Para cada departamento: número (único), orçamento anual e o número do
registro do gerente do departamento (único). O gerente é sempre um empregado
da empresa.
Para cada empregado: número de registro (único), nome, idade, número do
projeto em que está trabalhando atualmente (cada empregado trabalha somente
em um projeto por vez), número do escritório em que trabalha e número de seu
chefe imediato (outro empregado). Além disso é armazenado o nome de cada
função que o empregado ocupou, juntamente com o período em que ocupou a
função (datas de início e fim) e os diversos salários recebidos neste período
(devido a possíveis aumentos em uma mesma função).
Para cada projeto: número (único), orçamento total e o número de registro do
empregado responsável pelo projeto.
Para cada escritório: número (único), área ocupada e números de telefones
usados por ele. Um mesmo número pode ser usado por mais de um escritório.
Utilize este problema para realizar a abstração de dados, definindo:
ENTIDADES, ATRIBUTOS E RELACIONAMENTOS.
19
10
Download

MER - Relacionamentos Relacionamentos