1
resposta

Junção x Produto cartesiano - qual usar?

Uma coisa que não entendi nessa aula é qual a vantagem da junção com relação ao produto cartesiano, já que na hora de escrever a relação das tabelas não houve nenhuma redução? Qual seria a diferença entre as duas e quais critérios devo usar para escolher qual usar?

1 resposta

Oi, Wilton, tudo bem?

A operação de produto cartesiano, como o próprio nome sugere, produz um resultado que é a combinação de todas as tuplas de duas tabelas. Por exemplo, se temos duas tabelas, uma com 3 linhas e outra com 4, o produto cartesiano dessas duas tabelas resultará numa tabela com 12 linhas (3x4). Isso pode gerar um volume de dados muito grande e, na maioria das vezes, desnecessário.

Já a operação de junção, apesar de usar o produto cartesiano como base, aplica uma condição de seleção (σ) que filtra as linhas resultantes. Ou seja, ao invés de termos todas as possíveis combinações de tuplas, teremos apenas aquelas que satisfazem a condição estabelecida. Isso torna a consulta mais eficiente e o resultado mais útil.

Por exemplo, a operação de produto cartesiano entre as tabelas Vendas e Vendedores resultou em várias linhas onde o id_vendedor_vendas de Vendas não era igual ao id_vendedor de Vendedores. Isso não é útil para a consulta que queremos fazer, que é descobrir o nome do vendedor que efetuou uma venda.

Ao aplicarmos a operação de junção com a condição id_vendedor_vendas = id_vendedor, eliminamos as linhas que não são úteis para a nossa consulta, e ficamos apenas com as linhas onde o vendedor que efetuou a venda é o mesmo que está registrado na tabela Vendedores. Isso torna a consulta mais eficiente e o resultado mais relevante.

Portanto, a escolha entre usar o produto cartesiano ou a junção vai depender do que você precisa para a sua consulta. Se você precisa de todas as combinações possíveis de tuplas entre duas tabelas, use o produto cartesiano. Se você precisa de um subconjunto dessas combinações que satisfaça uma condição específica, use a junção.

Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!