No artigo anterior vimos o que é um conjunto e como definir seus elementos com precisão. Agora damos um passo a mais: vamos aprender a operar sobre conjuntos — combiná-los, encontrar o que têm em comum, subtrair um do outro — e a visualizá-los com os diagramas de Venn.
Essas operações aparecem em toda parte: em consultas escritas em SQL
(Structured Query Language), em filtros de dados e em lógica de programação.
Por exemplo, um predicado como WHERE a IN (SELECT ...) AND b NOT IN (...)
já combina inclusão e exclusão de conjuntos. Entender a álgebra dos conjuntos
é entender a estrutura por trás de boa parte do raciocínio lógico em
computação.
Leitura prática em bancos e busca
Em bancos relacionais, UNION, INTERSECT e EXCEPT correspondem,
respectivamente, à união, à interseção e à diferença. Em motores de busca,
OR amplia o conjunto de resultados, AND o restringe e a exclusão com -
remove os termos indesejados.
O Conjunto Universo e os Diagramas de Venn #
O conjunto universo \(U\) é o conjunto que contém todos os objetos relevantes no contexto de um problema. Cada conjunto do problema é um subconjunto de \(U\).
Quando escrevemos \(A = \{x \in \mathbb{N} \mid x \leq 50\}\), estamos dizendo que \(U = \mathbb{N}\) e selecionamos dentro de \(U\) apenas os elementos que satisfazem a propriedade. A explicitação do universo evita ambiguidades.
Diagramas de Venn são a representação geométrica dessa ideia:
- O universo \(U\) é representado pelo retângulo externo
- Cada subconjunto é representado por uma região circular dentro do retângulo
- A posição relativa dos círculos indica as relações entre os conjuntos
A figura abaixo mostra o caso mais elementar: \(A \subset U\). O círculo de \(A\) está inteiramente dentro do retângulo \(U\) — todo elemento de \(A\) pertence a \(U\), mas \(U\) contém elementos fora de \(A\).

Os diagramas recebem esse nome em homenagem ao matemático inglês John Venn (1834–1923), que os popularizou.
Exemplo: inclusão em diagrama
Considere \(U = \mathbb{N}\), \(A = \{x \in \mathbb{N} \mid 10 \leq x \leq 100\}\) e \(B = \{x \in \mathbb{N} \mid 15 \leq x \leq 50\}\).
Como todo elemento de \(B\) também pertence a \(A\), temos \(B \subset A \subset U\). Em um diagrama de Venn, o círculo de \(B\) fica inteiramente dentro do círculo de \(A\), que por sua vez está dentro do retângulo \(U\):

As Quatro Operações Fundamentais #
União #
A união de \(A\) e \(B\) reúne todos os elementos que pertencem a pelo menos um dos dois conjuntos:
$$A \cup B = \{x \in U \mid x \in A\ \text{ou}\ x \in B\}$$No diagrama de Venn, a união corresponde a toda a área coberta pelos dois círculos.

Exemplo com elementos
Se \(A = \{1,2,3,4,5,6\}\) e \(B = \{5,6,7,8,9\}\), então os elementos \(5\) e \(6\) ficam na interseção \(A \cap B\), enquanto \(1,2,3,4\) ficam apenas em \(A\) e \(7,8,9\) apenas em \(B\). A união junta todas essas regiões, resultando em:
$$A \cup B = \{1,2,3,4,5,6,7,8,9\}$$
Exemplo sem interseção (conjuntos disjuntos)
Se \(A = \{1,2,3\}\) e \(B = \{7,8,9\}\), então \(A \cap B = \emptyset\): os círculos ficam isolados no universo \(U\), sem sobreposição. Ainda assim, a união é formada por todos os elementos que estão em \(A\) ou em \(B\):
$$A \cup B = \{1,2,3,7,8,9\}$$
Propriedades:
| Propriedade | Enunciado |
|---|---|
| Idempotência | \(A \cup A = A\) |
| Elemento neutro | \(A \cup \emptyset = A\) |
| Absorção pelo universo | \(A \cup U = U\) |
| Comutatividade | \(A \cup B = B \cup A\) |
| Associatividade | \((A \cup B) \cup C = A \cup (B \cup C)\) |
| Monotonia | \(A \subseteq A \cup B\) |
| Equivalência (característica) | \(A \subseteq B \iff A \cup B = B\) |
Caso particular: se \(W \subseteq Z\), então \(Z \cup W = Z\).
Exemplo aplicado (altura mínima)
Considere, em um universo \(U\) de pessoas medidas:
$$Z = \{x \in U \mid \text{altura}(x) \geq 1{,}75\,\text{m}\}$$$$W = \{x \in U \mid \text{altura}(x) \geq 1{,}90\,\text{m}\}$$
Todo elemento de \(W\) também pertence a \(Z\), então \(W \subseteq Z\). Logo:
$$Z \cup W = Z$$
Aplicação em SQL
Em SQL, a união corresponde ao operador UNION, que combina os resultados de
duas consultas eliminando duplicatas. A consulta abaixo retorna todos os
clientes de SP ou do RJ — exatamente \(A \cup B\):
SELECT id FROM clientes WHERE estado = 'SP'
UNION
SELECT id FROM clientes WHERE estado = 'RJ'Interseção #
A interseção de \(A\) e \(B\) reúne apenas os elementos que pertencem a ambos simultaneamente:
$$A \cap B = \{x \in U \mid x \in A\ \text{e}\ x \in B\}$$No diagrama de Venn, a interseção é a área de sobreposição dos dois círculos.

Exemplo com elementos
Se \(A = \{1,2,3,4,5,6\}\) e \(B = \{5,6,7,8,9\}\), apenas os elementos comuns aos dois conjuntos entram na interseção:
$$A \cap B = \{5,6\}$$
Exemplo sem interseção (conjuntos disjuntos)
Se \(A = \{1,2,3\}\) e \(B = \{7,8,9\}\), os conjuntos não compartilham elementos, então:
$$A \cap B = \emptyset$$
Propriedades:
| Propriedade | Enunciado |
|---|---|
| Idempotência | \(A \cap A = A\) |
| Interseção com vazio | \(A \cap \emptyset = \emptyset\) |
| Interseção com universo | \(A \cap U = A\) |
| Comutatividade | \(A \cap B = B \cap A\) |
| Monotonia | \(A \cap B \subseteq A\) |
| Equivalência (característica) | \(A \subseteq B \iff A \cap B = A\) |
\(A\) e \(B\) são disjuntos quando \(A \cap B = \emptyset\): não compartilham nenhum elemento.
Caso particular: se \(W \subseteq Z\), então \(Z \cap W = W\).
Exemplo aplicado (altura mínima)
Considere, em um universo \(U\) de pessoas medidas:
$$Z = \{x \in U \mid \text{altura}(x) \geq 1{,}75\,\text{m}\}$$$$W = \{x \in U \mid \text{altura}(x) \geq 1{,}90\,\text{m}\}$$
Como \(W \subseteq Z\), todo elemento de \(W\) já está em \(Z\). Portanto:
$$Z \cap W = W$$
Aplicação em SQL
A interseção corresponde ao operador INTERSECT. A consulta abaixo retorna
apenas os clientes que compraram tanto em janeiro quanto em fevereiro
— exatamente \(A \cap B\):
SELECT cliente_id FROM vendas WHERE mes = 1
INTERSECT
SELECT cliente_id FROM vendas WHERE mes = 2Diferença #
A diferença \(A - B\) (lê-se “\(A\) menos \(B\)”) contém os elementos de \(A\) que não estão em \(B\):
$$A - B = \{x \in U \mid x \in A\ \text{e}\ x \notin B\}$$No diagrama de Venn, é a parte de \(A\) que não se sobrepõe a \(B\). Note que a operação não é comutativa: \(A - B \neq B - A\) em geral.
Na literatura, essa operação também aparece como complemento relativo de \(B\) em \(A\).

Exemplo com elementos (dois sentidos)
Se \(A = \{1,2,3,4,5,6\}\) e \(B = \{5,6,7,8,9\}\):
$$A - B = \{1,2,3,4\}$$$$B - A = \{7,8,9\}$$


Exemplo sem interseção (conjuntos disjuntos)
Se \(A = \{1,2,3\}\) e \(B = \{7,8,9\}\), então \(A \cap B = \emptyset\), e:
$$A - B = \{1,2,3\} = A$$$$B - A = \{7,8,9\} = B$$
Quando os conjuntos são disjuntos, o subtraendo não remove nenhum elemento do minuendo, então a diferença é sempre igual ao próprio minuendo (o lado esquerdo da operação): \(A - B = A\) e \(B - A = B\).

Propriedades:
| Propriedade | Enunciado |
|---|---|
| \(A - A = \emptyset\) | diferença com si mesmo é vazia |
| \(A - \emptyset = A\) | retirar vazio não muda |
| \(\emptyset - A = \emptyset\) | vazio menos qualquer coisa é vazio |
| \(A \subseteq B \iff A - B = \emptyset\) | inclusão equivale a diferença vazia |
| \(A - B \subseteq A\) | diferença é subconjunto do minuendo |
Relação útil: \(A - B = A \cap \bar{B}\) (veremos o complemento a seguir).
Se \(W \subseteq Z\), então \(W - Z = \emptyset\).
Exemplo aplicado (altura mínima, dois sentidos)
Considere, em um universo \(U\) de pessoas medidas:
$$Z = \{x \in U \mid \text{altura}(x) \geq 1{,}75\,\text{m}\}$$$$W = \{x \in U \mid \text{altura}(x) \geq 1{,}90\,\text{m}\}$$
Como \(W \subseteq Z\), temos:
$$Z - W = \{x \in U \mid 1{,}75 \leq \text{altura}(x) < 1{,}90\}$$$$W - Z = \emptyset$$


Aplicação em SQL
A diferença corresponde ao operador EXCEPT. Um uso clássico é identificar
registros presentes em uma tabela mas ausentes em outra — por exemplo,
usuários que se cadastraram mas ainda não realizaram nenhuma compra
(\(A - B\)):
SELECT id FROM usuarios
EXCEPT
SELECT DISTINCT usuario_id FROM pedidosCombinando as duas direções da diferença — \(A - B\) e \(B - A\) — obtemos a diferença simétrica, que retém apenas os elementos exclusivos de cada conjunto. Exploramos essa operação no Exercício 2.
Complemento #
O complemento de \(A\) em relação a \(U\) é tudo que está em \(U\) mas não está em \(A\):
$$\bar{A} = U - A = \{x \in U \mid x \notin A\}$$
Propriedades:
| Propriedade | Enunciado |
|---|---|
| Involução | \(\overline{\bar{A}} = A\) |
| Complementaridade | \(A \cup \bar{A} = U\) |
| Disjunção | \(A \cap \bar{A} = \emptyset\) |
| Complemento do universo | \(\bar{U} = \emptyset\) |
| Complemento do vazio | \(\bar{\emptyset} = U\) |
Exemplos de complemento
- \(U = \mathbb{N}\), \(A = \{x \in \mathbb{N} \mid x \leq 50\}\) → \(\bar{A} = \{x \in \mathbb{N} \mid x > 50\}\)
- \(U = \mathbb{Z}\), \(A = \{x \in \mathbb{Z} \mid x > 2\}\) → \(\bar{A} = \{\ldots, -2, -1, 0, 1, 2\}\)
- \(U = \mathbb{N}\), \(A = \{x \in \mathbb{N} \mid x > 2\}\) → \(\bar{A} = \{1, 2\}\)
Aplicação em SQL
O complemento aparece sempre que se exclui um subconjunto do universo. A consulta abaixo retorna todos os usuários sem assinatura ativa — o complemento do conjunto dos assinantes:
SELECT id FROM usuarios
WHERE id NOT IN (SELECT usuario_id FROM assinaturas WHERE ativa = TRUE)Identidades Fundamentais #
Leis de De Morgan #
As leis de De Morgan descrevem como o complemento se distribui sobre a união e a interseção. São fundamentais em lógica e programação — e se você já leu o artigo sobre Álgebra Booleana, já as encontrou no contexto das operações lógicas AND, OR e NOT. Aqui, as identidades são expressas em termos de conjuntos:
$$\overline{A \cup B} = \bar{A} \cap \bar{B}$$$$\overline{A \cap B} = \bar{A} \cup \bar{B}$$Em palavras: o complemento de uma união é a interseção dos complementos;
o complemento de uma interseção é a união dos complementos. Você usa
isso ao negar condições compostas: NOT (A OR B) equivale a NOT A AND NOT B.
Exemplo de refatoração lógica
Imagine uma regra que bloqueia o acesso quando o usuário não é admin e a conta não está ativa.
if not (is_admin or is_active):
block_access()Pela Primeira Lei de De Morgan, a mesma condição pode ser reescrita como:
if not is_admin and not is_active:
block_access()As duas formas são logicamente equivalentes; a segunda costuma ser mais fácil de ler na prática.
As figuras abaixo mostram cada identidade em etapas, separadamente:


Distributividade #
$$A \cap (B \cup C) = (A \cap B) \cup (A \cap C)$$$$A \cup (B \cap C) = (A \cup B) \cap (A \cup C)$$A interseção se distribui sobre a união, e vice-versa — exatamente como a multiplicação se distribui sobre a adição nos números.
As figuras a seguir mostram, em etapas, as duas igualdades de distributividade:


Prova da segunda identidade \(A \cup (B \cap C) = (A \cup B) \cap (A \cup C)\):
Parte 1: Mostremos que \(A \cup (B \cap C) \subseteq (A \cup B) \cap (A \cup C)\).
Seja \(x \in A \cup (B \cap C)\). Então ou \(x \in A\), ou \(x \in B \cap C\) (isto é, \(x \in B\) e \(x \in C\)). Em ambos os casos, \(x \in A \cup B\) e \(x \in A \cup C\) simultaneamente. Logo \(x \in (A \cup B) \cap (A \cup C)\). \(\square\)
Parte 2: Mostremos a inclusão contrária.
Seja \(x \in (A \cup B) \cap (A \cup C)\). Então \(x \in A \cup B\) e \(x \in A \cup C\). Se \(x \in A\), acabou. Caso contrário, para pertencer a \(A \cup B\) sem estar em \(A\), é preciso \(x \in B\); e para pertencer a \(A \cup C\) sem estar em \(A\), é preciso \(x \in C\). Portanto \(x \in B \cap C\), e então \(x \in A \cup (B \cap C)\). \(\square\)
A primeira identidade — \(A \cap (B \cup C) = (A \cap B) \cup (A \cap C)\) — segue por argumento análogo, trocando os papéis de \(\cup\) e \(\cap\). Tente demonstrá-la como exercício.
Absorção #
$$A \cup (A \cap B) = A \qquad \text{e} \qquad A \cap (A \cup B) = A$$Outras identidades úteis #
$$A - B = A \cap \bar{B}$$Prova: \(x \in A - B\) se e somente se \(x \in A\) e \(x \notin B\), o que equivale a \(x \in A\) e \(x \in \bar{B}\), isto é, \(x \in A \cap \bar{B}\). \(\square\)
Exemplo
Se \(U = \{1,2,3,4,5\}\), \(A = \{1,2,3\}\) e \(B = \{2,3,4\}\), então \(\bar{B} = \{1,5\}\), e:
$$A - B = \{1\} = A \cap \bar{B} = \{1,2,3\} \cap \{1,5\} = \{1\}$$Se \(A \cap B = \emptyset\): \(A - B = A\) e \(B - A = B\).
Tabela-Resumo #
| Propriedade | União | Interseção |
|---|---|---|
| Comutatividade | \(A \cup B = B \cup A\) | \(A \cap B = B \cap A\) |
| Associatividade | \((A \cup B) \cup C = A \cup (B \cup C)\) | \((A \cap B) \cap C = A \cap (B \cap C)\) |
| Distributividade | \(A \cup (B \cap C) = (A \cup B) \cap (A \cup C)\) | \(A \cap (B \cup C) = (A \cap B) \cup (A \cap C)\) |
| De Morgan | \(\overline{A \cup B} = \bar{A} \cap \bar{B}\) | \(\overline{A \cap B} = \bar{A} \cup \bar{B}\) |
| Absorção | \(A \cup (A \cap B) = A\) | \(A \cap (A \cup B) = A\) |
Exercícios #
Exercício 1 — Operações concretas
Sejam \(U = \{0,1,2,3,4\}\), \(A = \{0,4\}\), \(B = \{0,1,2,3\}\), \(C = \{1,4\}\), \(D = \{0,1\}\).
Determine: (a) \(A \cup B\) (b) \(B \cap C\) (c) \(A \cap B\) (d) \(A \cup (B \cap C)\) (e) \((A \cup B) \cap (A \cup C)\)
(f) \(\overline{(A \cap B)} \cup \overline{(A \cap C)}\) (g) \(\overline{A \cup B}\) (h) \(A - B\) (i) \(B - A\) (j) \(A \cup (B \cap C \cap D)\)
Soluções:
(a) \(A \cup B = \{0,1,2,3,4\} = U\)
(b) \(B \cap C = \{1\}\)
(c) \(A \cap B = \{0\}\)
(d) \(A \cup (B \cap C) = \{0,4\} \cup \{1\} = \{0,1,4\}\)
(e) \((A \cup B) \cap (A \cup C) = U \cap \{0,1,4\} = \{0,1,4\}\) — observe que é igual a (d), confirmando a distributividade.
(f) \(\overline{A \cap B} = U - \{0\} = \{1,2,3,4\}\); \(\overline{A \cap C} = U - \{4\} = \{0,1,2,3\}\); logo a união é \(\{0,1,2,3,4\} = U\).
(g) \(A \cup B = U\), portanto \(\overline{A \cup B} = \emptyset\).
(h) \(A - B = \{4\}\) (o 0 está em \(B\), o 4 não)
(i) \(B - A = \{1,2,3\}\)
(j) \(B \cap C \cap D = \{0,1\} \cap \{1\} = \{1\}\) (interseção de \(B\), \(C\) e \(D\)), então \(A \cup \{1\} = \{0,1,4\}\).
Exercício 2 — Diferença simétrica
A diferença simétrica \(A \mathbin{\Delta} B\) é definida como:
$$A \mathbin{\Delta} B := (A - B) \cup (B - A)$$Interprete essa operação geometricamente e determine \(A \mathbin{\Delta} B\) para \(A = \{0,4\}\) e \(B = \{0,1,2,3\}\).
Solução: A diferença simétrica retém os elementos que pertencem a exatamente um dos dois conjuntos — excluindo a interseção. Visualmente, no diagrama de Venn, é a área dos dois círculos excluindo a sobreposição. Em linguagem booleana, isso corresponde ao operador XOR (ou “ou exclusivo”, \(\oplus\)); se quiser rever essa conexão, vale voltar ao artigo sobre Álgebra Booleana.
Uma analogia visual útil: git diff destaca linhas removidas como \(A - B\),
linhas adicionadas como \(B - A\) e, em conjunto, tudo o que mudou como
\(A \mathbin{\Delta} B\). É apenas uma analogia: o diff preserva ordem e
contexto.
\(A - B = \{4\}\), \(B - A = \{1,2,3\}\), portanto \(A \mathbin{\Delta} B = \{1,2,3,4\}\).

Nas soluções a seguir, as cores são meramente ilustrativas para destacar as regiões relevantes em cada caso. É um recurso visual, não uma convenção formal.
Exercício 3 — Diagramas de Venn com três conjuntos
Descreva como seria o diagrama de Venn em cada situação:
(i) \(A \subset B \subset C\)
(ii) \(A \cap B = \emptyset\), \(A \cap C = \emptyset\), \(B \cap C = \emptyset\)
(iii) \(A \subseteq B \cup C\)
(iv) \(A \subseteq \bar{B}\)
(v) \(A \subseteq B - C\)
Soluções:
(i) Três círculos concêntricos: \(A\) mais interno, \(B\) ao meio, \(C\) mais externo.

(ii) Três círculos completamente disjuntos dentro do retângulo \(U\) — nenhum se toca.

(iii) O círculo de \(A\) está inteiramente dentro da região coberta por \(B \cup C\). Parte de \(A\) pode estar em \(B\), parte em \(C\), parte na interseção — mas nenhuma parte de \(A\) fica fora de \(B \cup C\).

(iv) \(A \subseteq \bar{B}\) significa que nenhum elemento de \(A\) está em \(B\): os círculos de \(A\) e \(B\) são disjuntos.

(v) \(A \subseteq B - C\) significa que \(A\) está na parte de \(B\) que não pertence a \(C\): o círculo de \(A\) está dentro de \(B\) e completamente fora de \(C\).

Próximos passos #
Com as operações dominadas, o próximo artigo trata de uma pergunta central: quantos elementos tem um conjunto formado a partir de operações? O Princípio da Inclusão-Exclusão responde precisamente isso, e é a porta de entrada para a contagem combinatória.
Até lá!