Buscar

06 -DER - Auto-Relacionamento e Agregação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Linguagem de Programação 
anderson_barroso@unit.br 
 
giga.anderson@gmail.com 
 
mailto:anderson_barroso@unit.br
mailto:giga.anderson@gmail.com
mailto:giga.anderson@gmail.com
Linguagem de Programação 
Autorrelacionamento 
 
 
 
 
 
2 
 Ocorre quando duas instâncias envolvidas em um 
relacionamento pertencem ao mesmo conjunto. 
 Como também são considerados relacionamentos 
binários, possuem as cardinalidades 1:1, 1:N, N:N 
 
 
 
 
 
Linguagem de Programação 
Autorrelacionamento 
 
 
 
 
 
3 
 1:N 
 Em uma empresa, um Funcionário pode coordenar vários 
outros Funcionários e cada Funcionário é coordenado por 
no máximo um único Funcionário. 
 
 
 
 
 
Linguagem de Programação 
Autorrelacionamento 
 
 
 
 
 
4 
 N:N 
 Em uma turma de alunos de uma escola, o professor 
trabalha com trabalhos em dupla ao longo do ano. Cada 
exercício ou trabalho sempre é construído em duplas. 
Porém, como forma de integrar socialmente todos os 
alunos, a cada novo exercício ou trabalho o professor forma 
novas duplas, de tal forma que uma mesma dupla nunca se 
repita. Sendo assim, o professor registra as duplas que vão 
sendo formadas sempre na intenção de responder à 
seguinte questão: 
 Quais duplas que já foram formadas de tal forma que eu não as 
repita? 
 
 
 
 
 
Linguagem de Programação 
Autorrelacionamento 
 
 
 
 
 
5 
 N:N 
 
 
 
 
 
Linguagem de Programação 
Autorrelacionamento 
 
 
 
 
 
6 
 1:1 
 Em uma empresa um funcionário pode ser casado 
legalmente com outro funcionário, sendo importante para a 
organização identificar se existe esse tipo de associação 
entre seus funcionários. 
 
 
 
 
 
Linguagem de Programação 
Agregação 
 Conceito introduzido no modelo conceitual para 
representar de modo mais claro uma relação não-binária. 
(COUGO, 1997) 
 Conceito criado para que determinados relacionamentos 
ternários possam ser transformados em relacionamentos 
binários . (CASTRO, 2012) 
 A agregação, visualmente, representa a necessidade de 
de que a junção realizada por um relacionamento seja 
vista como um novo objeto/entidade. 
 Porém, nem sempre a transformação poderá ser feita, 
pois não podemos ferir as regras (cardinalidade) entre os 
objetos envolvidos. 
 
 
 
 
 
7 
Linguagem de Programação 
Agregação 
 Quando podemos utilizar o conceito de Agregação? 
 Quando uma relação ternária exige a existência de uma 
relação binária anterior de 2 dos seus 3 objetos; 
 Quando podemos transformar um relacionamento ternário 
em relacionamentos binários menores; 
 
 
 
 
8 
Linguagem de Programação 
Agregação 
 Quando uma relação ternária exige a existência de uma 
relação binária anterior de 2 dos seus 3 objetos; 
 Para demonstrar esse caso, vamos utilizar o exemplo 
FUNCIONÁRIO/FUNCÃO/PROJETO visto anteriormente. 
 Em uma empresa Funcionários trabalham em Projetos e em cada 
projetos os Funcionários podem exercer determinadas Funções 
seguindo as regras abaixo: 
 Funcionários exercem diferentes Funções em diversos Projetos; 
 Um Funcionário pode exercer em um mesmo Projeto, diferentes 
Funções; 
 Em um mesmo Projeto podemos ter a mesma Função sendo 
exercida por Funcionários diferentes; 
 Um Funcionário pode exerce a mesma Função em Projetos 
diferentes. 
 
 
 
 
9 
Linguagem de Programação 
Agregação 
 Quando uma relação ternária exige a existência de uma 
relação binária anterior de 2 dos seus 3 objetos; 
 
 
 
 
 
10 
FUNCIONÁRIOS PROJETOS FUNÇÕES 
JOSÉ A 001 
JOSÉ A 002 
MARIA B 001 
JOÃO A 002 
ANA C 001 
Linguagem de Programação 
Agregação 
 Quando uma relação ternária exige a existência de uma 
relação binária anterior de 2 dos seus 3 objetos; 
 
 
 
 
 
11 
Linguagem de Programação 
Agregação 
 Quando uma relação ternária exige a existência de uma 
relação binária anterior de 2 dos seus 3 objetos; 
 Analisando todo o contexto, em nenhum momento foi 
exigido a relação binária entre 2 dos três elementos do 
relacionamento em pauta; 
 Para perceber a necessidade de se utilizar Agregação, 
vamos criar a exigência de que um Funcionário, por algum 
motivo, precise estar diretamente alocado ao Projeto que 
participa; 
 Imaginemos que, posteriormente vamos captar 
informações referentes apenas ao relacionamento 
Funcionário X Projeto; 
 Se esse relacionamento fosse representado diretamente, 
teríamos vida mais fácil 
 
 
 
 
 
 
12 
Linguagem de Programação 
Agregação 
 Quando uma relação ternária exige a existência de uma 
relação binária anterior de 2 dos seus 3 objetos; 
 
 
 
 
 
13 
Linguagem de Programação 
Agregação 
 Quando podemos transformar um relacionamento 
ternário em relacionamentos binários menores; 
 É preciso saber que nem todo relacionamento ternário pode ser 
transformado ou reduzido a relacionamentos binários menores. 
(CASTRO,2012) 
 Analisaremos a situação apresentada anteriormente quando 
estudamos relacionamentos ternários. 
 Em um Projeto, podemos ter vários Tipos de Equipamentos 
fornecidos por diversos Fornecedores; 
 Dado um Fornecedor, ele pode fornecer em um mesmo Projeto, 
diversos Tipos de Equipamentos; 
 Dado um Fornecedor, ele pode fornecer um mesmo Tipo de 
Equipamento para diversos Projetos; 
 Um Tipo de Equipamento, quando fornecido para um determinado 
Projeto, somente pode ser fornecido para este Projeto por um único 
Fornecedor. 
 
 
 
 
 
14 
Linguagem de Programação 
Agregação 
 Quando podemos transformar um relacionamento 
ternário em relacionamentos binários menores; 
 Solução: 
 
 
 
 
 
15 
Linguagem de Programação 
Agregação 
 Quando podemos transformar um relacionamento 
ternário em relacionamentos binários menores; 
 Nesse caso poderíamos transformar o relacionamento ternário 
fornecimento em dois relacionamentos binários, da seguinte forma: 
 
 
 
 
 
16 
Linguagem de Programação 
Agregação 
 Quando podemos transformar um relacionamento 
ternário em relacionamentos binários menores; 
 As duas soluções TERNÁRIA e com AGRAGAÇÃO, acarretarão no mesmo 
resultado; 
 O relacionamento FORNECEU possui os mesmos atributos que o 
relacionamento ternário É FORNECIDO da solução anterior. É isso que 
os tornam idênticos 
 Para finalizar, não utilizaremos AGREGAÇÃO quando o relacionamento 
ternário for de 1:1:N; 
 
 
 
 
 
17 
Linguagem de Programação 
Exercícios 
 Exercício 01 
 Utilizando autorrelacionamento, suponha que em uma faculdade as disciplinas são catalogadas 
mediante código próprio e são denominadas de acordo com o conteúdo trabalhado em cada 
uma delas. 
 Um aluno, ao precisar cursar uma disciplina qualquer, pode se matricular em uma turma 
ofertada para essa disciplina no seu curso ou em outro curso. 
 Entretanto existem disciplinas que os alunos precisam, mas que nem sempre são ofertadas 
turmas para ela. 
 Nesses casos, a faculdade permite que o aluno se matricule em disciplina denominada 
equivalente à disciplina originalmente desejada. 
 Sendo assim, para cada disciplina existente na faculdade podem existir várias outras disciplinas 
equivalentes 
 Ao mesmo tempo é normal que uma mesma disciplina sirva como equivalente de várias outras, 
e não apenas para uma. 
 Essa equivalência entre disciplinas independe de curso, ou seja, o aluno pode cursar a disciplina 
equivalente em qualquer curso, bastando apenas que ela esteja cadastrada como equivalente. 
 Faça um modelo para responder às seguintes questões: 
 Quais são os cursos da faculdade? 
 Quais são as disciplinas de cada curso? 
 Dado o código de uma disciplina, quais disciplinas são equivalentes a ela? 
 
 
 
 
 
18 
Linguagem de Programação 
Exercícios 
 Exercício 02 
 Utilizando um relacionamento ternário, suponha que em uma empresa os 
empregados são alocados em projetos. Independentemente dessa alocação, 
empregados podem utilizar materiais em qualquer projeto, bastando que tenhafeito algum tipo de trabalho no projeto. 
 Essa empresa quer gerenciar essa utilização de material a partir de um relatório 
que demonstre: nome do empregado, identificação do empregado, 
identificação do projeto, nome do projeto, descrição de cada um dos materiais 
consumidos, unidade de medida de cada material consumido e a quantidade 
de cada material consumido por cada empregado em cada um dos projetos 
 Exercício 03 
 Utilizando agregação, refaça o modelo do exercício 02, levando em 
consideração as seguintes modificações: um empregado pode utilizar 
materiais em qualquer projeto, desde que o mesmo esteja previamente 
alocado ao projeto. Em outros termos, somente é permitida a utilização 
de materiais por empregados em projetos aos quais ele seja alocado. 
 
 
 
 
 
19

Outros materiais