Agora que definimos nossas entidades, vamos falar sobre os relacionamentos entre elas. Na matéria anterior vimos como identificar os relacionamentos entre entidades, porém devemos observar alguns aspectos importantes que sinalizam erros na modelagem:
- Quando "sobram" entidades sem relacionamentos;
- Quando ocorrem "ciclos fechados" de relacionamentos; Exemplo: Usuário relaciona-se com Empréstimo que relaciona-se com Livro que relaciona-se com Usuário que relaciona-se com Empréstimo, etc...
- Entidades com muitos atributos relacionando-se com entidades com apenas alguns atributos;
- Muitas entidades relacionando-se à uma mesma entidade;
É importante atentar para esses erros para que não haja acúmulo de inconsistências e que não torne a modelagem um processo problemático. Mas não se preocupe em resolver tudo de uma vez só, pois mais a frente veremos formas de VALIDAR nossa modelagem, de maneira que os erros não passem despercebidos.
Determinados os relacionamentos, temos que verificar o número de referências de uma entidade em outra, ou seja, agora vamos verificar a CARDINALIDADE dos relacionamentos. Vejamos as possibilidades:
- Relacionamento Um-Para-Um (1:1) - Uma instância da entidade A relaciona-se a uma instância da entidade B
- Relacionamento Um-Para-Vários (1:N) - Uma instância da entidade A relaciona-se a várias instâncias da entidade B
- Relacionamento Vários-Para-vários (N:M) - Várias instâncias da entidade A relacionam-se a várias instâncias da entidade B
Estas 3 cardinalidades apresentadas acima são implicitamente, CARDINALIDADES MÁXIMAS, mas pode-se determinar a CARDINALIDADE MÍNIMA, que pode ser descrita desta forma:
- Relacionamento Um-Para-Vários (0,1:1,N) -Nenhuma ou uma instância da entidade A relaciona-se á uma ou várias instancias da entidade B.
Exemplo de relacionamento Um-Para-Vários com cardinalidade mínima:
Usuario - Emprestimo (1,1:0,N)
- Um usuário pode estar relacionado a nenhum ou a vários empréstimos.
- Um empréstimo deve estar relacionado a somente um usuário.
Conclusão: Pode ser que um usuário nunca faça empréstimos, assim como pode haver usuário que faça vários emprestimos, porém um empréstimo obrigatoriamente tem que ser feito por um único usuário.
Exemplo de relacionamento Vários-Para-Vários com cardinalidade mínima:
Emprestimo - Livro (0,N:1,N)
- Um empréstimo pode estar relacionado a um ou a vários livros.
- Um livro pode estar relacionado a nenhum ou a vários emprestimos.
Conclusão: Pode ser que um livro nunca seja emprestado, assim como pode haver livros que tenham sido emprestado várias vezes, porém um empréstimo deve conter pelo menos um livro ou pode conter vários.
A Cardinalidade Mínima pode ser incluída no Modelo Lógico, mas é pouco utilizada por ser, muitas vezes, redundante e óbvia, mas muito é útil no que refere à expôr a clareza dos relacionamentos entre entidades.
Se você está em dúvida quanto á quem é o lado "Um" e quem é o lado "Vários" no seu relacionamento, use as seguintes dicas:
- Veja em qual das entidades está o atributo que faz referencia à outra entidade. Esta entidade onde está o atributo é o lado "Vários" a outra é o lado "Um", trata-se então de um relacionamento Um-Para-Vários.
- Se ambas as entidades tiverem atributos que referenciam uma à outra, então ambas possuem a cardinalidade "Varios", isto é, trata-se de um relacionamento Vários-Para-Vários.
Estas 2 regrinhas funcionam como fórmulas. Apenas aplique-as ao seu relacionamento, sem pensar muito. Mesmo que fique um pouco confuso para você, mais pra frente verá que elas são válidas.
Descrição do nosso Diagrama de Entidade-Relacionamento:
Entidades: Usuário, Empréstimo, Livro
Relacionamentos: Usuario-Emprestimo(1:N), Emprestimo-Livro(N-N)