Questão de Banco de Dados — SQL — FGV 2021
- Código
- fg045098
- Banca
- FGV
- Órgão
- TCE-AM
- Ano
- 2021
- Nível
- Superior
- Cargo
- Auditor Técnico de Controle Externo - Tecnologia da Informação - 2ª dia
- A8 linhas;
- B24 linhas;
- C32 linhas;
- D64 linhas;
- E128 linhas.
GabaritoD — 64 linhas;
Gabarito: letra D. A consulta SELECT DISTINCT * FROM T t1, T t2, T t3 realiza o produto cartesiano da tabela T com ela mesma três vezes (aliases t1, t2, t3). Se T possui n linhas, o resultado antes do DISTINCT tem n³ linhas. Como as linhas de T são presumivelmente distintas (sem duplicatas), o DISTINCT não elimina nenhuma, resultando em n³ linhas. Considerando que a tabela T do enunciado possui 4 linhas (conforme a instância exibida, não reproduzida aqui), o resultado terá 4³ = 64 linhas.
A alternativa correta é a letra D (64 linhas). As demais alternativas correspondem a outros números de linhas que não condizem com o cálculo esperado:
8 linhas (2³) – seria o caso se T tivesse 2 linhas.
24 linhas (3 × 8) – não corresponde a uma potência cúbica inteira.
32 linhas – 32 não é um cubo perfeito (próximo de 3,17³).
128 linhas (2⁷) – seria o caso se T tivesse aproximadamente 5,04 linhas (não inteiro).
O candidato pode confundir o produto cartesiano com um JOIN, ou esquecer que o DISTINCT não altera o número de linhas se não houver duplicatas. Além disso, é comum errar o número de linhas da tabela original. Decore: produto cartesiano de k cópias de uma tabela com n linhas → n^k linhas.
Gabarito: letra D.
Link permanente: /questoes/fg045098