SóProvas


ID
5526601
Banca
FGV
Órgão
FUNSAÚDE - CE
Ano
2021
Provas
Disciplina
Banco de Dados
Assuntos

Atenção: na próxima questão, considere a definição e as instâncias das tabelas de bancos de dados CLUBE e JOGO exibidas a seguir.
 
nome
Barcelona
Boca Juniors
The Strongest

JOGO
mandante             visitante                 golsM             golsV
Barcelona             Boca Juniors              1                     0
Barcelona             The Strongest         NULL             NULL
Boca Juniors         Barcelona                  0                     0
Boca Juniors         The Strongest            3                     0
The Strongest        Barcelona                  2                     0
The Strongest        Boca Juniors             2                     0 

Cada clube deve jogar quatro vezes, duas como mandante e duas como visitante.
As colunas golsM e golsV registram o número de gols dos times mandantes e visitantes, respectivamente, em cada jogo. Ambas são nulas enquanto o jogo não for realizado. 

Analise o comando SQL a seguir, à luz das definições e instâncias das tabelas CLUBE e JOGO, apresentadas anteriormente.
        select distinct mandante, visitante
        from JOGO, CLUBE
Assinale o número de linhas, sem incluir os títulos, produzidas pela execução desse comando.

Alternativas
Comentários
  • Tabelas listadas no FROM sem nenhuma cláusula WHERE significa produto cartesiano. 

    No entanto, estou apenas imprimindo "mandante" e "visitante" e existe o DISTINCT, então não importa a combinação das outras colunas, apenas dessa duas. Só existem 6 combinações delas que são as próprias listadas em Jogo.

    GAB B

  • Vamos analisar a consulta apresentada na questão:

    (1) ela possui um distinct, logo registros repetidos (duplicatas) serão eliminados;

    (2) ela possui um produto cartesiano, dado que há uma vírgula separando as tabelas JOGO e CLUBE. Dito isso, sabemos que a primeira tabela possui três linhas e a segunda possui seis linhas, logo teríamos 3x6 = 18 linhas.

    No entanto, há uma pegadinha na questão: ela deseja retornar apenas as colunas mandante e visitante, e essas colunas pertencem somente à tabela JOGO.

    Como há um distinct na consulta, é irrelevante o produto cartesiano, visto que as repetições serão ignoradas.

    Logo, ela retornará apenas seis linhas:

    mandante | visitante

    Barcelona | Boca Juniors

    Barcelona | The Strongest

    Boca Juniors | Barcelona

    Boca Juniors | The Strongest

    The Strongest | Barcelona

    The Strongest | Boca Juniors

    Fonte: Estratégia. (Prof. Diego Carvalho e Raphael Lacerda).

  • Fiquei bem preoucupado na questão em relação ao produto cartesiano. Mas o disctinct era a pegadinha da questão.

  • No caso em questão, serão consideradas tuplas distintas as combinações dos valores de mandante e visitante.

    select distinct mandante, visitante from JOGO, CLUBE 

    repare na cláusula FROM, não há qualquer operação de junção, logo, será feito um produto cartesiano entre as tabelas JOGO e CLUBE

    mandante        visitante            golsM         golsV nome

    Barcelona            Boca Juniors           1                     0 Barcelona

    Barcelona            Boca Juniors           1                     0 Boca Juniors

    Barcelona            Boca Juniors           1                     0 The Strongest

    .... .....

    Assim para todas as tuplas da tabela JOGO.

    Dessa forma, como há a cláusula DISTINCT, o conjunto-resultado será apenas a própria tabela JOGO.

  • Fica 3 de cada coluna:

    3 da coluna mandante, 3 da coluna visitante. Nessa query ela não desconsidera os campos NULL, conforme citados. Acho que serviu mais pra enganar o candidato.