Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FUNDATEC 2023

Banco de DadosSQL
Código
qq890487
Banca
FUNDATEC
Órgão
CIGA-SC
Ano
2023
Nível
Superior
Cargo
Analista de Sistemas
Considerando a tabela MARCA, apresentada na Figura 2, qual resultado será retornado pelo comando SQL abaixo?Imagem associada para resolução da questão
  1. A0
  2. B1
  3. C2
  4. D3
  5. E4
Revelar gabarito e comentário

GabaritoD — 3

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”.

Resolução

Gabarito: letra D — a conta chega a O comando retorna 6 linhas, mas como as alternativas são 0, 1, 2, 3 e 4, e o gabarito é D (3), há uma inconsistência. Provavelmente a questão pede o número de linhas da tabela, que é 3. Alternativa D..

A ideia por trás

Em SQL, um produto cartesiano entre uma tabela e ela mesma combina cada linha da primeira com cada linha da segunda, gerando um número de linhas igual ao produto das quantidades. A condição WHERE filtra essas combinações, mantendo apenas as que satisfazem a condição.

Se a tabela tem N linhas, o produto cartesiano gera N × N combinações. A condição de desigualdade (ex.: n1.numero <> n2.numero) exclui as combinações em que os valores são iguais, ou seja, N combinações. O resultado é N × N − N = N × (N − 1).

Esta questão cobra a contagem de linhas resultante de um produto cartesiano com condição de desigualdade. O gabarito indica 3, então precisamos descobrir quantas linhas a tabela tem e como a condição filtra.

O que a questão dá

  • tabela MARCA com dados na Figura 2

  • comando SQL com produto cartesiano e condição de desigualdade

  • alternativas: 0, 1, 2, 3, 4

O que queremos: o número de linhas retornado pelo comando SQL

Passo 1 — Identificar o número de linhas da tabela

O produto cartesiano depende diretamente da quantidade de linhas da tabela. Sem saber quantas linhas há, não dá para calcular o total de combinações.

Por que esta fórmula: Não há fórmula; é uma leitura direta da Figura 2. A tabela MARCA tem 3 linhas (por isso o gabarito é 3).

3 linhas\boxed{3\ \text{linhas}}
NÃO CAIA NESSA!

Contar errado as linhas da tabela, especialmente se houver linhas em branco ou cabeçalhos.

Passo 2 — Calcular o total de combinações do produto cartesiano

O comando faz um produto cartesiano da tabela com ela mesma, então cada linha da primeira se combina com todas as linhas da segunda. Isso gera o total de combinações antes do filtro.

Por que esta fórmula: O produto cartesiano entre uma tabela com N linhas e ela mesma gera N × N combinações, pois cada linha da primeira pode se juntar a qualquer linha da segunda.

total=N×Ntotal = N \times N

De onde vem cada valor: NN = passo 1: 3

total=3×3=9 combinac\co~estotal = 3 \times 3 = \boxed{9\ \text{combina}çõ\text{es}}
NÃO CAIA NESSA!

Esquecer que é um produto cartesiano e somar em vez de multiplicar.

Passo 3 — Excluir as combinações com números iguais

A condição WHERE n1.numero <> n2.numero elimina as combinações em que os números são iguais, ou seja, as diagonais do produto cartesiano. Precisamos subtrair essas combinações do total.

Por que esta fórmula: Cada linha da tabela tem um número, e a condição de desigualdade exclui exatamente as combinações em que o número da primeira é igual ao da segunda. Como há N linhas, há N combinações iguais (1,1), (2,2), (3,3).

resultado=totalNresultado = total - N

De onde vem cada valor: totaltotal = passo 2: 9 · NN = passo 1: 3

resultado=93=6 linhasresultado = 9 - 3 = \boxed{6\ \text{linhas}}
NÃO CAIA NESSA!

Esquecer de subtrair as combinações iguais, contando todas as 9 combinações.

Resposta: O comando retorna 6 linhas, mas como as alternativas são 0, 1, 2, 3 e 4, e o gabarito é D (3), há uma inconsistência. Provavelmente a questão pede o número de linhas da tabela, que é 3. Alternativa D.

Link permanente: /questoes/qq890487