Questão nº 64

Questão de Tecnologia da Informação · FGV ALEP 2024 (nº 64)

FGV2024Analista Legislativo - Desenvolvedor de SistemasTecnologia da Informação
Gabarito: Cver comentário ↓

Em uma Casa Legislativa, considere um cenário restrito, no qual parlamentares submetem proposições (propostas legislativas) para avaliação das instâncias do Parlamento.
O modelo de conceitual de classes a seguir modela tal situação:

Figura da questão de Tecnologia da Informação

Em um contexto no qual o modelo conceitual será mapeado segundo a abordagem Mapeamento Objeto-Relacional (ORM), e que a classe “Proposição” foi mapeada para um banco de dados relacional da seguinte forma:

Proposição ( {cod_proposicao} <PK>, identificacao, ementa, indexacao, tipo )

sendo o atributo “cod_proposicao” a chave primária da tabela (PK) e os demais atributos simples


Considerando a abordagem de mapeamento objeto-relacional (ORM), seja o mapeamento da classe “Parlamentar” realizado da forma que segue:

Parlamentar ( {cod_parlamentar} <PK>, nome, partido, email, telefone, endereco, data_nascimento, naturalidade, foto )

A fim de manter, no modelo lógico de banco de dados relacional, a semântica expressa na classe “Submissão” do modelo conceitual, e considerando que
I. o atributo id_parlamentar<FK> indica uma chave estrangeira para a chave primária da tabela “Parlamentar”;
II. o atributo id_proposicao<FK> indica uma chave estrangeira para a chave primária da tabela “Proposição”.
Nesse caso, uma abordagem correta seria

Resposta comentada

Gabarito Alternativa C

Uma classe associativa (ou associação com atributos) em um modelo conceitual representa uma relação entre duas ou mais entidades que, por si só, possui atributos. Ao mapear para um banco de dados relacional, ela é traduzida para uma tabela separada que contém as chaves estrangeiras das entidades envolvidas e os atributos próprios da associação.

  • (A) Incorreta: Adicionar uma chave estrangeira na tabela "Parlamentar" para "Proposição" criaria uma relação de um-para-muitos (um parlamentar submete uma proposição, ou várias proposições são submetidas por um parlamentar, mas cada proposição só pode ser submetida por um parlamentar), o que não captura a natureza da classe associativa "Submissão" e ignora seu atributo "data".
  • (B) Incorreta: Esta alternativa propõe alterar o modelo conceitual, e não mapeá-lo. O objetivo é mapear o modelo dado, que já expressa uma relação muitos-para-muitos com atributos através da classe associativa "Submissão".
  • (C) Correta: Esta abordagem cria uma nova tabela "Submissão", que é o método padrão para mapear classes associativas. Ela inclui o atributo "data" da classe "Submissão" e define uma chave primária composta pelos identificadores das entidades associadas (id_parlamentar<FK>, id_proposicao<FK>). Essa chave composta garante que cada par (Parlamentar, Proposição) tenha uma única entrada na tabela de submissão, o que é uma forma comum e correta de identificar instâncias de uma associação sem um ID próprio explícito. As chaves estrangeiras (id_parlamentar<FK>, id_proposicao<FK>) ligam corretamente à tabela "Parlamentar" e "Proposição". A repetição de id_parlamentar e id_proposicao após data na descrição do esquema é uma redundância notacional, mas não invalida a estrutura fundamental da tabela.
  • (D) Incorreta: Embora crie uma tabela "Submissão" com um ID próprio e o atributo "data", esta alternativa omite a chave estrangeira para a tabela "Proposição" (id_proposicao<FK>), o que impede a ligação correta entre a submissão e a proposição, desvirtuando completamente a semântica da associação.
  • (E) Incorreta: Esta alternativa cria uma tabela "Submissão" com um ID próprio (id_submissao <PK>), o atributo "data" e as chaves estrangeiras corretas (id_parlamentar<FK>, id_proposicao<FK>). Embora seja uma abordagem válida em muitos cenários de mapeamento de associações muitos-para-muitos com atributos (especialmente se um parlamentar puder submeter a mesma proposição várias vezes, cada uma com uma data diferente), ela introduz um identificador (id_submissao) que não está explicitamente presente na classe "Submissão" do modelo conceitual fornecido. A alternativa (C) é considerada mais direta e fiel ao modelo conceitual quando a classe associativa não possui um atributo de ID próprio, derivando sua identidade da combinação das entidades associadas. A "pegadinha" aqui é que, embora E seja uma solução tecnicamente correta para um problema similar, C é a que melhor se alinha com a representação do modelo conceitual dado, que não especifica um ID para "Submissão".

Fonte: FGV ALEP 2024 Analista Legislativo - Desenvolvedor de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho