SóProvas


ID
1897603
Banca
FGV
Órgão
IBGE
Ano
2016
Provas
Disciplina
Banco de Dados
Assuntos

João escreveu a consulta SQL a seguir, executou-a corretamente e obteve um resultado contendo 100 linhas, além da linha de títulos.

select curso, nome

from aluno, curso

where aluno.codcurso = curso.codcurso

order by curso, nome

As tabelas aluno e curso possuem, respectivamente, 120 e 12 linhas. No banco há ainda outras duas tabelas, pauta e disciplina, com 200 e 5 registros, respectivamente. Nessas condições, o número de linhas, além da linha de títulos, produzidas pelo comando

select curso, nome

from aluno, curso, disciplina, pauta

where aluno.codcurso = curso.codcurso

order by curso, nome

seria:

Alternativas
Comentários
  • A query só tem o join entre aluno e curso (que são 100 linhas). Em relação as outras duas tabelas, ele faz um produto cartesiano entre (aluno e curso), pauta e disciplina que resulta em 100 x 200 x 5 = 100.000

  • Não entendi nada rs.

  • Só complementando, se o join não tiver uma cláusula where para restringi-lo, um produto cartesiano será efetuado, obtendo todas as combinacoes entre as tabelas.

  • Irá gerar um produto cartesiano: 100 * 200*5 = 100.000

  • Ao adicionarmos as tabelas disciplina e pauta na consulta sem que definamos qualquer cláusula de junção, o que estamos fazendo é um produto cartesiano entre disciplina, pauta e a consulta original. A consulta original, como é dito no resultado, retorna 100 linhas

    Assim, pouco importa o total de linhas de aluno e curso, pois a cláusula aluno.codcurso = curso.codcurso limita os registros a serem retornados aos 100 citados no enunciado.

    O produto que vai definir o resultado da questão, então, fica da seguinte maneira:

    n(consulta original) * n(disciplina) * n(pauta)

    Em que representa o número de linhas de cada uma das tabelas. O resultado será dado por:

    100 * 200 * 5 = 100.000