A respeito de banco de dados, julgue o item  que se segue.  ...

Próximas questões
Com base no mesmo assunto
Q2464528 Banco de Dados

A respeito de banco de dados, julgue o item  que se segue.  


Em uma consulta a duas tabelas, o produto cartesiano ocorrerá quando a condição de união estiver corretamente especificada.  

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa E (Errado) é a correta.

Vamos entender o motivo:

No contexto de bancos de dados relacionais, o produto cartesiano é uma operação que combina todas as linhas de uma tabela com todas as linhas de outra tabela. Em outras palavras, se a tabela A tem m linhas e a tabela B tem n linhas, o resultado do produto cartesiano entre A e B terá m x n linhas. Essa operação é representada pelo operador CROSS JOIN em SQL.

Porém, a afirmação da questão está incorreta porque ela diz que o produto cartesiano ocorre quando a condição de união entre as tabelas está corretamente especificada. Na verdade, o produto cartesiano é o resultado da junção de todas as linhas de ambas as tabelas sem qualquer condição de união.

Quando especificamos corretamente a condição de união entre as tabelas, estamos realizando o que é chamado de JOIN (usualmente um INNER JOIN ou um OUTER JOIN), que combina apenas as linhas que satisfazem a condição de união, resultando em um conjunto de dados mais significativo e menor que o produto cartesiano.

Vamos detalhar um pouco mais as operações:

Produto Cartesiano (CROSS JOIN):

  • Combina cada linha da primeira tabela com cada linha da segunda tabela.
  • Exemplo sem condição de união: SELECT * FROM TabelaA, TabelaB;

INNER JOIN:

  • Combina apenas as linhas das duas tabelas que satisfazem a condição de união.
  • Exemplo: SELECT * FROM TabelaA INNER JOIN TabelaB ON TabelaA.id = TabelaB.id;

OUTER JOIN:

  • Além das combinações que satisfazem a condição de união, inclui também as linhas que não têm correspondência na outra tabela (LEFT, RIGHT ou FULL OUTER JOIN).
  • Exemplo: SELECT * FROM TabelaA LEFT JOIN TabelaB ON TabelaA.id = TabelaB.id;

Portanto, a alternativa E está correta porque o produto cartesiano não ocorre quando a condição de união entre tabelas está especificada. Ele ocorre, na verdade, na ausência de uma condição de união.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Produto cartesiano e união são duas operações diferentes.

o produto cartesiano faz todas as combinações possíveis entre as linhas das duas tabelas

a união combina as linhas existentes e remove as linhas duplicadas

Tuplas da tabela A: (a, b), (c, d)

Tuplas da tabela B: (1, 2), (3, 4)

Produto Cartesiano:

(a, b, 1, 2)

(a, b, 3, 4)

(c, d, 1, 2)

(c, d, 3, 4)

União:

(a, b)

(c, d)

(1, 2)

(3, 4)

Produto cartesiano utiliza a cláusula JOIN, não UNION

A afirmação está incorreta.

Em uma consulta a duas tabelas, o produto cartesiano ocorre quando não há uma condição de junção especificada ou quando a condição de junção é mal definida. O produto cartesiano combina cada linha de uma tabela com cada linha da outra tabela, resultando em um número de linhas que é o produto do número de linhas nas duas tabelas. Isso geralmente não é o resultado desejado e pode gerar um conjunto de resultados muito grande.

Para evitar o produto cartesiano, uma condição de junção (como uma cláusula `ON` em um `INNER JOIN`, ou usando a cláusula `WHERE` com uma condição de igualdade entre as colunas relacionadas das duas tabelas) deve ser corretamente especificada. Por exemplo, ao unir duas tabelas `A` e `B` com uma condição de junção `A.id = B.a_id`, você está especificando como as linhas das duas tabelas devem ser combinadas, o que resulta em um subconjunto específico das combinações possíveis, ao invés do produto cartesiano.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo