Baixe o app para aproveitar ainda mais
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
Compartilhar