Aula 20: MER: Relacionamentos Recursivos (Auto-relacionamento)

No mundo real, as associações nem sempre ocorrem entre tipos diferentes de objetos; às vezes, uma entidade se relaciona com instâncias da sua própria categoria. Esse fenômeno é chamado de relacionamento recursivo (ou auto-relacionamento). Nessas situações, o mesmo conjunto de entidades participa do relacionamento mais de uma vez, assumindo papéis distintos em cada ponta da associação. Entender esse conceito é vital para modelar hierarquias organizacionais e genealogias complexas.
O exemplo mais emblemático de auto-relacionamento é o de Supervisão no conjunto de entidades 'Empregado'. Em uma empresa, um empregado pode ser o supervisor de outros empregados. Aqui, a entidade 'Empregado' participa duas vezes: uma no papel de supervisor e outra no papel de supervisionado. No diagrama, isso é representado por uma linha que sai do losango do relacionamento e volta para o mesmo retângulo da entidade.
Para evitar confusões no diagrama, utilizamos os nomes de papéis (role names). Escrevemos explicitamente "supervisor" e "subordinado" (ou supervisionado) nas linhas que conectam a entidade ao relacionamento recursivo. Isso ajuda o projetista e o programador a entenderem a direção da regra de negócio: quem manda em quem. Sem esses nomes, o diagrama seria ambíguo e difícil de implementar futuramente em tabelas SQL.
A cardinalidade e a participação também se aplicam aqui. No exemplo de supervisão, a cardinalidade costuma ser 1:N: um supervisor pode gerenciar muitos empregados, mas cada empregado tem apenas um supervisor direto. Além disso, a participação de ambos os papéis é geralmente parcial, pois nem todo empregado é supervisor (ex: estagiários) e o presidente da empresa não possui um supervisor acima dele no banco de dados.
Modelar relacionamentos recursivos com precisão permite que o sistema gere árvores hierárquicas automáticas. É o que permite que redes sociais modelem a função 'Amizade' (onde um Usuário é amigo de outro Usuário) ou que sistemas de peças modelem a estrutura de montagem (onde uma Peça é composta por outras Peças menores). O auto-relacionamento é a prova da flexibilidade e do poder descritivo do Modelo Entidade-Relacionamento.
Comentários
Postar um comentário