Junções em SGBD: Tipos de junção THETA, Interna, Externa e Equi

⚡ Resumo Inteligente

Em um SGBD (Sistema de Gerenciamento de Banco de Dados), a junção (JOIN) é uma operação binária que combina linhas de duas ou mais tabelas usando suas chaves primárias e estrangeiras. As junções se dividem em junções internas (inner joins), que retornam apenas as linhas correspondentes, e junções externas (outer joins), que mantêm as linhas não correspondentes e preenchem as lacunas com valores nulos.

  • 🔗 Objetivo principal: Uma junção combina tabelas relacionadas em um único conjunto de resultados com base em uma condição de junção.
  • 🎯 Junção interna: Retorna apenas as linhas que satisfazem a condição em ambas as tabelas; este é o tipo de junção padrão.
  • 📐 Theta e EQUI: Uma junção theta utiliza qualquer operador de comparação; uma junção EQUI utiliza apenas a igualdade.
  • 🔄 Junção natural: Busca correspondências em atributos com nomes idênticos e remove a coluna duplicada.
  • ⬅️ Junção Externa Esquerda: Mantém todas as linhas da tabela da esquerda, preenchendo com nulo onde não houver correspondência na tabela da direita.
  • ➡️ Junção externa direita: Mantém todas as linhas da tabela da direita, preenchendo com nulo onde não houver correspondência na tabela da esquerda.
  • 🌐 Junção externa completa: Mantém todas as linhas de ambas as tabelas, independentemente da correspondência.

Junções em SGBD Esquerda Direita

O que é um JOIN em um SGBD?

Junte-se ao SGBD É uma operação binária que permite combinar um produto de junção e uma seleção em uma única instrução. O objetivo de criar uma condição de junção é combinar os dados de duas ou mais tabelas. As tabelas são associadas usando suas chaves primárias e chaves estrangeiras.

Tipos de Junção

Existem basicamente dois tipos de junções no SGBD:

  1. Junções internas: Theta, Natural, EQUI
  2. Junções externas: esquerda, direita, completa

A tabela abaixo apresenta uma prévia de todos os tipos de junção antes de cada um ser explicado com um exemplo.

Junte-se Returns Linhas não correspondentes
Interior (Theta / EQUI / Natural) Linhas que correspondem à condição em ambas as tabelas Caiu
Esquerda Externa Todas as linhas à esquerda mais os fósforos Mantido da esquerda, nulo à direita
Externo direito Todas as linhas à direita mais fósforos Mantido à direita, nulo à esquerda.
Exterior completo Todas as linhas de ambas as tabelas Mantido de ambos, nulo onde ausente

Junção interna

Junção interna É utilizada para retornar linhas de ambas as tabelas que satisfaçam a condição especificada. É a operação de junção mais utilizada e pode ser considerada o tipo de junção padrão.

Uma junção interna, ou equijunção, é uma junção baseada em comparadores que utiliza comparações de igualdade no predicado de junção. No entanto, se você usar outros operadores de comparação, como “>”, ela não poderá ser chamada de equijunção. A junção interna é ainda dividida em três subtipos:

  • Theta junta-se
  • Junção natural
  • Junte-se à EQUI

União Theta

União Theta Permite mesclar duas tabelas com base na condição representada por theta. As junções theta funcionam para todos os operadores de comparação. São representadas pelo símbolo θ. θO caso geral de uma operação JOIN é chamado de junção theta.

Sintaxe:

A ⋈θ B

Uma junção theta pode usar quaisquer condições nos critérios de seleção.

Considere as tabelas a seguir.

Tabela A Tabela B
coluna 1 coluna 2 coluna 1 coluna 2
1 1 1 1
1 2 1 3

Por exemplo:

A ⋈ A.column 2 > B.column 2 (B)
A ⋈ A.coluna 2 > B.coluna 2 (B)
coluna 1 coluna 2
1 2

Junte-se à EQUI

Junte-se à EQUI é realizada quando uma junção theta usa apenas a condição de equivalência. A junção EQUI é a operação mais difícil de implementar de forma eficiente em um [argumento/estrutura]. RDBMSE essa é uma das razões pelas quais um SGBD relacional pode apresentar problemas de desempenho.

Por exemplo:

A ⋈ A.column 2 = B.column 2 (B)
A ⋈ A.coluna 2 = B.coluna 2 (B)
coluna 1 coluna 2
1 1

Junção Natural (⋈)

União Natural Não utiliza nenhum operador de comparação. Nesse tipo de junção, os atributos devem ter o mesmo nome e domínio. Em uma junção natural, deve haver pelo menos um atributo em comum entre as duas relações.

Realiza uma seleção que estabelece a igualdade entre os atributos que aparecem em ambas as relações e elimina os atributos duplicados.

Exemplo: Considere as duas tabelas a seguir.

C
Num Quadrado
2 4
3 9
D
Num Cubo
2 8
3 18
C ⋈ D
C ⋈ D
Num Quadrado Cubo
2 4 8
3 9 18

Junção Externa

An Junção Externa Não exige que cada registro nas duas tabelas unidas tenha um registro correspondente. Nesse tipo de junção, a tabela mantém cada registro mesmo que não exista outro registro correspondente. Os três tipos de junção externa são:

  • União Externa Esquerda
  • Junção Externa Direita
  • Junção Externa Completa

Junção externa esquerda (A ⟕ B)

União Externa Esquerda Retorna todas as linhas da tabela à esquerda, mesmo que nenhuma linha correspondente seja encontrada na tabela à direita. Quando nenhum registro correspondente é encontrado à direita, retorna nulo.

União Externa Esquerda

Considere as duas tabelas a seguir.

A
Num Quadrado
2 4
3 9
4 16
B
Num Cubo
2 8
3 18
5 75
A Left Outer Join B
A ⟕ B
Num Quadrado Cubo
2 4 8
3 9 18
4 16 -

Junção externa à direita (A ⟖ B)

Junção Externa Direita Retorna todas as colunas da tabela à direita, mesmo que nenhuma linha correspondente seja encontrada na tabela à esquerda. Quando nenhuma correspondência é encontrada à esquerda, o valor retornado é nulo. Uma junção externa à direita é o oposto de uma junção à esquerda.

Junção Externa Direita

A Right Outer Join B
A ⟖ B
Num Cubo Quadrado
2 8 4
3 18 9
5 75 -

Junção externa completa (A ⟗ B)

Em um artigo do Junção Externa Completa, todas as tuplas de ambas as relações são incluídas no resultado, independentemente da condição de correspondência.

Exemplo:

A Full Outer Join B
A ⟗ B
Num Quadrado Cubo
2 4 8
3 9 18
4 16 -
5 - 75

Perguntas Frequentes

Uma junção interna retorna apenas as linhas que correspondem em ambas as tabelas. Uma junção externa também mantém as linhas que não correspondem em uma ou ambas as tabelas, preenchendo o lado faltante com valores nulos.

Uma junção theta pode usar qualquer operador de comparação, como maior que ou menor que. Uma junção EQUI é uma junção theta restrita ao operador de igualdade, portanto, ela só encontra correspondências entre valores iguais.

Ambas as junções correspondem por igualdade, mas uma junção natural corresponde automaticamente a colunas com nomes idênticos e remove a coluna duplicada. Uma junção EQUI especifica a condição explicitamente e mantém ambas as colunas.

Sim. Dado o esquema e a pergunta, a IA pode escolher o tipo de junção e as chaves, por exemplo, uma junção à esquerda para manter os clientes sem pedidos. Confirme o resultado, pois uma junção incorreta altera a contagem de linhas.

Sim. A IA consegue detectar que a chave de junção não é única em um dos lados, causando uma explosão de muitos para muitos, e sugere adicionar uma condição ou agregar primeiro para que cada correspondência seja contada apenas uma vez.

Resuma esta postagem com: