Operações da teoria dos conjuntos que suportam a linguagem SQL.

  1. Seleção -> $\sigma_{

    }(R)$ onde R é uma relação e $p$ um predicado obtém os elementos de R que atendem o predicado $p$. ![[Pasted image 20250513161726.png]]

  2. Projeção $\prod_{\text{lista de atributos}}(R)$ -> obtém todos os elementos de R mas exibe apenas os atributos pedidos na lista de atributos. ![[Pasted image 20250513162010.png]]

  3. Produto Cartesiano $R \times S$ -> Permite combinar a informação contida em duas relações. cliente X Conta. Concatena todas as tuplas de R com todas as de S. ($n\times m$) conta($\underline{rg_cli}$, num_cta, saldo)

Conjuntos compatíveis

Conjunto cujos elementos tem a mesma quantidade e são de mesmo tipo.

Considere as relações:

  • Cliente($\underline{RG}$, nome_cli, ano_nasc, cidade_cli, sexo)
  • Agencia($\underline{cod_ag}$, nome_ag, cidade_ag, ativo)
  • Deposito($\underline{num_dep}$, RG, saldo, cod_ag)
  • Emprestimo($\underline{num_empr}$, RG, valor, cod_ag)

União ($\cup$)

$A\cup B$, se e, somente se, são conjuntos compatíveis. $$\prod_{\text{nome_dep, \ saldo}}(\sigma_{cod_{ag}=10}\ \text{(deposito)}) \cup \prod_{\text{num_empr, \ valor}}(\sigma_{cod_{ag}=10}\ \text{(emprestimo)})$$ todos os depósitos ou empréstimos (na agencia 10) associados ao saldo e valor. e.g $A = {(1,1), \ (1,3)}$ $B = {(1,1), \ (1,4)}$ $A\cup B = {(1,1), \ (1,3), \ (1,4)}$

Intersecção ($\cap$)

$$\prod_{\text{nome_dep, \ saldo}}(\sigma_{cod_{ag}=10}\ \text{(deposito)}) \cap \prod_{\text{num_empr, \ valor}}(\sigma_{cod_{ag}=10}\ \text{(emprestimo)})$$ Somente o que aparece nos 2, ou seja, neste caso, empréstimos de mesmo valor ao valor do depósito. e.g $A = {(1,1), \ (1,3)}$ $B = {(1,1), \ (1,4)}$ $A\cap B = {(1,1) }$

Subtração ($-$)

$$\prod_{\text{nome_dep, \ saldo}}(\sigma_{cod_{ag}=10}\ \text{(deposito)}) - \prod_{\text{num_empr, \ valor}}(\sigma_{cod_{ag}=10}\ \text{(emprestimo)})$$ Todos os depósitos (na agencia 10) associados ao saldo e valor que não estão associados aos empréstimos.

e.g $A = {(1,1), \ (1,3)}$ $B = {(1,1), \ (1,4)}$ $A - B = {(1,3)}$

Junção Natural ($\Join$)

$$ \text{(cliente x deposito)}_{<cliente.RG \ = \ deposito.RG>} = \ \text{cliente} \Join \text{deposito} $$

Combinação de tuplas relacionados de 2 relações em uma única tupla. Pode ser definida como um produto cartesiano entre A e B seguido de uma seleção.