Diferença (álgebra relacional)
# Diferença (álgebra relacional)
## Diferença: $A-B$

É um operador da álgebra relacional e da teoria dos conjuntos matemáticos não comutativo cujo operandos (dois no total) devem ser união-compatíveis, ou seja, devem ter suas estruturas exatamente idênticas.
Sua definição formal é expressa por: $R-S=\{t:t\in R,\lnot t\in S\}$

## Teoria de utilização

A utilização do operador diferença entre dois conjuntos distintos A e B onde os mesmos tenham estruturas totalmente compatíveis entre si, resultará em:
"Todas as linhas que existam em A mas não existam em B."
Observe que: $A-B$ é diferente de $B-A$, pois a diferença é não comutativa.

## União-compatibilidade e não comutatividade
### União-compatibilidade

Assim como nos operadores união e intersecção, o operador diferença exige que as suas relações de entrada estejam compatibilizadas, para que então, possa ser possível o retorno de uma nova relação de saída.
Critérios para existência da união-compatibilidade em duas relações:
* Mesmo número de campos;
* Campos correspondentes ao mesmo domínio (o tipo do seu conteúdo, como por exemplo: inteiro, valor, texto, data, hora, etc.);
Exemplo de relações união-compatíveis:
| Nome | Idade | Crédito_pessoal |
| Jonathan | 21 | 1350,00 |
| Leticia | 20 | 850,00 |
| João | 62 | 5450,00 |
| Apelido | Acessos | Total_compras |
| Zé | 84 | 200,00 |
| Sara | 1023 | 8850,00 |

### Não comutatividade

Ao contrário dos operadores união e intersecção, o operador diferença possui a característica de ser não comutativo.
A não comutatividade é a definição para operações de conjuntos onde a ordem de entrada afeta o resultado, ou em outras palavras, é uma operação onde "a ordem dos fatores altera o resultado".
Para maiores definições leia o artigo sobre a comutatividade...

## Exemplos de operação com conjuntos

| Nome | Conta |
| João | 1 |
| Maria | 2 |
| José | 3 |
| Nome | Empréstimo |
| Paulo | 100 |
| Maria | 200 |
| Carlos | 300 |
* Nome
* João
* José
| x | y | z |
| 1 | 1 | 1 |
| 1 | 2 | 2 |
| 2 | 2 | 3 |
| 3 | 1 | 1 |
| x | y | z |
| 1 | 1 | 1 |
| 1 | 2 | 1 |
| 3 | 1 | 1 |
| x | y | z |
| 1 | 2 | 2 |
| 2 | 2 | 3 |

## Exemplos em SQL

Dadas as seguintes relações:
| cpf | nome | codigo |
| 12332112332 | Jonathan | 123 |
| 32165498712 | Leticia | 212 |
| 09876543210 | Juçara | 321 |
| cpf | nome | codigo | quarto |
| 12332112332 | João | 938 | 456 |
| 32165498712 | Maria | 059 | 234 |
| 09876543210 | José | 549 | 234 |
Buscar o CPF e o nome das pessoas que são médicos mas não são pacientes: