Auditor Técnico de Controle Externo - Tecnologia da Informação - 2ª dia
Na próxima questão, considere uma tabela de banco
de dados T cuja instância é exibida a seguir.
Considerando-se a instância da tabela T (descrita anteriormente), analise o comando SQL abaixo.select distinct * from T t1, T t2, T t3A execução desse comando produz um resultado que, além da linha de títulos, contém:
A8 linhas;
B24 linhas;
C32 linhas;
D64 linhas;
E128 linhas.
Revelar gabarito e comentário▾
GabaritoD — 64 linhas;
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
SQL: Produto cartesiano com DISTINCT
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).
1Tabela T com n linhas
23 aliases (t1, t2, t3)
3n³ linhas brutas
4DISTINCT não elimina (linhas distintas)
5Resultado: n³ linhas
LEVEL · soulevel.com.br
NÃO CAIA NESSA!
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.