Diferença (álgebra relacional)
Diferença:
É 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:

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: é diferente de , 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:
|
R1
|
R2
|
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
|
R1
|
R2
|
|
|
R1
|
R2
|
|
Exemplos em SQL
Dadas as seguintes relações:
|
medico
|
paciente
|
Buscar o CPF e o nome das pessoas que são médicos mas não são pacientes:
Utilizando o operador diferença: SELECT cpf, nome FROM medico MINUS SELECT cpf, nome FROM paciente;Não utilizando o operador diferença: SELECT cpf, nome FROM medico WHERE NOT EXISTS (SELECT cpf, nome FROM paciente WHERE cpf=medico.cpf AND nome=medico.nome);