• Nenhum resultado encontrado

Resolução de Relacionamentos Muitos-para-Muitos

A interpretação de um relacionamento muitos-para-muitos pode variar na análise do minimundo que estamos modelando. Entretanto, podemos conciliar esses casos por meio do que denominamos resolver o relacionamento muitos-para-muitos.

Todo relacionamento muitos-para-muitos pode ser entendido como uma entidade. Essas entidades denominam-se associativas, pois elas representam um fato, um relacionamento muitos-para-muitos.

Considerando os modelos vistos até o momento, as alternativas são as seguintes: Neste caso de autorrelacionamento, ou relacionamento reflexivo de muitos-para-muitos que apresentamos, a inclusão da entidade composição tem o mesmo efeito de representati- vidade que o relacionamento reflexivo.

Observe a leitura do modelo:

 Um produto (componente) participa de 'n' ocorrências de composição.  Cada ocorrência de composição participa de um produto (componente).  Cada produto (composto) está em 'n' ocorrências de composição.  Cada ocorrência de composição tem um produto (composto).

No caso de relacionamentos reflexivos como este, são substituídos por dois relaciona- mentos um-para-muitos.

Observe a tabela da entidade associativa, idêntica ao relacionamento para um melhor entendimento.

Código Composto Código Componente Quantidade Componente 5532 3758 10 5532 4512 22 5532 8596 14 7626 3758 65 7626 4512 70

 O produto 5532 (composto) ESTÁ na entidade associativa mais de uma vez, logo ele está relacionado "N" vezes com a entidade composição.

 Cada ocorrência de composição TEM somente UM produto composto.

Código Composto Código Componente Quantidade Componente 5532 3758 10 5532 4512 22 5532 8596 14 7626 3758 65 7626 4512 70

 O produto 3758, como destacamos, aparece mais de uma vez na entidade compo- sição, logo UM produto participa de "N" composição.

 Cada ocorrência da entidade composição tem UM produto (componente).

Peter Chen usa um formato de diagramação para representar os papéis que deixam um pouco mais clara essa definição do modelo.

Poderia ser resolvido também como:

Procure agora visualizar como são os dados da entidade produtos da nota fiscal.

Nota Fiscal Produto Quantidade

2585999 Mouse 2

2585999 Teclado 5

2586000 Tela para Monitor 10

2586001 CD-RW 20

2586001 Mouse 5

 Toda ocorrência de produtos da nota fiscal tem um produto.  Todo produto pode estar em mais de um produto da nota fiscal.  Uma nota fiscal pode estar em mais de um produto da nota fiscal.  Toda ocorrência de produtos da nota fiscal tem uma nota fiscal.

Vamos agora exercitar um pouco a descoberta de entidades e relacionamentos, assim como descobrir os atributos das entidades e relacionamentos.

Para este exercício vamos utilizar um minimundo, cuja descrição apresentamos em seguida:

Existem empresas identificadas univocamente pelo respectivo número de contribuinte (número do CNPJ). Adicionalmente, são caracterizadas por um nome e um segmento de negócio.

Cada empresa tem uma sede e zero, uma ou mais filiais. Tanto a sede como as filiais têm um endereço e um só número de telefone cada uma. Os empregados das empresas são identificados univocamente por uma matrícula de empregado. São ainda caracterizados pelo respectivo nome, endereço e data de nascimento. Cada empregado trabalha apenas num local (sede ou filial); no seu local de trabalho, existe um número de telefone direto.

Bem, vamos observar o que é candidato ou quais são as entidades existentes neste contexto.

Seguindo um critério de que substantivos indicam entidades, temos neste caso:  Empresa  Filial  Número de contribuinte  Número de telefone  Endereço  Empregados  Matrícula de empregado  Local de trabalho

Nesta lista temos dois substantivos compostos que indicam atributos de alguma entidade e não propriamente entidades, pois não têm existência própria: número de telefone e matrícula de empregado.

Analisando mais, podemos concluir que endereço é uma propriedade de algo, também não tem existência própria, logo deve ser atributo de alguma entidade e não uma entidade. Local de trabalho também é composto e claramente caracteriza-se como uma propriedade de uma entidade e uma entidade em si.

Logo existem então três entidades neste contexto:

Vamos analisar os atributos de cada uma dessas entidades que podemos entender do minimundo.

Após termos obtido e identificado as entidades que compõem o contexto do aplicativo que estamos projetando, a próxima etapa consiste na definição dos relacionamentos que existem entre as entidades e que interessam aos propósitos. No momento em que obtivermos o domínio dos relacionamentos e entidades, poderemos traçar um primeiro diagrama ER que servirá de base para as etapas seguintes.

Uma vez que temos as entidades definidas para o caso, vamos analisar os verbos que existem no minimundo e quais fatos descritos podem caracterizar a existência de relaciona- mentos no modelo de dados.

"Cada empresa possui uma sede e zero, uma ou mais filiais."

Aqui temos claramente a visão de que existe um relacionamento entre empresa e filial, e ainda está indicada a conectividade (cardinalidade) desse relacionamento e sua opcionalidade.

O diagrama agora já apresenta estas duas entidades com o seu relacionamento. Seguindo, devemos analisar com quem a entidade Empregado se relaciona, porém um detalhe até o momento chama a atenção:

Não são uma única entidade? Ser filial ou sede não será um atributo, uma propriedade dessa entidade?

Vejamos se esta solução não é plausível:

 Quando a empresa for sede, o atributo sede ou filial indicará um valor 'sede'. Quando for uma filial, o valor do atributo será 'filial'.

Desta forma conseguimos simplificar um pouco o nosso modelo, porém como devemos saber quem é filial de quem, vamos colocar um relacionamento reflexivo no modelo.

Voltando ao raciocínio de continuidade, qual o relacionamento entre empregado e a entidade empresa?

"Cada empregado trabalha apenas num local (sede ou filial); no seu local de trabalho tem um número de telefone direto."

Logo temos um relacionamento. Resolvendo, temos:

Porém, ainda falta alguma coisa para que este modelo fique correto:

"...no seu local de trabalho tem um número de telefone direto."

Este atributo de o empregado ter um telefone em seu local de trabalho não está visível no modelo até o momento, pois não é o telefone da empresa. Logo:

Vamos agora apresentar o modelo completo segundo a notação de Peter Chen.

Ao analisarmos o contexto, devemos ter em mente uma forma de pensar ER.

Logo, algo que não requeira pelo menos dois atributos para descrevê-lo provavelmente não caracterizará uma entidade e sim um atributo de alguma outra entidade, ou será simples- mente uma variável do contexto.

É importante estabelecermos alguns princípios para que obtenhamos (a partir dos levantamentos e entrevistas com os usuários e na construção do minimundo ) as entidades de interesse para a aplicação que está em projeto.

O usuário sempre se refere a processo quando nos descreve uma realidade em que estão situadas suas atividades.

Pense e lembre que o modelo de dados não é fluxograma, logo não tem começo nem fim. Esteja atento a referências a substantivos, pois pode ser a indicação de uma entidade.