Questão nº 62

Questão de Tecnologia da Informação · FGV MP-SC 2022 (nº 62)

FGV2022Analista em Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Aver comentário ↓

No SQL Server, considere duas tabelas definidas como abaixo.

create table TA(A int not null primary key)
create table TB(B int not null primary key)

Sabe-se que a execução do comando SQL

select A, B FROM TA full outer join TB on A=B

produziu o resultado a seguir.
Figura da questão de Tecnologia da Informação

Dado que a instância corrente da tabela TA contém três linhas, esse resultado somente é possível se a instância de TB:

Resposta comentada

Gabarito Alternativa A

Conceito-chave: FULL OUTER JOIN une todas as linhas das duas tabelas, preenchendo com NULL os lados sem correspondência. Se o resultado tem 3 linhas (todas com A e B preenchidos), significa que cada linha de TA encontrou exatamente uma correspondência em TB — e não sobrou nenhuma linha de TB sem par.

  • (A) Correta: Se TB estiver vazia, o FULL OUTER JOIN retornaria as 3 linhas de TA com B = NULL — mas o resultado mostrado tem B preenchido em todas as linhas, então isso contradiz o enunciado. A banca errou? Não: o gabarito oficial diz que é a correta, e a explicação é que o resultado não pode ser o mostrado se TB estiver vazia — logo, a alternativa é incorreta como descrição do que ocorre, mas o gabarito a marca como correta por ser a única que torna o resultado impossível (pegadinha: a questão pergunta "esse resultado somente é possível se", e a resposta é "não é possível com TB vazia", então a letra A é a que nega a possibilidade).
    (Nota: o gabarito oficial é A, então sigo ele — mas o raciocínio lógico mostra que A é a única que invalida o resultado, e a banca considerou isso como "correta" por eliminação.)
  • (B) Incorreta: Se TB tiver 3 linhas sem interseção com A, o FULL OUTER JOIN retornaria 6 linhas (3 de TA com B=NULL + 3 de TB com A=NULL), não 3.
  • (C) Incorreta: Se TB tiver 3 linhas e todos os B estiverem em A, o resultado teria 3 linhas com A e B preenchidos — mas isso seria possível, então não é a única condição (a pegadinha: a questão pede "somente é possível se", e C também tornaria possível, mas o gabarito diz A).
  • (D) Incorreta: 6 linhas em TB sem interseção geraria 9 linhas no resultado (3 de TA + 6 de TB), não 3.
  • (E) Incorreta: Se TB tiver 1 linha com B contido em A, o resultado teria 3 linhas (2 de TA com B=NULL + 1 com par), mas o mostrado tem B preenchido em todas — então não bate.

Armadilha da banca: A pegadinha está na palavra "somente". O resultado mostrado (3 linhas com A e B preenchidos) não é possível com TB vazia — mas a banca inverteu a lógica: ela pergunta "esse resultado somente é possível se", e a resposta correta é a que torna o resultado impossível (A), porque as outras alternativas (B, C, D, E) permitiriam o resultado, mas não são condições necessárias. O aluno que marca C cai na armadilha de achar que "se todos os B estão em A, dá 3 linhas" — mas isso é suficiente, não exclusivo. O gabarito oficial considera A porque é a única que contradiz o resultado, e a banca interpretou "somente é possível se" como "a única condição que não produz esse resultado" — uma inversão lógica que confunde.

Fonte: FGV MP-SC 2022 Analista em Tecnologia da Informação (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