Pular para o conteudo

Resumo TI Banco de Dados: Produto Cartesiano e Junções

O resumo anterior fechou o trio de operadores herdados da teoria de conjuntos — união, interseção e diferença —, todos exigindo união-compatibilidade entre as relações envolvidas. Agora entra um operador binário completamente diferente nesse quesito: o produto cartesiano (×), que combina duas relações sem nenhuma exigência de compatibilidade. E é exatamente a partir dele que se define formalmente a junção (⋈), um dos operadores mais cobrados de toda a álgebra relacional.

Neste resumo, você vai entender como o produto cartesiano combina relações de graus diferentes, por que sua cardinalidade cresce tão rápido, e a definição que costuma pegar o candidato de surpresa: junção não é um operador novo e independente — é produto cartesiano seguido de seleção.

📲 Canal Oficial do Dicionário do Concurseiro no WhatsApp

Receba resumos, questões comentadas e novidades diretamente no seu celular!

👉 Acessar Canal no WhatsApp

💡 Conteúdo exclusivo para concurseiros. Totalmente gratuito!

✖️ Produto cartesiano (×)

R × S combina cada tupla de R com cada tupla de S, gerando todas as combinações possíveis entre as duas relações — sem verificar se existe qualquer correspondência lógica entre os dados. Diferente de união, interseção e diferença, o produto cartesiano não exige união-compatibilidade: R e S podem ter graus completamente diferentes, domínios diferentes, até esquemas sem nenhuma relação lógica entre si.

Efeito sobre grau e cardinalidade: o grau do resultado é a soma dos graus de R e S (todos os atributos de R seguidos de todos os atributos de S); a cardinalidade do resultado é o produto das cardinalidades — |R| × |S| —, dando nome ao operador. Esse crescimento multiplicativo é rápido: cruzar uma relação de 1.000 tuplas com outra de 1.000 tuplas gera 1.000.000 de tuplas no resultado, a maioria delas combinações sem qualquer sentido para a aplicação.

Se R e S tiverem atributos com o mesmo nome, o resultado fica ambíguo — para referenciar esses atributos é preciso qualificá-los com o nome da relação de origem (R.atributo, S.atributo).

🔗 Junção (⋈): produto cartesiano com filtro

Por si só, o produto cartesiano quase nunca é o que se quer: a esmagadora maioria das combinações geradas não representa nenhuma correspondência real entre os dados. Na prática, ele é seguido de uma seleção que filtra só as combinações que atendem a uma condição — e é exatamente esse encadeamento — produto cartesiano seguido de seleção — que define formalmente a junção: R ⋈condição S = σcondição(R × S) (a condição aparece como subscrito, a mesma lógica da notação σ<condição>(R) vista no resumo de seleção e projeção, só que agora representada de forma mais explícita).

Esse é o ponto conceitual mais cobrado do tema: junção não é um operador primitivo independente — ela é definida em termos de dois operadores já vistos (produto cartesiano e seleção), na mesma linha em que a interseção foi definida em termos de diferença no resumo anterior. Quando a condição da junção é uma comparação genérica (=, <, >, ≠, ≤, ≥) entre atributos de R e S, chama-se junção-theta (θ-join); quando a condição usa exclusivamente igualdade, chama-se equijunção — um caso particular da junção-theta.

⚠️ Pegadinhas comuns

  • Produto cartesiano é a exceção à regra de compatibilidade: união, interseção e diferença exigem mesmo grau; produto cartesiano faz o oposto — nem exige grau igual, nem domínios compatíveis;
  • Grau soma, cardinalidade multiplica: não confundir com os operadores de conjunto do resumo anterior, onde o grau do resultado é sempre igual ao de R e S, e a cardinalidade no máximo soma (união) ou é limitada pela menor relação (interseção) — no produto cartesiano o grau soma e a cardinalidade multiplica;
  • Junção é derivada, não primitiva: formalmente, R ⋈c S é só uma abreviação de σc(R × S) — a banca pode pedir para “expandir” uma junção em produto cartesiano + seleção, ou o contrário;
  • Equijunção é um caso particular de junção-theta, não um operador à parte: toda equijunção é junção-theta (com condição restrita à igualdade), mas nem toda junção-theta é equijunção.

🎯 Dica Final para a Prova

Sempre que a questão definir formalmente uma junção, espere ver exatamente a fórmula σcondição(R × S) — se a banca perguntar “de quais operadores a junção deriva”, a resposta é produto cartesiano e seleção, nessa ordem lógica. E lembre que “produto cartesiano sem filtro” e “junção” não são sinônimos: o primeiro é o material bruto, a segunda é o resultado depois de aplicar a condição que dá sentido à combinação.

✓ Agora que você entende como a junção deriva do produto cartesiano, o próximo passo é ver os tipos de junção usados na prática: interna, externa e natural.


📍Gostou do conteúdo? Deixe um comentário, compartilhe e continue acompanhando o Dicionário do Concurseiro para mais Resumos de TI – Banco de Dados. Aqui você encontra explicações claras, atualizadas e com foco total no que cai em prova!

👉 Leia também no Dicionário do Concurseiro: Resumo TI Banco de Dados: Junções Interna, Externa e Natural


📘 Junção não é operador primitivo — é produto cartesiano com uma seleção aplicada sobre o resultado. Decorar essa derivação resolve boa parte das questões formais sobre o tema. Continue estudando!

Gostou deste conteúdo?

Favoritar

Comentários

Seja o primeiro a comentar.