Junção theta (álgebra relacional)
# Junção theta (álgebra relacional)

A Junção Theta, também conhecida como Junção Condicional é representada pelo símbolo ⋈, e baseia-se em uma combinação dos operadores produto cartesiano e seleção. Ela cria uma relação pela combinação dos campos de uma relação com aquelas de uma outra baseada em uma comparação de valores entre colunas que não necessariamente tem o mesmo nome.

## Sintaxe

A sintaxe da junção theta é:
<tabela1> ⋈ <critério de seleção> <tabela2>
Onde: <tabela> é o nome de uma tabela, ou expressão algébrica que resulte em uma tabela <critério de seleção> é uma expressão booleana envolvendo literais e valores das colunas das duas tabelas envolvidas.

## Exemplo Tabelas Hipotéticas

A seguir um exemplo com tabelas hipotéticas:
Imaginemos que possuímos as tabelas TabelaA e TabelaB conforme mostra abaixo:
TabelaA
| c | d |
| ValorA | 50 |
| ValorB | 65 |
| ValorC | 70 |
TabelaB
| e | f |
| ValorD | 50 |
| ValorE | 80 |
| ValorF | 70 |
Com a relação abaixo iremos reproduzir um produto cartesiano das duas tabelas selecionando apenas as linhas em que a coluna "d" da tabela "TabelaA" seja igual a coluna "f" da tabela "TabelaB".
TabelaA ⋈ TabelaA.d = TabelaB.f TabelaB
| c | d | e | f |
| ValorA | 50 | ValorD | 50 |
| ValorC | 70 | ValorF | 70 |

## Exemplo Real

A seguir um exemplo com tabelas reais:
Suponhamos que temos as tabelas "Emprestimo" e "Conta" que guardam respectivamente informações das contas dos clientes de um banco e informações de empréstimos realizados a esses clientes:
Emprestimo
| nomeAgencia | nroEmprestimo | nomeCliente | valor |
| Assis Brasil | 100 | Pedro | 7000 |
| Verde | 200 | Maria | 11000 |
| Assis Brasil | 400 | João | 5000 |
| São João | 500 | Ana | 35000 |
Conta
| nomeAgencia | nroConta | nomeCliente | saldo |
| Verde | 50 | Maria | 3000 |
| Farrapos | 100 | Denise | 2000 |
| Farrapos | 200 | Pedro | 300 |
| São João | 300 | Ana | 2500 |
| São João | 400 | João | 1000 |
A seguir desejamos obter os dados dos empréstimos e das contas onde o nome do cliente da conta e o nome do cliente do empréstimo sejam iguais e o valor do empréstimo é maior que o saldo da conta do cliente.
Empréstimo ⋈ Conta.nomeCliente = Emprestimo.nomeCliente e Emprestimo.valor > Conta.saldo Conta
| Conta.nomeAgencia | nroConta | Conta.nomeCliente | saldo | Emprestimo.nomeAgencia | nroEmprestimo | Emprestimo.nomeCliente | valor |
| Farrapos | 200 | Pedro | 300 | Assis Brasil | 100 | Pedro | 7000 |
| Verde | 50 | Maria | 3000 | Verde | 200 | Maria | 11000 |
| São João | 400 | João | 1000 | Assis Brasil | 400 | João | 5000 |
| São João | 300 | Ana | 2500 | São João | 500 | Ana | 35000 |

## Referências gerais

* «Banco de Dados I – Introdução - Unisinos»
* «Banco de Dados I - Fernando Siqueira» (PDF)
* «BANCO DE DADOS - Coordenação de Informática do CEFET-Campos»
* «Definição do Plano de Execução Estimativas sobre os Dados - UFSC» (PDF)