Questão nº 51
Questão de Tecnologia da Informação · FGV PCAM 2021 (nº 51)
ATENÇÃO!
Nas duas próximas questões, considere as tabelas de banco de dados:
- T1, com uma única coluna A1, onde A1 é a chave primária;
- T2, com uma única coluna A2, onde A2 é a chave primária, e A2 é também uma chave estrangeira que referencia T1.
As instâncias de T1 e T2 contêm, respectivamente, 12 e 10 linhas.
Com referência às tabelas T1 e T2, o comando SQL
select t1.A1, t2.A2
from T1,T2
where t1.A1 <> t2.A2
order by 1
produzirá um resultado com
- A120 linhas.
- B110 linhas. (alternativa correta)
- C100 linhas.
- D90 linhas
- E20 linhas.
Resposta comentada
Gabarito Alternativa B
O produto cartesiano (ou CROSS JOIN) combina cada linha da primeira tabela com cada linha da segunda tabela. Uma chave estrangeira (FK) é uma coluna em uma tabela que referencia a chave primária de outra tabela, garantindo que os valores da FK existam na tabela referenciada.
- (A) Incorreta: 120 linhas seria o resultado do produto cartesiano
T1,T2antes da aplicação da cláusulaWHERE. Essa é a armadilha mais comum, pois muitos esquecem de aplicar o filtro. - (B) Correta: Primeiro, o comando
FROM T1,T2gera um produto cartesiano de 12 * 10 = 120 linhas. Em seguida, a cláusulaWHERE t1.A1 <> t2.A2filtra essas linhas. Como A2 é uma chave estrangeira que referencia A1, cada um dos 10 valores únicos em T2.A2 obrigatoriamente existe em T1.A1. Portanto, existem exatamente 10 pares(t1.A1, t2.A2)ondet1.A1 = t2.A2(um para cada linha de T2). A cláusulaWHEREexclui esses 10 pares. Assim, o número de linhas resultantes é 120 - 10 = 110. - (C) Incorreta: Não há base lógica para 100 linhas.
- (D) Incorreta: Não há base lógica para 90 linhas.
- (E) Incorreta: Não há base lógica para 20 linhas.
Fonte: FGV PCAM 2021 Perito Criminal - 4ª Classe - Processamento de Dados (Caderno Tipo 1). Reproduzida para fins de estudo.