Álgebra relacional

Operações binárias

Até aqui, discutimos as operações unárias da Álgebra Relacional. A partir de agora, veremos um grupo de operações da álgebra relacional que consiste em operações matemáticas padrão sobre conjuntos. Essas operações são chamadas de operações binárias.

Várias operações de teoria de conjunto são usadas para mesclar os elementos de dois conjuntos de diversas maneiras, incluindo:

  • união: o resultado dessa operação, indicada por R ∪ S, é uma relação que inclui todas as tuplas que estão em R ou em S ou tanto em R quanto em S. As tuplas duplicadas são eliminadas;
  • interseção: o resultado dessa operação, indicada por R ∩ S, é uma relação que inclui todas as tuplas que estão tanto em R quanto em S;
  • subtração: o resultado dessa operação, também chamada de diferença de conjunto ou exceto, indicada por R – S, é uma relação que inclui todas as tuplas que estão em R, mas não em S.

Quando essas operações são adaptadas aos bancos de dados relacionais, as duas relações sobre as quais qualquer uma dessas três operações são aplicadas precisam ter o mesmo tipo de tuplas; essa condição é chamada de compatibilidade de união ou compatibilidade de tipo.

Duas relações R(A1,A2,...,An)R(A_{1},A_{2},...,A_{n}) e S(B1,B2,...,Bn)S(B_{1},B_{2},...,B_{n}) são consideradas compatíveis na união (ou compatíveis no tipo) se tiverem o mesmo grau nn e se dom(Ai)=dom(Bi)dom(A_{i}) = dom(B_{i}) para 1in1 ≤ i ≤ n. Em termos simples, isso significa que as duas relações têm o mesmo número de atributos e cada par correspondente de atributos têm o mesmo domínio.

União

Vejamos o seguinte exemplo, com as relações PROFESSOR e ALUNO. Essas relações são compatíveis para a operação de união.

PROFESSOR

pNomeuNome
PedroDias
RicardoVilela
FranciscoBeltrão
MariaOliveira

ALUNO

nomesobrenome
MariaOliveira
JoãoSantos
PedroDias
FranciscoLeme
JoanaLima

PROFESSOR ∪ ALUNO

pNomeuNome
PedroDias
RicardoVilela
FranciscoBeltrão
MariaOliveira
JoãoSantos
FranciscoLeme
JoanaLima

Observe que tuplas duplicadas aparecem apenas uma vez no resultado.

Interseção

Considerando o mesmo exemplo das relações anteriores, o resultado de ALUNO ∩ PROFESSOR é:

pNomeuNome
PedroDias
MariaOliveira

Subtração

Considerando o mesmo exemplo das relações anteriores, o resultado de PROFESSOR - ALUNO é:

pNomeuNome
RicardoVilela
FranciscoBeltrão

Ou seja: lista todos os docentes que não são alunos.

🧑🏻‍🏫 Definição formal

As operações de UNIÃO e INTERSECÇÃO possuem a propriedade da comutatividade, ou seja, a ordem dos operandos não altera o resultado:

Além disso, UNIÃO e INTERSECÇÃO também apresentam a propriedade da associatividade, o que permite estendê-las para qualquer número de relações (operações n-árias):

Por outro lado, a operação de SUBTRAÇÃO não é comutativa, ou seja, a troca da ordem dos conjuntos geralmente altera o resultado:

Vale observar ainda que a INTERSECÇÃO pode ser representada em função da UNIÃO e da DIFERENÇA, conforme a expressão a seguir:

🧑🏻‍💻 Na prática

Em SQL, existem três operações — UNION, INTERSECT e EXCEPT — que correspondem às operações de conjunto união, intersecção e subtração. Além disso, existem operações de multiconjunto (UNION ALL, INTERSECT ALL e EXCEPT ALL) que não eliminam duplicatas.

União

SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;

Interseção

TABLE a INTERSECT TABLE c;

Subtração

TABLE b EXCEPT TABLE c;

🐈‍⬛ O “pulo do gato”

⚠️ Em determinados casos, para garantirmos a compatibilidade de tipo entre duas relações, podemos aplicar operações de projeção nas relações participantes da operação binária.