Junções de DBMS: tipos de junção interna, THETA, externa e Equi Operações
O que é ingressar no SGBD?
Junte-se ao SGBD é uma operação binária que permite combinar produto de junção e seleção em uma única instrução. O objetivo de criar uma condição de junção é ajudar você a combinar os dados de duas ou mais tabelas DBMS. As tabelas no SGBD são associadas usando a chave primária e chaves estrangeiras.
Tipos de Junção
Existem basicamente dois tipos de junções no SGBD:
- Junções internas: Theta, Natural, EQUI
- Junção externa: esquerda, direita, completa
Vamos vê-los em detalhes:
Junção interna
Junção interna é usado para retornar linhas de ambas as tabelas que satisfazem a condição fornecida. É a operação de junção mais utilizada e pode ser considerada como um tipo de junção padrão.
Uma junção interna ou equijoin é uma junção baseada em comparador que usa comparações de igualdade no predicado de junção. No entanto, se você usar outros operadores de comparação como “>”, ele não poderá ser chamado de equijoin.
Inner Join é dividido 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. Theta junta trabalho para todos os operadores de comparação. É denotado pelo símbolo θ. O caso geral da operação JOIN é chamado de junção Theta.
Sintaxe:
A ⋈θ B
A junção Theta pode usar qualquer condição 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 é feito quando uma junção Theta usa apenas a condição de equivalência. A adesão EQUI é a operação mais difícil de implementar de forma eficiente em um RDBMSe uma das razões pelas quais os RDBMS apresentam problemas essenciais 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 dos operadores de comparação. Neste tipo de junção, os atributos devem ter o mesmo nome e domínio. No Natural Join, deve haver pelo menos um atributo comum entre duas relações.
Realiza a seleção formando igualdade nos 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 de junção tenha um registro correspondente. Neste tipo de junção, a tabela retém cada registro mesmo que não exista outro registro correspondente.
Três tipos de junções externas 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 tenha sido encontrada na tabela à direita. Quando nenhum registro correspondente for encontrado na tabela à direita, NULL será retornado.
Considere as 2 tabelas a seguir
A | |
---|---|
Num | Quadrado |
2 | 4 |
3 | 9 |
4 | 16 |
B | |
---|---|
Num | Cubo |
2 | 8 |
3 | 18 |
5 | 75 |
A 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 tenha sido encontrada na tabela à esquerda. Onde nenhuma correspondência for encontrada na tabela à esquerda, NULL será retornado. RIGHT outer JOIN é o oposto de LEFT JOIN
Em nosso exemplo, vamos supor que você precise obter os nomes dos membros e os filmes alugados por eles. Agora temos um novo integrante que ainda não alugou nenhum filme.
A 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 B
A ⋈ B | ||
---|---|---|
Num | Quadrado | Cubo |
2 | 4 | 8 |
3 | 9 | 18 |
4 | 16 | - |
5 | - | 75 |
Resumo
- Existem basicamente dois tipos de junções em DBMS 1) Junção interna 2) Junção externa
- Uma junção interna é a operação de junção amplamente usada e pode ser considerada um tipo de junção padrão.
- A junção interna é dividida em três subtipos: 1) Junção Theta 2) Junção natural 3) Junção EQUI
- Theta Join permite mesclar duas tabelas com base na condição representada por theta
- Quando uma junção theta usa apenas condições de equivalência, ela se torna uma junção equi.
- A junção natural não utiliza nenhum dos operadores de comparação.
- Uma junção externa não exige que cada registro nas duas tabelas de junção tenha um registro correspondente.
- A junção externa é dividida em três subtipos: 1) Junção externa esquerda 2) Junção externa direita 3) Junção externa completa
- O LEFT Outer Join retorna todas as linhas da tabela à esquerda, mesmo que nenhuma linha correspondente tenha sido encontrada na tabela à direita.
- O RIGHT Outer Join retorna todas as colunas da tabela à direita, mesmo que nenhuma linha correspondente tenha sido encontrada na tabela à esquerda.
- Numa 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.