2.3 Relacionamento
Um relacionamento é uma associação entre ocorrências de uma ou mais entidades, ou seja, é uma associação entre registros.
Em outras palavras, estou falando que dois registros podem se completar ou se complementar ao estabelecerem algum tipo de relacionamento entre eles. Veja um exemplo:
Figura 4 - Exemplo de relacionamento entre ocorrências
Na Figura 4 temos duas entidades — Curso e Aluno — que se relacionam por meio de uma outra entidade chamada Turma. Uma explicação mais simples seria:
- A entidade Curso armazena os registros do grupo/tipo curso;
- A entidade Aluno armazena os registros do grupo/tipo aluno;
- As entidades Curso e Aluno se relacionam por meio da entidade Turma.
Se pararmos um pouco para pensar, rapidamente conseguimos comparar a Figura 4 ao seguinte cenário do mundo real:
- A instituição fictícia TI na Rede oferece N cursos (entidade Curso);
- Essa mesma instituição possui N alunos (entidade Aluno);
- Obviamente essa instituição terá N turmas (entidade Turma).
A entidade Turma é uma forma de relacionar cada aluno a N cursos. Esse relacionamento entre curso e aluno poderia ter qualquer nome, mas por uma questão de semântica escolhemos nomeá-lo de Turma.
Esse entendimento pode ser um pouco confuso para quem está tendo seu primeiro contato com ele, então para simplificar farei uma demonstração mais "prática":
Figura 5 - Exemplo real de relacionamento
A Figura 5 não está politicamente correta — essas setas não existem —, porém, por ora esse é o desenho que irá nos permitir entender melhor o conceito de relacionamento. Então vamos detalhar o que está na figura:
- O aluno Fábio (código 1) não possui relacionamento;
- O aluno Pedrinho (código 2) se relaciona ao curso Banco de dados (código 1);
- O aluno Zezinho (código 3) se relaciona ao curso Linux (código 2).
Esse relacionamento se dá por meio da entidade de relacionamento Turma. Mais à frente veremos outras formas de montar esse mesmo relacionamento utilizando duas entidades. Relacionamentos entre três ou mais entidades também são possíveis, mas não são comuns:
Figura 6 - DER com mais de dois relacionamentos
Uma demonstração mais próxima da realidade seria algo como:
Figura 7 - Exemplo real de um banco de dados
Em uma analise rápida conseguimos identificar os seguintes relacionamentos:
- O registro de código 2 da entidade aluno se relaciona com o registro de código 1 da entidade instrutor e com o registro de código 2 da entidade curso.
O registro de código 3 da entidade aluno se relaciona com o registro de código 2 da entidade instrutor e com o registro de código 2 da entidade curso.
Logo, temos o seguinte resultado:
O aluno Pedrinho está fazendo o curso de Linux e o seu instrutor é o Antonio
- O aluno Zezinho está fazendo o curso de Linux e o seu instrutor é o Pedro
Acredito que você tenha observado que cada ocorrência está se relacionando com mais duas ocorrências e que turma é a entidade responsável por manter esse relacionamento. No tópico sobre entidades, vimos que a entidade é uma coleção de dados. No exemplo acima temos essa confirmação: temos várias tabelas, cada uma agrupando sua própria coleção de dados, e graças aos relacionamentos conseguimos cruzar dados e extrai-los, gerando dessa forma informações tais como quem está fazendo qual curso e qual o instrutor de determinado aluno.