Questão de Banco de Dados — Conceitos e Fundamentos de Modelo Relacional — Quadrix 2025
- Código
- qa698958
- Banca
- Quadrix
- Órgão
- CRM MS
- Ano
- 2025
- Cargo
- Ana ( )
- CCerto
- EErrado
GabaritoC — Certo
Gabarito: CERTO (letra C). A tabela Participacoes implementa corretamente um relacionamento muitos-para-muitos (N:N) entre Medicos e Congressos, pois utiliza uma chave primária composta (id_medico, id_congresso), que garante a unicidade da combinação e impede que um mesmo médico se inscreva mais de uma vez no mesmo congresso. Essa é a essência do modelo relacional: a chave primária composta assegura a integridade da entidade e a cardinalidade do relacionamento.
No modelo relacional, um relacionamento N:N (muitos para muitos) entre duas entidades não pode ser representado diretamente com apenas duas tabelas, pois isso geraria redundância e ambiguidade. A solução clássica é criar uma tabela de ligação (ou tabela associativa), que contém as chaves estrangeiras das duas tabelas originais. Essa tabela de ligação é exatamente o que Participacoes representa: ela referencia Medicos e Congressos por meio de chaves estrangeiras e possui uma chave primária composta pelos dois identificadores.
A chave primária composta (id_medico, id_congresso) é o coração da questão. Ela garante que cada par (médico, congresso) seja único, ou seja, não pode haver duas linhas com o mesmo id_medico e o mesmo id_congresso. Isso impede, na prática, que um médico se inscreva duas vezes no mesmo congresso. Se a chave primária fosse apenas id_medico, um médico só poderia ter uma participação no total, o que seria incorreto. Se fosse apenas id_congresso, um congresso só poderia ter um participante. A combinação dos dois é o que permite a cardinalidade N:N.
Vamos analisar a estrutura da tabela Participacoes:
id_medico INT — chave estrangeira que referencia Medicos(id_medico).
id_congresso INT — chave estrangeira que referencia Congressos(id_congresso).
papel VARCHAR(50) — atributo descritivo da participação.
data_inscricao TIMESTAMP — atributo descritivo.
PRIMARY KEY (id_medico, id_congresso) — chave primária composta.
FOREIGN KEY (id_medico) REFERENCES Medicos(id_medico) ON DELETE CASCADE — integridade referencial.
FOREIGN KEY (id_congresso) REFERENCES Congressos(id_congresso) ON DELETE CASCADE — integridade referencial.
A presença da chave primária composta é o que define a cardinalidade N:N. Sem ela, a tabela não teria como garantir a unicidade da combinação e o relacionamento seria mal modelado. O ON DELETE CASCADE é um detalhe adicional que garante que, ao excluir um médico ou um congresso, as participações correspondentes sejam automaticamente removidas, mantendo a consistência dos dados.
A pegadinha que a banca poderia explorar aqui é confundir a cardinalidade do relacionamento com a cardinalidade da chave primária. A chave primária composta não torna o relacionamento 1:1; ela apenas garante a unicidade da combinação. O relacionamento continua sendo N:N, pois um médico pode participar de vários congressos (várias linhas com o mesmo id_medico e diferentes id_congresso) e um congresso pode ter vários médicos (várias linhas com o mesmo id_congresso e diferentes id_medico).
Para fixar o conceito, veja a comparação entre os tipos de relacionamento:
Característica | 1:1 | 1:N | N:N |
|---|---|---|---|
Tabela de ligação | Opcional | Não | Obrigatória |
Chave estrangeira | Em qualquer lado | No lado N | Na tabela de ligação |
Chave primária da ligação | — | — | Composta (FKs) |
Exemplo | Pessoa ↔ CPF | Cliente ↔ Pedido | Médico ↔ Congresso |
A tabela Participacoes é o exemplo clássico de tabela de ligação para um relacionamento N:N. Ela não só implementa a cardinalidade correta, mas também carrega atributos próprios da relação (papel, data_inscricao), o que é uma prática comum e recomendada.
A afirmação está correta. A tabela Participacoes implementa um relacionamento N:N entre Medicos e Congressos porque:
Tabela de ligação: Participacoes é uma tabela associativa que referencia as duas tabelas originais por chaves estrangeiras.
Chave primária composta: PRIMARY KEY (id_medico, id_congresso) garante que cada combinação seja única.
Unicidade: A chave primária composta impede que um mesmo médico se inscreva mais de uma vez no mesmo congresso, pois a duplicação violaria a restrição de integridade da chave primária.
O ON DELETE CASCADE é um detalhe de integridade referencial que não altera a cardinalidade, mas reforça a consistência dos dados. A modelagem está correta e atende ao requisito de gerenciar a participação de médicos em congressos.
Gabarito: letra C (CERTO).
Link permanente: /questoes/qa698958