Conjuntos de Relacionamentos

Autor

Douglas Braga

Definição

Um relacionamento é uma associação entre duas ou mais entidades.

Um conjunto de relacionamentos (relationship set) é uma relação matemática entre \(n \geq 2\) conjuntos de entidades:

\[\{(e_1, e_2, \ldots, e_n) \mid e_1 \in E_1,\ e_2 \in E_2,\ \ldots,\ e_n \in E_n\}\]

onde cada \((e_1, e_2, \ldots, e_n)\) é um relacionamento individual.

No banco da UnDF, o conjunto de relacionamentos ministra associa entidades de professor e disciplina:

\[ministra \subseteq professor \times disciplina\]

Cada par (Gustavo Costa, ENS-201) é um relacionamento que significa “Gustavo ministra ENS-201”.

Atributos de Relacionamentos

Assim como conjuntos de entidades, conjuntos de relacionamentos podem ter atributos próprios — informações que descrevem a associação em si, não as entidades participantes.

O relacionamento ministra entre professor e disciplina tem os atributos:

Atributo Descrição
ano Ano letivo em que a turma foi oferecida
semestre Semestre (1 ou 2)
turma Identificador da turma (A, B…)
horario Horário semanal das aulas
sala Sala onde as aulas ocorrem

Esses atributos não pertencem nem ao professor nem à disciplina — pertencem ao ato de ministrar aquela disciplina naquele contexto específico.

Representação em Diagrama ER

Na notação ER: - Losango: representa um conjunto de relacionamentos - Linhas: conectam o losango aos retângulos dos conjuntos de entidades participantes - Elipses ligadas ao losango: atributos do relacionamento

er_relacionamento professor professor ministra ministra professor--ministra disciplina disciplina ministra--disciplina ano ano ministra--ano semestre semestre ministra--semestre turma turma ministra--turma horario horario ministra--horario sala sala ministra--sala

Papéis (Roles)

Quando o mesmo conjunto de entidades participa mais de uma vez em um relacionamento, os papéis (roles) explicitam o significado de cada participação.

O relacionamento prereq em disciplina é autorreferencial — uma disciplina é pré-requisito de outra:

er_roles disciplina disciplina prereq prereq disciplina--prereq disciplina prereq--disciplina pré-requisito

Os rótulos “disciplina” e “pré-requisito” são os papéis — indicam qual papel cada participação de disciplina desempenha no relacionamento.

Grau de um Relacionamento

O grau de um relacionamento é o número de conjuntos de entidades que participam dele:

  • Binário (grau 2): o mais comum. Envolve exatamente dois conjuntos de entidades.
  • Ternário (grau 3): envolve três conjuntos de entidades simultaneamente.
  • N-ário: envolve \(n\) conjuntos de entidades (raro na prática).

A grande maioria dos relacionamentos em sistemas reais é binária. Relacionamentos ternários aparecem quando a associação entre duas entidades depende de uma terceira.

Se quiséssemos registrar que um aluno é orientado por um professor em um projeto específico, o relacionamento orienta seria ternário entre aluno, professor e projeto:

er_ternario aluno aluno orienta orienta aluno--orienta professor professor professor--orienta projeto projeto projeto--orienta

Não há como dividir orienta em dois relacionamentos binários sem perder informação: saber que um professor orienta um aluno e que um professor orienta um projeto não é suficiente para saber quem orienta quem em qual projeto.


Para Praticar

1. Atributo de entidade ou de relacionamento? No relacionamento ministra entre professor e disciplina, a sala onde as aulas ocorrem deve ser atributo do relacionamento ou da entidade disciplina? Justifique.

sala deve ser atributo do relacionamento ministra. A mesma disciplina (ENS-201) pode ser oferecida em salas diferentes em semestres distintos, por professores diferentes. A sala não é uma propriedade intrínseca da disciplina — é uma propriedade da oferta específica daquela disciplina naquele semestre/turma. Colocar sala em disciplina forçaria a escolha de uma sala única e permanente, o que não corresponde à realidade.


2. Autorreferência e papéis. Na tabela prereq do banco da UnDF, o par (ENS-601, ENS-401) significa que ENS-401 é pré-requisito de ENS-601. Qual é o papel de ENS-601 e qual é o papel de ENS-401 nessa tupla?

  • ENS-601 exerce o papel de disciplina (a que tem o pré-requisito).
  • ENS-401 exerce o papel de pré-requisito (a que precisa ser cursada antes).

Na tabela, a coluna codigo armazena quem tem o pré-requisito e prereq_codigo armazena quem é o pré-requisito.


3. Grau do relacionamento. Analise o seguinte requisito: “Registrar que um aluno cursou uma disciplina em uma turma específica (identificada por disciplina, ano, semestre e turma) e obteve uma nota”. Qual o grau do relacionamento cursa? Quais os conjuntos de entidades envolvidos?

O relacionamento cursa associa aluno à turma de uma disciplina. A “turma” (identificada por disciplina+ano+semestre+turma) é ela própria um relacionamento (ministra) e não uma entidade simples. Isso caracteriza agregação — veremos na seção 4.10. Uma simplificação possível é tratar cursa como binário entre aluno e uma entidade oferta (representando a turma), com atributos nota e aprovado.


4. Limites do relacionamento binário. Suponha que queiramos registrar que um professor supervisionou a entrega de um projeto por um aluno em uma disciplina específica. Por que um único relacionamento binário professor–aluno não é suficiente?

Um relacionamento binário professor–aluno diria apenas “este professor supervisionou este aluno”, sem especificar em qual disciplina ocorreu a supervisão. Se um professor supervisiona o mesmo aluno em duas disciplinas diferentes, não haveria como distinguir as duas supervisões. É necessário um relacionamento ternário professor–aluno–disciplina, ou uma modelagem com agregação.